Re: [PATCH RFC 0/2] KVM: use RCU to allow dynamic kvm->vcpus array
From: Cornelia Huck <cohuck@redhat.com>
Date: 2017-08-17 09:28:38
Also in:
kvm, linux-arm-kernel, linux-s390, lkml
From: Cornelia Huck <cohuck@redhat.com>
Date: 2017-08-17 09:28:38
Also in:
kvm, linux-arm-kernel, linux-s390, lkml
On Thu, 17 Aug 2017 11:16:59 +0200 Paolo Bonzini [off-list ref] wrote:
On 17/08/2017 09:36, Cornelia Huck wrote:quoted
quoted
What if we just sent a "vcpu move" request to all vcpus with the new pointer after it moved? That way the vcpu thread itself would be responsible for the migration to the new memory region. Only if all vcpus successfully moved, keep rolling (and allow foreign get_vcpu again). That way we should be basically lock-less and scale well. For additional icing, feel free to increase the vcpu array x2 every time it grows to not run into the slow path too often.I'd prefer the rcu approach: This is a mechanism already understood well, no need to come up with a new one that will likely have its own share of problems.What Alex is proposing _is_ RCU, except with a homegrown synchronize_rcu. Using kvm->srcu seems to be the best of both worlds.
I'm worried a bit about the 'homegrown' part, though. I also may be misunderstanding what Alex means with "vcpu move"...