Thread (1 message) 1 message, 1 author, 2007-06-03

Re: [kvm-devel] [PATCH RFC 1/3] virtio infrastructure

From: Rusty Russell <hidden>
Date: 2007-06-03 10:29:00

On Sun, 2007-06-03 at 08:28 +0300, Avi Kivity wrote:
Sure, 'used' is important (how else do you get the packet size on
receive?)
Well, the sender can prepend the length, or for networking just leave
Linux to trim packets.  It's the trust issue which bugs me.
,  I'm just bitching about the linear scan.
If you're doing interrupt mitigation on a high-bandwidth device, I think
it's optimal.  And if you're not, you obviously don't care 8)

That said, thousands of descriptors may not be insane...
Well, if you have 256 slots per direction, you will scan 4KB of memory
per interrupt (256 slots x 2 directions x 8 bytes).  You may need a
queue length greater than 256 for a high bandwidth interface, if you
want to reduce your interrupt rate, or if your guest is scheduled out
for lengthy periods (say, a millisecond).
Hmm... Perhaps I should move the used arrays into the "struct
virtio_device" and guarantee that the id (returned by add_*buf) is an
index into that.  Then we can trivially add a corresponding bit array.

This also makes the "id" easier to use from the driver side: if we add a
"max_id" field it can size its own arrays if it wants to.  Gets rid of
the linked-list in the block driver...

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