Re: [PATCH 1/1] do_exit(): Solve possibility of BUG() due to race with try_to_wake_up()

From: Ingo Molnar
Date: Thu Sep 04 2014 - 01:04:34 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> > Ah, I simply do not know what is cheaper, even on x86. Well,
> > we need to enable/disable irqs, but again I do not really
> > know how much does this cost.
>
> Ah good point about that IRQ thing, yes that's horribly
> expensive.

Enabling/disabling local IRQs is not really expensive (it's a
flat cost essentially - below 10 cycles on modern x86 CPUs) -
especially if we consider the 100x-1000x frequency difference
between schedule() and exit(), on typical systems:

$ grep -E 'ctxt|processes' /proc/stat
ctxt 47166536
processes 91876

And that's from a system that emphatically does not schedule
much. On others the difference is much larger.

So please don't push complexity into the scheduler from
lower-freq areas of the kernel!

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/