Messages in this thread | | | Subject | Re: [RFC 07/13] sched: Reduce stack size requirements in kernel/sched.c | From | Peter Zijlstra <> | Date | Sun, 07 Sep 2008 22:28:01 +0200 |
| |
On Sun, 2008-09-07 at 04:00 -0700, Andrew Morton wrote:
> make cpu_hotplug.refcount an atomic_t.
That might actually be a worthwhile idea, but it will not make get_online_cpus() atomic. The whole point of get_online_cpus() is to serialize against actual hotplug operations, so it will have to sleep at some point.
Now, turning cpu_hotplug.refcount into an atomic_t might be worthwhile because it will reduce the amount of atomic operations in its fastpath from 2 to 1.
You'd have to make recount==1 the stable situation and use atomic_inc_unless() and atomic_dec_and_test() in get_online_cpus() and put_online_cpus() resp. that way !refcount can signify a hotplug operation and we'd fall back into the slow paths.
| |