On Wed, Dec 28, 2011 at 5:53 PM, Avi Kivity <avi@xxxxxxxxxx> wrote: > On 12/28/2011 08:54 AM, Liu ping fan wrote: >> >> >> >> struct kvm_vcpu { >> >> struct kvm *kvm; >> >> + struct list_head list; >> >> #ifdef CONFIG_PREEMPT_NOTIFIERS >> >> struct preempt_notifier preempt_notifier; >> >> #endif >> >> @@ -251,12 +252,14 @@ struct kvm { >> >> struct mm_struct *mm; /* userspace tied to this vm */ >> >> struct kvm_memslots *memslots; >> >> struct srcu_struct srcu; >> >> + struct srcu_struct srcu_vcpus; >> >> + >> > >> > Another srcu. This alone is worth explaining in the changelog IMO. >> > >> Sorry, but why? I think it is just a srcu, and because it has >> different aim and want a independent grace period, so not multiplex >> kvm->srcu. > > There is Documentation/virtual/kvm/locking.txt for that. > > btw, why does it have to be srcu? Is rcu insufficient? > Just to survive from "if (yield_to(task, 1)) in kvm_vcpu_on_spin()", > Why do we want an independent grace period, is hotunplugging a vcpu that > much different from hotunplugging memory? > I thought that if less readers on the same srcu lock, then synchronize_srcu_expedited() may success to return more quickly. Thanks and regards, ping fan > -- > error compiling committee.c: too many arguments to function > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html