Messages in this thread | | | Date | Tue, 4 Oct 2011 00:37:49 -0700 | From | Tejun Heo <> | Subject | Re: [RFC][PATCH 0/5] Signal scalability series |
| |
Hello,
On Mon, Oct 03, 2011 at 03:56:26PM +0200, Thomas Gleixner wrote: > > Signal delivery is O(#threads)? Delivery of fatal signal is of course > > but where do we walk all threads during non-fatal signal deliveries? > > What am I missing? > > Delivery of any process wide signal can result in an O(thread) walk to > find a valid target. That's true for user space originated and kernel > space originated (e.g. posix timers) signals.
Ooh, right. Wakeup currently does linear scan of threads, but this is mostly a separate issue. As Peter suggested, tracking wakeup target probably is one sane way to solve this.
Do you think siglock would still be a problem even after O(N) problem is solved? Maybe that would lessen contention enough such that the locking scope wouldn't matter anymore? Unless breaking up of the locks results in nice separate hot domains, being finer-grained doesn't mean much after all.
Thank you.
-- tejun
| |