Thread (1 message) 1 message, 1 author, 2011-11-04

Re: virtio-pci new configuration proposal

From: Sasha Levin <hidden>
Date: 2011-11-04 13:53:24

On Fri, 2011-11-04 at 15:51 +0200, Michael S. Tsirkin wrote:
On Fri, Nov 04, 2011 at 02:32:19PM +0200, Sasha Levin wrote:
quoted
On Fri, 2011-11-04 at 13:40 +0200, Michael S. Tsirkin wrote:
quoted
On Fri, Nov 04, 2011 at 08:14:43PM +1030, Rusty Russell wrote:
quoted
quoted
quoted
3) If we're changing the queue layout, it's a chance to fix a
   longstanding bug: let the guest notify the host of preferred
   queue size and alignment.
Yup, we can do that.
We don't need to change all of layout for that - just add another field
in the common config structure to supply the alignment.
How would you do it without changing the layout? Add another optional
field at the end which will shift offsets based on whether the host and
guest support this new feature or not?

This leads to 3 different things which now shift config offsets around.
No. Just put the field at offset 24 from the offset specified
by VIRTIO_PCI_CAP_COMMON_CFG.
Two questions here:

- What about backwards compatibility? How would the config space look
when we're not using the new layout?
- How does it work with 64 bit features which are also located there?
quoted
As you said, the PCI cap list was introduced both to save space (which
is not the motivation here), and because it's a very efficient
It's actually pretty inefficient - there's an overhead of 3 bytes for
each vendor specific option.
It's efficient because while you pay a small price for each optional
option it also means that that option is optional and won't clutter the
config space if it's not really in use.

Think of how the PCI config space would look if all those caps wouldn't
have been optional and would instead all of them would have just have
been attached to the end of the config space.
quoted
and easy way to manage optional features without requiring tricks
which move offsets around like we do now.
Tricks with offsets only appeared because we had datapath, device
specific and common config in the same place.
feature list isn't needed to fix that.
quoted
-- 

Sasha.
-- 

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