Re: [PATCH v5 2/2] skb_array: ring test

From: Michael S. Tsirkin
Date: Mon May 23 2016 - 16:52:55 EST


On Mon, May 23, 2016 at 03:09:18PM +0200, Jesper Dangaard Brouer wrote:
> On Mon, 23 May 2016 13:43:46 +0300
> "Michael S. Tsirkin" <mst@xxxxxxxxxx> wrote:
>
> > Add ringtest based unit test for skb array.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> > ---
> > tools/virtio/ringtest/skb_array.c | 167 ++++++++++++++++++++++++++++++++++++++
> > tools/virtio/ringtest/Makefile | 4 +-
>
> Patch didn't apply cleanly to Makefile, as you also seems to have
> "virtio_ring_inorder", I manually applied it.
>
> I chdir to tools/virtio/ringtest/ and I could compile "skb_array",
> BUT how do I use it??? (the README is not helpful)
>
> What is the "output", are there any performance measurement results?

First, if it completes successfully this means it completed
a ton of cycles without errors. It caches any missing barriers
which aren't nops on your system.

Second - use perf.

E.g. simple perf stat will measure how long does it take to execute.
there's a script that runs it on different CPUs,
so I normally do:

sh run-on-all.sh perf stat -r 5 ./skb_array


> > diff --git a/tools/virtio/ringtest/Makefile b/tools/virtio/ringtest/Makefile
> > index 6ba7455..87e58cf 100644
> > --- a/tools/virtio/ringtest/Makefile
> > +++ b/tools/virtio/ringtest/Makefile
> > @@ -1,6 +1,6 @@
> > all:
> >
> > -all: ring virtio_ring_0_9 virtio_ring_poll virtio_ring_inorder
> > +all: ring virtio_ring_0_9 virtio_ring_poll virtio_ring_inorder skb_array
> ^^^^^^^^^^^^^^^^^^^
> >
> > CFLAGS += -Wall
> > CFLAGS += -pthread -O2 -ggdb
> > @@ -8,6 +8,7 @@ LDFLAGS += -pthread -O2 -ggdb
> >
> > main.o: main.c main.h
> > ring.o: ring.c main.h
> > +skb_array.o: skb_array.c main.h ../../../include/linux/skb_array.h
> > virtio_ring_0_9.o: virtio_ring_0_9.c main.h
> > virtio_ring_poll.o: virtio_ring_poll.c virtio_ring_0_9.c main.h
> > virtio_ring_inorder.o: virtio_ring_inorder.c virtio_ring_0_9.c main.h
> > @@ -15,6 +16,7 @@ ring: ring.o main.o
> > virtio_ring_0_9: virtio_ring_0_9.o main.o
> > virtio_ring_poll: virtio_ring_poll.o main.o
> > virtio_ring_inorder: virtio_ring_inorder.o main.o
> ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
> > +skb_array: skb_array.o main.o
> > clean:
> > -rm main.o
> > -rm ring.o ring
>
>
> --
> Best regards,
> Jesper Dangaard Brouer
> MSc.CS, Principal Kernel Engineer at Red Hat
> Author of http://www.iptv-analyzer.org
> LinkedIn: http://www.linkedin.com/in/brouer