On Tue, Nov 29, 2011 at 03:01:59PM +0200, Pekka Enberg wrote: > >> > >>Hi Sasha, where the rmb() then? Or maybe you wanted plain barrier() here? > > > >On the kernel side. > >Theres a mb there which happens there during the kick. > > I guess we need to improve the comment in next_desc()? > Kernel's code has pretty good aliases for virtio barriers I think #ifdef CONFIG_SMP /* Where possible, use SMP barriers which are more lightweight than mandatory * barriers, because mandatory barriers control MMIO effects on accesses * through relaxed memory I/O windows (which virtio does not use). */ #define virtio_mb() smp_mb() #define virtio_rmb() smp_rmb() #define virtio_wmb() smp_wmb() #else /* We must force memory ordering even if guest is UP since host could be * running on another CPU, but SMP barriers are defined to barrier() in that * configuration. So fall back to mandatory barriers instead. */ #define virtio_mb() mb() #define virtio_rmb() rmb() #define virtio_wmb() wmb() #endif Maybe we could use somethig similar? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html