I think it's happening down inside the old linuxthreads library. No idea
who, what, where or why.
There are quite a few places in the kernel which do it, too. Usually when
waiting for memory to come free. These are being gradually removed, in
favour of blk_congestion_wait() calls.
That leaves behind the very performance-critical sched_yield() in ext3
transaction batching. That was designed to allow other processes to join a
transaction before the calling one closes the transaction. With the new
yield() it was causing horrid starvation and was lamely replaced with a
schedule(). It needs to be resurrected for real, but I'm not sure how.
Probably just a sleep(0.01).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/