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

Reply via email to