Why processes are deprived of CPU for TOO long while busy looping in Linux kernel?

view story

http://stackoverflow.com – At first glance, my question might look bit trivial. Please bear with me and read completely. I have identified a busy loop in my Linux kernel module. Due to this, other processes (e.g. sshd) are not getting CPU time for long spans of time (like 20 seconds). This is understandable as my machine has only single CPU and busy loop is not giving chance to schedule other processes. Just to experiment, I had added schedule() after each iteration in the busy loop. Even though, this would be keeping the CPU busy, it should still let other processes run as I am calling schedule(). But, this doesn't s (HowTos)