diff options
-rw-r--r-- | docs/reports/SPC563M64-80.txt | 20 | ||||
-rw-r--r-- | os/kernel/include/chregistry.h | 4 | ||||
-rw-r--r-- | os/kernel/include/chschd.h | 6 | ||||
-rw-r--r-- | os/kernel/src/chregistry.c | 2 | ||||
-rw-r--r-- | os/kernel/src/chschd.c | 6 | ||||
-rw-r--r-- | 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
|