On Fri, Mar 22, 2013 at 11:32:33AM +1030, Rusty Russell wrote: > "Michael S. Tsirkin" <m...@redhat.com> writes: > > On Thu, Mar 21, 2013 at 06:59:34PM +1030, Rusty Russell wrote: > >> Differences: > >> 1) Uses 4 pci capabilities to demark common, irq, notify and dev-specific > >> areas. > >> 2) Guest sets queue size, using host-provided maximum. > >> 3) Guest sets queue alignment, rather than ABI-defined 4096. > >> 4) More than 32 feature bits (a lot more!). > ... > >> +/* Constants for MSI-X */ > >> +/* Use first vector for configuration changes, second and the rest for > >> + * virtqueues Thus, we need at least 2 vectors for MSI. */ > >> +enum { > >> + VP_MSIX_CONFIG_VECTOR = 0, > >> + VP_MSIX_VQ_VECTOR = 1, > >> +}; > > > > In the future, I have a plan to allow one vector only. To make this > > work without exits for data path VQ, we could make hypervisor set a bit > > in guest memory whenever it wants to signal a configuration change. > > Guest will execute a config write that will make the hypervisor clear > > this register. > > > > I guess this can wait, we are putting too stuff much into this > > new layout patchset already. > > Yeah, trying not to boil the ocean... and I'm not sure that reinventing > MSI-X manually is a good idea anyway.
I'm not sure this is reinventing MSI-X but I agree let's do things gradually. > >> +static void vp_reset(struct virtio_device *vdev) > >> +{ > >> + struct virtio_pci_device *vp_dev = to_vp_device(vdev); > >> + /* 0 status means a reset. */ > >> + iowrite8(0, &vp_dev->common->device_status); > >> + /* Flush out the status write, and flush in device writes, > >> + * including MSi-X interrupts, if any. */ > > > > MSI-X ? > > Thanks, fixed. > > Cheers, > Rusty. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization