From b61fb43e6cc681f9fc53a5efb116accc13e0d35d Mon Sep 17 00:00:00 2001 From: gdisirio Date: Fri, 19 Mar 2010 15:45:25 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1756 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- docs/reports/SPC563M64-80.txt | 20 ++++++++++---------- os/kernel/include/chregistry.h | 4 ++-- os/kernel/include/chschd.h | 6 +++--- os/kernel/src/chregistry.c | 2 +- os/kernel/src/chschd.c | 6 +++--- readme.txt | 4 ---- 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/docs/reports/SPC563M64-80.txt b/docs/reports/SPC563M64-80.txt index 35bbe17a6..47de46ff8 100644 --- a/docs/reports/SPC563M64-80.txt +++ b/docs/reports/SPC563M64-80.txt @@ -92,35 +92,35 @@ Settings: SYSCLK=80, optimal wait states, prefetching enabled --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.1 (Benchmark, messages #1) ---- Score : 280181 msgs/S, 560362 ctxswc/S +--- Score : 278228 msgs/S, 556456 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.2 (Benchmark, messages #2) ---- Score : 227495 msgs/S, 454990 ctxswc/S +--- Score : 226208 msgs/S, 452416 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.3 (Benchmark, messages #3) ---- Score : 227495 msgs/S, 454990 ctxswc/S +--- Score : 226208 msgs/S, 452416 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.4 (Benchmark, context switch) ---- Score : 898496 ctxswc/S +--- Score : 895976 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.5 (Benchmark, threads, full cycle) ---- Score : 183569 threads/S +--- Score : 182729 threads/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.6 (Benchmark, threads, create only) ---- Score : 262670 threads/S +--- Score : 260954 threads/S --- Result: SUCCESS ---------------------------------------------------------------------------- ---- Test Case 11.7 (Benchmark, mass reschedulation, 5 threads) ---- Score : 74206 reschedulations/S, 445236 ctxswc/S +--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads) +--- Score : 74067 reschedules/S, 444402 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.8 (Benchmark, round robin context switching) ---- Score : 614140 reschedulations/S, 614140 ctxswc/S +--- Score : 614136 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.9 (Benchmark, I/O Queues throughput) @@ -128,7 +128,7 @@ Settings: SYSCLK=80, optimal wait states, prefetching enabled --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.10 (Benchmark, virtual timers set/reset) ---- Score : 1093672 timers/S +--- Score : 1093666 timers/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.11 (Benchmark, semaphores wait/signal) diff --git a/os/kernel/include/chregistry.h b/os/kernel/include/chregistry.h index 0c4ba8eb9..956482a57 100644 --- a/os/kernel/include/chregistry.h +++ b/os/kernel/include/chregistry.h @@ -49,8 +49,8 @@ */ #define REG_INSERT(tp) { \ (tp)->p_newer = (Thread *)&rlist; \ - (tp)->p_older = rlist.p_older; \ - (tp)->p_older->p_newer = rlist.p_older = (tp); \ + (tp)->p_older = rlist.r_older; \ + (tp)->p_older->p_newer = rlist.r_older = (tp); \ } #ifdef __cplusplus diff --git a/os/kernel/include/chschd.h b/os/kernel/include/chschd.h index 3847c948e..8d8a2b36f 100644 --- a/os/kernel/include/chschd.h +++ b/os/kernel/include/chschd.h @@ -71,11 +71,11 @@ typedef struct { ThreadsQueue r_queue; /**< @brief Threads queue. */ tprio_t r_prio; /**< @brief This field must be initialized to zero. */ - struct context p_ctx; /**< @brief Not used, present because + struct context r_ctx; /**< @brief Not used, present because offsets. */ #if CH_USE_REGISTRY - Thread *p_newer; /**< @brief Newer registry element. */ - Thread *p_older; /**< @brief Older registry element. */ + Thread *r_newer; /**< @brief Newer registry element. */ + Thread *r_older; /**< @brief Older registry element. */ #endif /* End of the fields shared with the Thread structure.*/ #if CH_TIME_QUANTUM > 0 diff --git a/os/kernel/src/chregistry.c b/os/kernel/src/chregistry.c index ad5cd7fc1..c561d8ca6 100644 --- a/os/kernel/src/chregistry.c +++ b/os/kernel/src/chregistry.c @@ -64,7 +64,7 @@ Thread *chRegFirstThread(void) { Thread *tp; chSysLock(); - tp = rlist.p_newer; + tp = rlist.r_newer; #if CH_USE_DYNAMIC tp->p_refs++; #endif diff --git a/os/kernel/src/chschd.c b/os/kernel/src/chschd.c index 7170fb0ec..cee046af2 100644 --- a/os/kernel/src/chschd.c +++ b/os/kernel/src/chschd.c @@ -51,7 +51,7 @@ void scheduler_init(void) { rlist.r_preempt = CH_TIME_QUANTUM; #endif #if CH_USE_REGISTRY - rlist.p_newer = rlist.p_older = (Thread *)&rlist; + rlist.r_newer = rlist.r_older = (Thread *)&rlist; #endif } @@ -96,11 +96,11 @@ void chSchGoSleepS(tstate_t newstate) { Thread *otp; (otp = currp)->p_state = newstate; - setcurrp(fifo_remove(&rlist.r_queue)); - currp->p_state = THD_STATE_CURRENT; #if CH_TIME_QUANTUM > 0 rlist.r_preempt = CH_TIME_QUANTUM; #endif + setcurrp(fifo_remove(&rlist.r_queue)); + currp->p_state = THD_STATE_CURRENT; chDbgTrace(currp, otp); chSysSwitchI(currp, otp); } diff --git a/readme.txt b/readme.txt index 1fc79adf2..915f7c498 100644 --- a/readme.txt +++ b/readme.txt @@ -87,10 +87,6 @@ - CHANGE: The module documentation has been moved from the kernel.dox file to the various source code files in order to make it easier to maintain and double as source comments. -- CHANGE: Removed the support for the CH_CURRP_REGISTER_CACHE optimization - in the configuration files and in the scheduler header. It will be - reintroduced as an architecture-specific optimization using the new - capture mechanism (among other optimizations). *** 1.5.3 *** - FIX: Removed C99-style variables declarations (bug 2964418)(backported -- cgit v1.2.3