Thread (53 messages) 53 messages, 5 authors, 2018-11-09

Re: [virtio-dev] Re: [PATCH net-next v2 0/5] virtio: support packed ring

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2018-10-10 14:36:33
Also in: lkml

On Thu, Sep 13, 2018 at 05:47:29PM +0800, Jason Wang wrote:

On 2018年09月13日 16:59, Tiwei Bie wrote:
quoted
quoted
If what you say is true then we should take a careful look
and not supporting these generic things with packed layout.
Once we do support them it will be too late and we won't
be able to get performance back.
I think it's a good point that we don't need to support
everything in packed ring (especially these which would
hurt the performance), as the packed ring aims at high
performance. I'm also wondering about the features. Is
there any possibility that we won't support the out of
order processing (at least not by default) in packed ring?
If I didn't miss anything, the need to support out of order
processing in packed ring will make the data structure
inside the driver not cache friendly which is similar to
the case of the descriptor table in the split ring (the
difference is that, it only happens in driver now).
Out of order is not the only user, DMA is another one. We don't have used
ring(len), so we need to maintain buffer length somewhere even for in order
device.
For a bunch of systems dma unmap is a nop so we do not really
need to maintain it. It's a question of an API to detect that
and optimize for it. I posted a proposed patch for that -
want to try using that?
But if it's not too late, I second for a OUT_OF_ORDER feature.
Starting from in order can have much simpler code in driver.

Thanks
It's tricky to change the flag polarity because of compatibility
with legacy interfaces. Why is this such a big deal?

Let's teach drivers about IN_ORDER, then if devices
are in order it will get enabled by default.

-- 
MST
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help