Il 09/10/2012 14:22, Avi Kivity ha scritto: > On 10/09/2012 02:01 PM, Paolo Bonzini wrote: >> >>> [could we also avoid refcounting by doing the equivalent of >>> stop_machine() during hotunplug?] >> >> That's quite an interesting alternative. > > It's somewhat unattractive in that we know how much stop_machine is > hated in Linux. But maybe it makes sense as a transitional path. > > Note it's not sufficient to stop vcpu threads, we also have to stop > non-vcpu threads that may be issuing address_space_rw() or family.
Yes, we need some list of "guest workers", of which VCPUs are just one example. > But no, it's actually impossible. Hotplug may be triggered from a vcpu > thread, which clearly it can't be stopped. Hotplug should always be asynchronous (because that's how hardware works), so it should always be possible to delegate the actual work to a non-VCPU thread. Or not? Paolo