On Tue, Sep 17, 2013 at 04:41:45PM +0200, Paolo Bonzini wrote: > Il 17/09/2013 14:47, Michael S. Tsirkin ha scritto: > > Ergo, to make sure a referenced MR does not get > > destroyed, we must make sure only finalize > > calls memory_region_destroy. > > > > So I think this patchset should do exactly that, > > not try to move out more stuff to finalize. > > Yes, this is the part of the problem that applies to all devices. > > Some devices may have timers or other dynamically-allocated data that > may be used between exit and finalize. The same applies to capabilities > such as MSI and MSI-X. All this must also be moved to finalize, but > this can be done in separate patches. > > I'll separate the series as follows: > > - memory_region_destroy > > - unregister_savevm
What's the problem here exactly? > - other dynamically allocated data And here? I don't think we should move rundom stuff out to finalize just because we can. > - del_vm_change_state_handler > > - MSI-X > > - SHPC, AER and other PCI/bridge stuff > > Paolo Let's document specific problems and fix them. Randomly moving cleanup order has a high chance to introduce bugs.