[04/17] [PATCH] Add kvm arch-specific core code for kvm/ia64.-V8
Carsten Otte
cotte at de.ibm.com
Tue Apr 1 04:49:30 PDT 2008
Zhang, Xiantao wrote:
> Carsten Otte wrote:
>> Zhang, Xiantao wrote:
>>> Carsten Otte wrote:
>>>> Zhang, Xiantao wrote:
>>>>> Hi, Carsten
>>>>> Why do you think it is racy? In this function,
>>>>> target_vcpu->arch.launched should be set to 1 for the first run,
>>>>> and keep its value all the time. Except the first IPI to wake up
>>>>> the vcpu, all IPIs received by target vcpu should go into "else"
>>>>> condition. So you mean the race condition exist in "else" code ?
>>>> For example to lock against destroying that vcpu. Or, the waitqueue
>>>> may become active after if (waitqueue_active()) and before
>>>> wake_up_interruptible(). In that case, the target vcpu might sleep
>>>> and not get waken up by the ipi.
>>> I don't think it may cause issue, because the target vcpu at least
>>> can be waken up by the timer interrupt.
>>>
>>> But as you said, x86 side also have the same race issue ?
>> As far as I can tell, x86 does'nt have that race.
>
> Hi, Carsten
> I can't understand why it only exist at IA64 side. Thank you!
> Xiantao
Well, x86 does'nt signal the target processor by accessing the vcpu
data structure. They use the IPI signal for that as far as I can see.
And s390 does have an explicit lock for this purpose. Itanium however,
does not have a lock but does access the target vcpu struct.
More information about the Virtualization
mailing list