Verified roundrobin test
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@87 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
e38d16d17a
commit
ae95280dab
3 changed files with 25 additions and 6 deletions
|
@ -39,12 +39,13 @@
|
|||
* Added 'ls' command to nsh
|
||||
* Added C5471 watchdog driver
|
||||
* Added support for the Neuros OSD / DM320
|
||||
* Fixed another bug where free() is called from IDEL task.
|
||||
* Fixed another bug where free() is called from IDLE task.
|
||||
Can't do this; the caller must be able to wait for access
|
||||
to memory.
|
||||
* Separated C5471 serial driver; a shareable part is
|
||||
in drivers/. ; the C5471 specific part is in arch/C5471.
|
||||
serial.h defines the interface.
|
||||
* Fixed mq_receive() -- bad memcpy()
|
||||
* Fixed mq_receive() and mq_send() -- bad memcpy()
|
||||
* Added a test for roundrobin scheduler.
|
||||
|
||||
|
||||
|
|
|
@ -164,12 +164,10 @@ static int user_main(int argc, char *argv[])
|
|||
sighand_test();
|
||||
#endif
|
||||
|
||||
#if 0 /* Does not work yet */
|
||||
#if !defined(CONFIG_DISABLE_PTHREAD) && CONFIG_RR_INTERVAL > 0
|
||||
/* Verify round robin scheduling */
|
||||
|
||||
rr_test();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
printf("user_main: Exitting\n");
|
||||
|
|
|
@ -47,7 +47,11 @@
|
|||
* Definitions
|
||||
********************************************************************************/
|
||||
|
||||
#define CONFIG_NINTEGERS 32768
|
||||
/* This number may need to be tuned for different processor speeds */
|
||||
|
||||
/* #define CONFIG_NINTEGERS 32768 Takes forever on 60Mhz ARM7 */
|
||||
|
||||
#define CONFIG_NINTEGERS 2048
|
||||
|
||||
/********************************************************************************
|
||||
* Private Data
|
||||
|
@ -121,10 +125,16 @@ static void *sieve1(void *parameter)
|
|||
int i;
|
||||
|
||||
printf("sieve1 started\n");
|
||||
fflush(stdout);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
dosieve(prime1);
|
||||
}
|
||||
|
||||
printf("sieve1 finished\n");
|
||||
fflush(stdout);
|
||||
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
|
||||
|
@ -137,10 +147,16 @@ static void *sieve2(void *parameter)
|
|||
int i;
|
||||
|
||||
printf("sieve2 started\n");
|
||||
fflush(stdout);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
dosieve(prime2);
|
||||
}
|
||||
|
||||
printf("sieve2 finished\n");
|
||||
fflush(stdout);
|
||||
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
|
||||
|
@ -203,7 +219,11 @@ void rr_test(void)
|
|||
printf("rr_test: Error in thread 2 creation, status=%d\n", status);
|
||||
}
|
||||
|
||||
printf("rr_test: Waiting for sieves to complete\n");
|
||||
printf("rr_test: Waiting for sieves to complete -- this should take awhile\n");
|
||||
printf("rr_test: If RR scheduling is working, they should complete at\n");
|
||||
printf("rr_test: then same time\n");
|
||||
fflush(stdout);
|
||||
|
||||
pthread_join(sieve2_thread, &result);
|
||||
pthread_join(sieve1_thread, &result);
|
||||
printf("rr_test: Done\n");
|
||||
|
|
Loading…
Reference in a new issue