Rusty Russell wrote:
On Wednesday 07 November 2007 04:48:35 Anthony Liguori wrote:
Semantically, find requires that a field have both a type and a length.
With the exception of the VIRTQUEUE field used internally by lguest,
type is always a unique identifier. Since virtqueue information is not
a required part of the config space, it seems to me that type really
should be treated as a unique identifier.
Hi Anthony,
Not sure I get this. It is a unique identifier. You need the length
to handle unknown fields.
It's not a unique identifier since it can be used for multiple items
(like it is for virtqueues configs).
find_vq also is curious in that it is stateful in it's enumeration.
Well, they're *all* stateful. This gives a simple method of knowing what
fields the guest understands: it marks the fields as it finds them. Then it
sets the status, which allows the host to know when it's completed
configuration reads.
But PCI device configuration is not stateful. If you care about letting
the host know what features a guest understands, I think something more
explicit and stateful should be used. For instance, a feature register
that stores a bitmap.
Otherwise, the host has to infer based on what fields that guest has
read what features the guest actually supports. That seems error prone
to me.
I like enumerating the virtqueues: it's not necessary but it's clearer.
This adds seemingly unnecessary complexity.
I'd be happy for a simpler mechanism...
What do you think of what I proposed? It seems simpler to me.
Regards,
Anthony Liguori
Cheers,
Rusty.
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization