Re: [PATCH net-next v3 1/3] selftests/ptr_ring: add benchmark application for ptr_ring

From: Jason Wang
Date: Fri Jul 02 2021 - 05:05:00 EST

在 2021/7/2 下午4:46, Yunsheng Lin 写道:
On 2021/7/2 16:30, Michael S. Tsirkin wrote:
On Fri, Jul 02, 2021 at 04:17:17PM +0800, Yunsheng Lin wrote:
Let's reuse ptr_ring.c in tools/virtio/ringtest. Nothing virt specific there.
It *does* have some virtio specific at the end of ptr_ring.c.

They are just wrappers to make ptr ring works like a virtio ring. We can split them out into another file if necessary.

It can be argued that the ptr_ring.c in tools/virtio/ringtest
could be refactored to remove the function related to virtio.

But as mentioned in the previous disscusion [1], the tools/virtio/
seems to have compile error in the latest kernel, it does not seems
right to reuse that.
And most of testcase in tools/virtio/ seems
better be in tools/virtio/ringtest instead,so until the testcase
in tools/virtio/ is compile-error-free and moved to tools/testing/
selftests/, it seems better not to reuse it for now.

That's a great reason to reuse - so tools/virtio/ stays working.
Please just fix that.


I understand that you guys like to see a working testcase of virtio.
I would love to do that if I have the time and knowledge of virtio,
But I do not think I have the time and I am familiar enough with
virtio to fix that now.

So ringtest is used for bench-marking the ring performance for different format. Virtio is only one of the supported ring format, ptr ring is another. Wrappers were used to reuse the same test logic.

Though you may see host/guest in the test, it's in fact done via two processes.

We need figure out:

1) why the current ringtest.c does not fit for your requirement (it has SPSC test)
2) why can't we tweak the ptr_ring.c to be used by both ring_test and your benchmark

If neither of the above work, we can invent new ptr_ring infrastructure under tests/