Re: [patch] x86: kvm: Convert i8254/i8259 locks to raw_spinlocks

Jan Kiszka
2010-02-18T09:40:33Z

Avi Kivity wrote:
> On 02/18/2010 11:12 AM, 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.
>>>
>> Last time I ran KVM over RT, I also had to convert requests_lock (struct
>> kvm): make_all_cpus_request assumes that this lock prevents migration.
>>
>>
>
> True. Will commit something to that effect.
>
> Meanwhile, if anyone has any idea how to kill this lock, I'd love to see it.
>

What concurrency does it resolve in the end? On first glance, it only
synchronize the fiddling with pre-VCPU request bits, right? What forces
us to do this? Wouldn't it suffice to disable preemption (thus
migration) and the let concurrent requests race for setting the bits? I
mean if some request bit was already set on entry, we don't include the
related VCPU in smp_call_function_many anyway.

Jan

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