lkml.org 
[lkml]   [1999]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Can't sleep less than 20 ms
    Date
    From
    Dong Liu wrote:
    > Boussard Per wrote:
    > >
    > > On Fri, 2 Jul 1999, Andrea Arcangeli wrote:
    > >
    > > >
    > > > Set the policy of the scheduler as RT.
    > > >
    > >
    > > This will only work for root, no? The problem is the tv_sec||tv_nsec
    > > expression in sys_nanosleep(). I think this must go.
    >
    > This seems to be correct, I changed
    >
    > expire = timespec_to_jiffies(&t) + (t.tv_sec || t.tv_nsec);
    > to
    > expire = timespec_to_jiffies(&t);
    >
    > in sys_nanosleep(), now I got
    >
    > usleep ( <=10*1000) sleeps for 10 ms
    > usleep ( >10*1000 <= 20*1000) sleeps for 20 ms
    > usleep ( >20*1000 <= 30*1000) sleeps for 30 ms

    This may be a nice hack for YOU, but in no way should this be in the
    standard kernel.

    This looks fine:

    Clock interrupts + + + + +
    App is waken up: * * * *
    app calls usleep (9000) ^ ^ ^ ^


    but... if the application uses 8ms of CPU time before calling
    usleep again:

    Clock interrupts + + + + +
    App is waken up: * * * *
    app calls usleep (9000) ^ ^ ^ ^

    it will only sleep for 2ms before getting woken. And the manual states
    that the sleep will be -=* at least *=- the number of microseconds
    requested, and that you should always be prepared to be woken a little
    later due to scheduling overhead or other tasks running.

    Roger.


    --
    ** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 **
    *-- BitWizard writes Linux device drivers for any device you may have! --*
    ------ Microsoft SELLS you Windows, Linux GIVES you the whole house ------


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

    \
     
     \ /
      Last update: 2005-03-22 13:52    [W:2.199 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site