Re: [RFC PATCH 00/17] virtual-bus

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Gregory Haskins
Date: Friday, April 3, 2009 - 6:13 am

Avi Kivity wrote:
r
r

My real objection to PCI is fast-path related.  I don't object, per se,
to using PCI for discovery and hotplug.  If you use PCI just for these
types of things, but then allow fastpath to use more hypercall oriented
primitives, then I would agree with you.  We can leave PCI emulation in
user-space, and we get it for free, and things are relatively tidy.

Its once you start requiring that we stay ABI compatible with something
like the existing virtio-net in x86 KVM where I think it starts to get
ugly when you try to move it into the kernel.  So that is what I had a
real objection to.  I think as long as we are not talking about trying
to make something like that work, its a much more viable prospect.

So what I propose is the following:=20

1) The core vbus design stays the same (or close to it)
2) the vbus-proxy and kvm-guest patch go away
3) the kvm-host patch changes to work with coordination from the
userspace-pci emulation for things like MSI routing
4) qemu will know to create some MSI shim 1:1 with whatever it
instantiates on the bus (and can communicate changes
5) any drivers that are written for these new PCI-IDs that might be
present are allowed to use a hypercall ABI to talk after they have been
probed for that ID (e.g. they are not limited to PIO or MMIO BAR type
access methods).

Once I get here, I might have greater clarity to see how hard it would
make to emulate fast path components as well.  It might be easier than I
think.

This is all off the cuff so it might need some fine tuning before its
actually workable.

Does that sound reasonable?


Yeah, actually.  Thanks for bringing that up.

So the reason why signaling and the ring are distinct constructs in the
design is to facilitate constructs other than rings.  For instance,
there may be some models where having a flat shared page is better than
a ring.  A ring will naturally preserve all values in flight, where as a
flat shared page would not (last update is always current).  There are
some algorithms where a previously posted value is obsoleted by an
update, and therefore rings are inherently bad for this update model.=20
And as we know, there are plenty of algorithms where a ring works
perfectly.  So I wanted that flexibility to be able to express both.

One of the things I have in mind for the flat page model is that RT vcpu
priority thing.  Another thing I am thinking of is coming up with a PV
LAPIC type replacement (where we can avoid doing the EOI trap by having
the PICs state shared).


Yeah, and this part is not vbus, nor in-kernel specific.  That was just
a design element of venet-tap.  Though note, I did design the
vbus/shm-signal infrastructure with rich support for such a notion in
mind, so it wasn't accidental or anything like that.


Well, that gives me hope, at least ;)



Right, sorry.  I wish I had more concrete examples to show you, but we
only have the venet-tap working at this time.  I was going for the
"release early/often" approach in getting the core reviewed before we
got too far down a path, but perhaps that was the wrong thing in this
case.  We will certainly be sending updates as we get some of the more
advanced models and concepts working.

-Greg
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Tue Mar 31, 11:42 am)
[RFC PATCH 01/17] shm-signal: shared-memory signals, Gregory Haskins, (Tue Mar 31, 11:42 am)
[RFC PATCH 02/17] vbus: add virtual-bus definitions, Gregory Haskins, (Tue Mar 31, 11:42 am)
[RFC PATCH 04/17] vbus: add bus-registration notifiers, Gregory Haskins, (Tue Mar 31, 11:43 am)
[RFC PATCH 07/17] ioq: add vbus helpers, Gregory Haskins, (Tue Mar 31, 11:43 am)
[RFC PATCH 09/17] net: Add vbus_enet driver, Gregory Haskins, (Tue Mar 31, 11:43 am)
[RFC PATCH 11/17] venet: add scatter-gather support, Gregory Haskins, (Tue Mar 31, 11:43 am)
[RFC PATCH 12/17] venettap: add scatter-gather support, Gregory Haskins, (Tue Mar 31, 11:43 am)
[RFC PATCH 14/17] kvm: add a reset capability, Gregory Haskins, (Tue Mar 31, 11:44 am)
[RFC PATCH 15/17] kvm: add dynamic IRQ support, Gregory Haskins, (Tue Mar 31, 11:44 am)
[RFC PATCH 16/17] kvm: Add VBUS support to the host, Gregory Haskins, (Tue Mar 31, 11:44 am)
[RFC PATCH 17/17] kvm: Add guest-side support for VBUS, Gregory Haskins, (Tue Mar 31, 11:44 am)
Re: [RFC PATCH 15/17] kvm: add dynamic IRQ support, Avi Kivity, (Tue Mar 31, 12:20 pm)
Re: [RFC PATCH 14/17] kvm: add a reset capability, Avi Kivity, (Tue Mar 31, 12:22 pm)
Re: [RFC PATCH 15/17] kvm: add dynamic IRQ support, Gregory Haskins, (Tue Mar 31, 12:39 pm)
Re: [RFC PATCH 14/17] kvm: add a reset capability, Gregory Haskins, (Tue Mar 31, 1:02 pm)
Re: [RFC PATCH 15/17] kvm: add dynamic IRQ support, Avi Kivity, (Tue Mar 31, 1:13 pm)
Re: [RFC PATCH 14/17] kvm: add a reset capability, Avi Kivity, (Tue Mar 31, 1:18 pm)
Re: [RFC PATCH 00/17] virtual-bus, Andi Kleen, (Tue Mar 31, 1:18 pm)
Re: [RFC PATCH 15/17] kvm: add dynamic IRQ support, Gregory Haskins, (Tue Mar 31, 1:32 pm)
Re: [RFC PATCH 14/17] kvm: add a reset capability, Gregory Haskins, (Tue Mar 31, 1:37 pm)
Re: [RFC PATCH 09/17] net: Add vbus_enet driver, Stephen Hemminger, (Tue Mar 31, 1:39 pm)
Re: [RFC PATCH 01/17] shm-signal: shared-memory signals, Gregory Haskins, (Tue Mar 31, 1:58 pm)
Re: [RFC PATCH 15/17] kvm: add dynamic IRQ support, Avi Kivity, (Tue Mar 31, 1:59 pm)
Re: [RFC PATCH 00/17] virtual-bus, Rusty Russell, (Tue Mar 31, 11:08 pm)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 4:35 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 5:03 am)
Re: [RFC PATCH 01/17] shm-signal: shared-memory signals, Gregory Haskins, (Wed Apr 1, 5:12 am)
Re: [RFC PATCH 00/17] virtual-bus, Andi Kleen, (Wed Apr 1, 6:23 am)
Re: [RFC PATCH 01/17] shm-signal: shared-memory signals, Gregory Haskins, (Wed Apr 1, 6:57 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 7:19 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 7:42 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Wed Apr 1, 9:10 am)
Re: [RFC PATCH 00/17] virtual-bus, Andi Kleen, (Wed Apr 1, 10:01 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Wed Apr 1, 11:45 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 1:29 pm)
Re: [RFC PATCH 00/17] virtual-bus, Chris Wright, (Wed Apr 1, 1:40 pm)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 2:09 pm)
Re: [RFC PATCH 00/17] virtual-bus, Andi Kleen, (Wed Apr 1, 3:23 pm)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 4:05 pm)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Wed Apr 1, 5:29 pm)
Re: [RFC PATCH 00/17] virtual-bus, Rusty Russell, (Wed Apr 1, 6:24 pm)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 7:27 pm)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Wed Apr 1, 8:09 pm)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Wed Apr 1, 8:11 pm)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Wed Apr 1, 8:11 pm)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Wed Apr 1, 8:15 pm)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Wed Apr 1, 11:46 pm)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Wed Apr 1, 11:51 pm)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 1:52 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 1:54 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 2:02 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 2:03 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 2:05 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 2:16 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 2:27 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 2:29 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 2:33 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 2:38 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 2:41 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 2:43 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 2:44 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 3:46 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 3:55 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 4:06 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 4:43 am)
Re: [RFC PATCH 09/17] net: Add vbus_enet driver, Gregory Haskins, (Thu Apr 2, 4:43 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 4:48 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 4:59 am)
Re: [RFC PATCH 00/17] virtual-bus, Rusty Russell, (Thu Apr 2, 5:13 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 5:22 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 5:30 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 5:42 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 5:43 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 5:50 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 5:52 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 5:54 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 6:03 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 6:07 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 6:08 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 6:22 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 6:27 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 6:36 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 6:45 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 7:05 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Thu Apr 2, 7:24 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 7:32 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 7:41 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Thu Apr 2, 7:49 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 7:50 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 8:00 am)
Re: [RFC PATCH 00/17] virtual-bus, Michael S. Tsirkin, (Thu Apr 2, 8:10 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 8:40 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 8:57 am)
Re: [RFC PATCH 02/17] vbus: add virtual-bus definitions, Ben Hutchings, (Thu Apr 2, 9:06 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Thu Apr 2, 9:09 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 9:09 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 9:19 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Thu Apr 2, 9:54 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 10:06 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 10:17 am)
Re: [RFC PATCH 02/17] vbus: add virtual-bus definitions, Gregory Haskins, (Thu Apr 2, 11:13 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Thu Apr 2, 11:18 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Thu Apr 2, 6:11 pm)
Re: [RFC PATCH 00/17] virtual-bus, Jeremy Fitzhardinge, (Thu Apr 2, 9:43 pm)
Re: [RFC PATCH 00/17] virtual-bus, Gerd Hoffmann, (Fri Apr 3, 3:58 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 4:03 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Fri Apr 3, 4:12 am)
Re: [RFC PATCH 00/17] virtual-bus, Andi Kleen, (Fri Apr 3, 4:18 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Fri Apr 3, 4:28 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Fri Apr 3, 4:34 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 4:46 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 4:46 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Fri Apr 3, 4:48 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 4:54 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Fri Apr 3, 4:55 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 5:02 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Fri Apr 3, 5:03 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 5:15 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 5:25 am)
Re: [RFC PATCH 00/17] virtual-bus, Herbert Xu, (Fri Apr 3, 6:05 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Fri Apr 3, 6:13 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Fri Apr 3, 6:37 am)
Re: [RFC PATCH 00/17] virtual-bus, Gregory Haskins, (Fri Apr 3, 9:28 am)
Re: [RFC PATCH 00/17] virtual-bus, Rusty Russell, (Sat Apr 4, 8:44 pm)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Sun Apr 5, 1:06 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Sun Apr 5, 3:00 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Sun Apr 5, 7:13 am)
Re: [RFC PATCH 00/17] virtual-bus, Avi Kivity, (Sun Apr 5, 9:10 am)
Re: [RFC PATCH 00/17] virtual-bus, Anthony Liguori, (Sun Apr 5, 9:45 am)
Re: [kvm] Re: [RFC PATCH 00/17] virtual-bus, Alex Williamson, (Mon Apr 20, 11:02 am)