kernel 2.3.31 seems to busy wait for sleep < 2 msec, is this not a bad

Gautam H Thaker (
Wed, 29 Dec 1999 13:45:58 -0500

Recently someone on the ACE/TAO list pointed me to Linux 2.3.x
development kernels that are being modified to improve scheduler
determinism. When I started to look around Linux 2.3.31 code I noted
this bit of "busy wait" for sleeps < 2 msec using nanosleep().

Frankly, either I don't understand something or this is rather not
One can have a 100% CPU bound machine if doing




would be 99+% idle!

I still don't know why modifications that KURT group has (called UTIME
patch) are not being
Below seems to be a much worse hack.

from file kernel/sched.c in Linux 2.3.31 kernel.

Anyway, happy holidays. Gautam Thaker (

From 2.3.31 kernel sources:
asmlinkage long sys_nanosleep(struct timespec *rqtp, struct timespec
struct timespec t;
unsigned long expire;

if(copy_from_user(&t, rqtp, sizeof(struct timespec)))
return -EFAULT;

if (t.tv_nsec >= 1000000000L || t.tv_nsec < 0 || t.tv_sec < 0)
return -EINVAL;

if (t.tv_sec == 0 && t.tv_nsec <= 2000000L &&
current->policy != SCHED_OTHER)
* Short delay requests up to 2 ms will be handled with
* high precision by a busy wait for all real-time
* Its important on SMP not to do this holding locks.
udelay((t.tv_nsec + 999) / 1000);
return 0;

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at