-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, 4 Nov 2003 15:18:00 +0200, Gilad Ben-Yossef <[EMAIL PROTECTED]> wrote:
>
> On Tuesday 04 November 2003 14:43, Ehud Karni wrote:
>
> > I tested the select call on various machines.
> >   1. It is not accurate enough (2 ms deviations).
>
> Yes it does,  you don't seem to use sched_setscheduler in your test program to
> give your proccess real time priority. setpriority only changes the nice
> level of the proccess. If you want real time guantees (which you do here) you
> need to ask the kernel to subject your proccess to real time scheduling.

See test results below.

> >   2. It can not be used for delays < 10 ms.
>
> Unless you recompile the kernel, you are correct.

I enhanced my test program by adding the scheduler priority like this:

#include <sched.h>

struct sched_param scd_prm ;
   scd_prm.sched_priority = 10 ;                   /* anything greater than 0 */
   sched_setscheduler ( 0 , SCHED_RR , & scd_prm ) ;       /* try to set scheduler 
policy and priority */
   setpriority ( PRIO_PROCESS , 0 , atoi ( argv [ 2 ] ) ) ;/* set nice priority (no 
check) */
   fprintf ( stderr , "Run at %d sched priority, %d nice    " ,
             sched_getscheduler ( 0 ) ,            /* get schedule priority */
             getpriority ( PRIO_PROCESS , 0 ) ) ;  /* get process priority */

I tested the select sleep and my conclusions are:
  1. Even with Real time priority it is accurate to within 0.1 mill
     seconds (see 1st set of results).
  2. The granularity is 10 ms even for times > 10 ms.

Here are some of the results:

Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3995 msecs
Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3995 msecs
Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3998 msecs
Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 4000 msecs
Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3992 msecs
Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3993 msecs
Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3995 msecs

Run at 2 sched priority, -20 nice    sleeped 1 usec * 100 times, Elapsed 997 msecs
Run at 2 sched priority, -20 nice    sleeped 38 usec * 100 times, Elapsed 991 msecs
Run at 2 sched priority, -20 nice    sleeped 987 usec * 100 times, Elapsed 1000 msecs
Run at 2 sched priority, -20 nice    sleeped 1987 usec * 100 times, Elapsed 992 msecs
Run at 2 sched priority, -20 nice    sleeped 9876 usec * 100 times, Elapsed 1000 msecs
Run at 2 sched priority, -20 nice    sleeped 19876 usec * 100 times, Elapsed 1997 msecs
Run at 2 sched priority, -20 nice    sleeped 18076 usec * 100 times, Elapsed 1995 msecs
Run at 2 sched priority, -20 nice    sleeped 19076 usec * 100 times, Elapsed 1991 msecs

Run at 2 sched priority, -20 nice    sleeped 37076 usec * 100 times, Elapsed 3999 msecs
Run at 2 sched priority, -20 nice    sleeped 36076 usec * 100 times, Elapsed 3994 msecs
Run at 2 sched priority, -20 nice    sleeped 35076 usec * 100 times, Elapsed 3993 msecs
Run at 2 sched priority, -20 nice    sleeped 34076 usec * 100 times, Elapsed 3998 msecs
Run at 2 sched priority, -20 nice    sleeped 33076 usec * 100 times, Elapsed 3997 msecs
Run at 2 sched priority, -20 nice    sleeped 32076 usec * 100 times, Elapsed 3993 msecs
Run at 2 sched priority, -20 nice    sleeped 31076 usec * 100 times, Elapsed 3993 msecs
Run at 2 sched priority, -20 nice    sleeped 30076 usec * 100 times, Elapsed 3993 msecs
Run at 2 sched priority, -20 nice    sleeped 29076 usec * 100 times, Elapsed 2998 msecs
Run at 2 sched priority, -20 nice    sleeped 29976 usec * 100 times, Elapsed 2994 msecs

Ehud.


- --
 Ehud Karni           Tel: +972-3-7966-561  /"\
 Mivtach - Simon      Fax: +972-3-7966-667  \ /  ASCII Ribbon Campaign
 Insurance agencies   (USA) voice mail and   X   Against   HTML   Mail
 http://www.mvs.co.il  FAX:  1-815-5509341  / \
 GnuPG: 98EA398D <http://www.keyserver.net/>    Better Safe Than Sorry
-----BEGIN PGP SIGNATURE-----
Comment: use http://www.keyserver.net/ to get my key (and others)

iD8DBQE/qOYBLFvTvpjqOY0RAqs0AJ9PszCyABgW2GS4Xq0X7nZ5yOHWjgCfTtap
OgFidx/1HGIC12IIghyG8Ro=
=laIM
-----END PGP SIGNATURE-----

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to