Messages in this thread | | | Subject | Re: 2.6.24-rc6-mm1 | From | Peter Zijlstra <> | Date | Wed, 02 Jan 2008 12:01:16 +0100 |
| |
On Wed, 2008-01-02 at 21:31 +1100, Nick Piggin wrote: > On Monday 31 December 2007 00:10, Ingo Molnar wrote: > > * Herbert Xu <herbert@gondor.apana.org.au> wrote: > > > > Ingo, it's not good that we have cond_resched() definitions > > > > conditionally duplicated in kernel.h - that's increasing the risk of > > > > bugs like this one. > > > > > > Actually, why do we even have cond_resched when real preemption is on? > > > It seems to be a waste of space and time. > > > > due to the BKL. cond_resched() in BKL code breaks up BKL latencies. > > > > i dont mind not doing that though - we should increase the pain for BKL > > users, so that subsystems finally get rid of it altogether. > > lock_kernel() use within the kernel is still rampant - there are still > > more than 400 callsites to lock_kernel(). > > It would be silly to potentially increase latency in some areas > for CONFIG_PREEMPT kernels, though. > > Better may be to detect when there is CONFIG_PREEMPT and > CONFIG_PREEMPT_BKL, and ifdef away the cond_resched in that case > (or -- why do we even make CONFIG_PREEMPT_BKL an option? Are there > really workloads left where it causes throughput regressions?)
I've seen 1s+ desktop latencies due to PREEMPT_BKL when I was still using reiserfs.
Both reiserfs and tty were fighting for the bkl and massive prio inversion ensued. Turning PREEMPT_BKL off made the system usable again.
| |