Re: [COUNTERPATCH] mm: avoid overflowing preempt_count() in mmu_take_all_locks()

Avi Kivity
2010-04-01T17:11:54Z

On 04/01/2010 06:32 PM, Andrea Arcangeli wrote:
>
>> I'm not sure whether this is a real well done April 1st joke or if there
>> is someone trying to secure the "bad taste patch of the month" price.
>>
>> Anyway, I don't see a reason why we can't convert those locks to
>> mutexes and get rid of the whole preempt disabled region.
>>
> Converting those locks to mutexes will also allow to cleanly handle
> XPMEM schedule-in-mmu-notifier-handler requirement the right way.
>

It would also allow kvm not to take a spinlock over potentially long
operations (iterating over rmaps) as it does now.

> For now getting rid of the warning is enough though. Changing the
> locking would be possible but it'd slowdown the whole kernel all the
> time even if nobody would ever load the kvm or gru kernel modules.
>
> Let's be practical, this isn't even a syscall, this is only called by
> device driver ioctl and it's about losing 1msec or so in latency, to
> keep the whole kernel as fast as if mmu notifier didn't exist. I don't
> think we should have 1 single wide lock to take in
> mmu_notifier_register and then slowdown the kernel when nobody uses
> mmu notifier at all. Losing 1msec when a VM starts isn't a big deal
> really. If this wasn't the case it wouldn't have been merged in the
> first place I think. Besides with -rt these locks aren't going to hurt
> latency AFIK.
>

Well, with my patch applied they sure will.

--
error compiling committee.c: too many arguments to function