On Fri, Apr 12, 2013 at 12:49:45PM +0800, liu ping fan wrote: > On Thu, Apr 11, 2013 at 6:15 PM, Stefan Hajnoczi <stefa...@gmail.com> wrote: > > On Mon, Apr 01, 2013 at 04:20:32PM +0800, Liu Ping Fan wrote: > >> @@ -51,7 +50,7 @@ bool vring_setup(Vring *vring, VirtIODevice *vdev, int n) > >> > >> void vring_teardown(Vring *vring) > >> { > >> - hostmem_finalize(&vring->hostmem); > >> + memory_region_unref(vring->vring_mr); > >> } > > > > dataplane keeps a reference to the vring. This prevents memory hot > > unplug while the device is up. If this is a problem we'll have to > > reduce the lifespan of the vring mapping. > > > hot unplug is rare case, maybe we can ignore the delay of device's finalize.
I thought about the vring more and I think we can keep the current behavior. dataplane keeps the vring up when the device is active. When the guest kernel/device driver resets the device then we unmap the vring. It's reasonable that the guest needs to release the virtio device before hot unplugging memory used for the vring :). Therefore, in practice this behavior should be fine. Stefan