git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1743 35acf78f-673a-0410-8e92-d51de3d6d3f4

master
gdisirio 2010-03-15 16:04:47 +00:00
parent 3fe6ae7cac
commit 8cf7b70436
2 changed files with 11 additions and 10 deletions

View File

@ -92,7 +92,7 @@ Settings: SYSCLK=80, optimal wait states, prefetching enabled
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
--- Score : 280180 msgs/S, 560360 ctxswc/S
--- Score : 280181 msgs/S, 560362 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
@ -116,7 +116,7 @@ Settings: SYSCLK=80, optimal wait states, prefetching enabled
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedulation, 5 threads)
--- Score : 73863 reschedulations/S, 443178 ctxswc/S
--- Score : 74206 reschedulations/S, 445236 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
@ -128,11 +128,11 @@ Settings: SYSCLK=80, optimal wait states, prefetching enabled
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
--- Score : 1093666 timers/S
--- Score : 1093662 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
--- Score : 1027008 wait+signal/S
--- Score : 1027012 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)

View File

@ -196,16 +196,17 @@ void chSchWakeupS(Thread *ntp, msg_t msg) {
* to @p TRUE.
*/
void chSchDoRescheduleI(void) {
Thread *otp, *ntp;
Thread *otp = currp;
/* Pick the first thread from the ready queue and makes it current.*/
(currp = fifo_remove(&rlist.r_queue))->p_state = THD_STATE_CURRENT;
chSchReadyI(otp);
#if CH_TIME_QUANTUM > 0
rlist.r_preempt = CH_TIME_QUANTUM;
#endif
chDbgTrace(currp, otp);
chSysSwitchI(currp, otp);
otp = currp;
/* Pick the first thread from the ready queue and makes it current.*/
(currp = ntp = fifo_remove(&rlist.r_queue))->p_state = THD_STATE_CURRENT;
chSchReadyI(otp);
chDbgTrace(ntp, otp);
chSysSwitchI(ntp, otp);
}
/**