Re: [RFC][PATCH 0/5] Signal scalability series

Thomas Gleixner
2011-10-03T22:13:53Z

On Mon, 3 Oct 2011, Matt Fleming wrote:

> On Mon, 2011-10-03 at 18:35 +0200, Oleg Nesterov wrote:
> > On 10/03, Matt Fleming wrote:
> > >
> > > Oh, are you referring to Oleg's email about the slow down under kvm?
> > > Yeah, admittedly that's a pretty clear indicator that something is wrong
> > > with the approach in this patch series.
> >
> > Or there was something wrong with my testing, please recheck. I specially
> > mentioned I was surprised by the numbers. May be kvm, or lockdep...
>
> No, I don't think there was anything wrong with your testing method. I
> ran your command-line under Qemu and saw similar results - with the
> patches applied the single-threaded case slows down (not by 50%, it
> looks more like 25%, but that's still unacceptable and not at all what I
> had anticipated).

After staring a bit at your patch I think that you need to tackle that
from a different angle.

The main nuisance of sighand->siglock is the exit race protection and
that's why we need to take it for evrything and some more.

In order to distangle the posix-(cpu)-timer and other stuffs
protection from that single lock, you need to introduce "independent"
locks which basically do the same dance as lock_task_sighand() does
and have to be taken in the exit() path in a well defined order before
manipulating task->sighand.

That way you still cover the exit races, but you can break up the
locking for particular subsystems w/o the need of (much) nesting.

Thanks,

tglx