On 01/05/2011 05:48 PM, Avi Kivity wrote:

>>       srcu_read_unlock(&vcpu->kvm->srcu, idx);
>> +    atomic_set(&vcpu->guest_mode, 1);
>>       kvm_guest_enter();
> 
> I think it needs an smp_wmb() (technically x86 needs it too, but x86 is 
> strongly ordered)

......

>> -        if (cpus != NULL&&  cpu != -1&&  cpu != me)
>> +        if (cpus != NULL&&  cpu != -1&&  cpu != me&&
>> +              atomic_read(&vcpu->guest_mode))
>>               cpumask_set_cpu(cpu, cpus);
> 
> and smp_rmb() before the atomic_read().

Yeah, you're right, i'll fix these in the next version.

> 
>>       }
>>       if (unlikely(cpus == NULL))
> 
> Not sure if this is an optimization.  On one hand it removes an expensive IPI 
> for the fraction of time the cpu is out of guest mode.  On the other hand it 
> adds an unconditional cacheline bounce (and bounce back).
> 
> Hm. I see that ->guest_mode and ->requests are in fact in the same cache 
> line.  So this is likely really an optimization.  We should probably 
> reorganize kvm_vcpu so that this is made explicit.
> 

OK, will do it in the separate patch in the future, thanks!
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to