Re: [PATCH v4] kvm: make vcpu life cycle separated from kvm instance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/15/2011 04:25 PM, Xiao Guangrong wrote:

> On 12/15/2011 02:53 PM, Liu ping fan wrote:
> 
> 
>>
>>>> +struct kvm_vcpu *kvm_vcpu_get(struct kvm_vcpu *vcpu)
>>>> +{
>>>> +     if (vcpu == NULL)
>>>> +             return NULL;
>>>> +     if (atomic_add_unless(&vcpu->refcount, 1, 0))
>>>
>>>
>>> Why do not use atomic_inc()?
>>> Also, i think a memory barrier is needed after increasing refcount.
>>>
>> Because when refcout==0, we prepare to destroy vcpu, and do not to
>> disturb it by increasing the refcount.
> 
> 
> Oh, get it.
> 


But i think we can do it like this:

On the vcpu free path:

hold kvm->lock
delete vcpu from the kvm->vcpus
release kvm->lock

synchronize_rcu()
kvm_vcpu_put()

then, we can avoid get invalid instance and it can make the code simple?
--
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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux