Re: [PATCH] KVM: x86: Kick VCPU outside PIC lock again

Jan Kiszka
2010-02-24T10:14:09Z

Avi Kivity wrote:
> On 02/24/2010 11:54 AM, Jan Kiszka wrote:
>> Avi Kivity wrote:
>>
>>> On 02/24/2010 11:41 AM, Jan Kiszka wrote:
>>>
>>>> Thomas Gleixner wrote:
>>>>
>>>>
>>>>> On Tue, 23 Feb 2010, Jan Kiszka wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Thomas Gleixner wrote:
>>>>>>
>>>>>>
>>>>>>> The i8254/i8259 locks need to be real spinlocks on preempt-rt. Convert
>>>>>>> them to raw_spinlock. No change for !RT kernels.
>>>>>>>
>>>>>>>
>>>>>> Doesn't fly for -rt anymore: pic_irq_update runs under this raw lock and
>>>>>> calls kvm_vcpu_kick which tries to wake_up some thread -> scheduling
>>>>>> while atomic.
>>>>>>
>>>>>>
>>>>> Hmm, a wakeup itself is fine. Is that code waking a wake queue ?
>>>>>
>>>>>
>>>> Yes, it's a wake queue.
>>>>
>>>>
>>> So what's the core issue? Is the lock_t in the wait_queue a sleeping mutex?
>>>
>> Yep.
>>
>
> I see. Won't we hit the same issue when we call pic functions from
> atomic context during the guest entry sequence?
>

If there are such call paths, for sure. What concrete path(s) do you
have in mind?

Jan

--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux