• R/O
  • SSH
  • HTTPS

chibios: Commit


Commit MetaInfo

Revision14529 (tree)
Zeit2021-06-11 20:57:46
Autorgdisirio

Log Message

More code path predictions.

Ändern Zusammenfassung

Diff

--- trunk/doc/rt/reports/benchmarks/rt-stm32g4-170mhz-gcc.txt (revision 14528)
+++ trunk/doc/rt/reports/benchmarks/rt-stm32g4-170mhz-gcc.txt (revision 14529)
@@ -1,11 +1,11 @@
11
22 *** ChibiOS/RT Test Suite
33 ***
4-*** Compiled: Jun 11 2021 - 11:12:01
4+*** Compiled: Jun 11 2021 - 13:55:11
55 *** Platform: STM32G4 Hi-resolution Line
66 *** Test Board: STMicroelectronics STM32 Nucleo64-G474RE
77 ***
8-*** Text size: 50964 bytes
8+*** Text size: 51060 bytes
99 *** RO data size: 9904 bytes
1010 *** Data size: 220 bytes
1111 *** BSS size: 5400 bytes
@@ -189,35 +189,35 @@
189189 === Test Sequence 12 (Benchmarks)
190190 ----------------------------------------------------------------------------
191191 --- Test Case 12.1 (Messages performance #1)
192---- Score : 923906 msgs/S, 1847812 ctxswc/S
192+--- Score : 1062491 msgs/S, 2124982 ctxswc/S
193193 --- Result: SUCCESS
194194 ----------------------------------------------------------------------------
195195 --- Test Case 12.2 (Messages performance #2)
196---- Score : 794387 msgs/S, 1588774 ctxswc/S
196+--- Score : 923906 msgs/S, 1847812 ctxswc/S
197197 --- Result: SUCCESS
198198 ----------------------------------------------------------------------------
199199 --- Test Case 12.3 (Messages performance #3)
200---- Score : 794386 msgs/S, 1588772 ctxswc/S
200+--- Score : 923906 msgs/S, 1847812 ctxswc/S
201201 --- Result: SUCCESS
202202 ----------------------------------------------------------------------------
203203 --- Test Case 12.4 (Context Switch performance)
204---- Score : 2893608 ctxswc/S
204+--- Score : 2943712 ctxswc/S
205205 --- Result: SUCCESS
206206 ----------------------------------------------------------------------------
207207 --- Test Case 12.5 (Threads performance, full cycle)
208---- Score : 515147 threads/S
208+--- Score : 518288 threads/S
209209 --- Result: SUCCESS
210210 ----------------------------------------------------------------------------
211211 --- Test Case 12.6 (Threads performance, create/exit only)
212---- Score : 639095 threads/S
212+--- Score : 643936 threads/S
213213 --- Result: SUCCESS
214214 ----------------------------------------------------------------------------
215215 --- Test Case 12.7 (Mass reschedule performance)
216---- Score : 289115 reschedules/S, 1734690 ctxswc/S
216+--- Score : 290102 reschedules/S, 1740612 ctxswc/S
217217 --- Result: SUCCESS
218218 ----------------------------------------------------------------------------
219219 --- Test Case 12.8 (Round-Robin voluntary reschedule)
220---- Score : 1752560 ctxswc/S
220+--- Score : 1761640 ctxswc/S
221221 --- Result: SUCCESS
222222 ----------------------------------------------------------------------------
223223 --- Test Case 12.9 (Virtual Timers set/reset performance)
@@ -249,11 +249,11 @@
249249
250250 *** ChibiOS OS Library Test Suite
251251 ***
252-*** Compiled: Jun 11 2021 - 11:12:01
252+*** Compiled: Jun 11 2021 - 13:55:11
253253 *** Platform: STM32G4 Hi-resolution Line
254254 *** Test Board: STMicroelectronics STM32 Nucleo64-G474RE
255255 ***
256-*** Text size: 50964 bytes
256+*** Text size: 51060 bytes
257257 *** RO data size: 9904 bytes
258258 *** Data size: 220 bytes
259259 *** BSS size: 5400 bytes
--- trunk/os/rt/include/chlists.h (revision 14528)
+++ trunk/os/rt/include/chlists.h (revision 14529)
@@ -373,10 +373,10 @@
373373 static inline ch_priority_queue_t *ch_pqueue_insert_behind(ch_priority_queue_t *pqp,
374374 ch_priority_queue_t *p) {
375375
376- /* Scanning priority queue.*/
376+ /* Scanning priority queue, the list is assumed to be mostly empty.*/
377377 do {
378378 pqp = pqp->next;
379- } while (pqp->prio >= p->prio);
379+ } while (unlikely(pqp->prio >= p->prio));
380380
381381 /* Insertion on prev.*/
382382 p->next = pqp;
@@ -402,10 +402,10 @@
402402 static inline ch_priority_queue_t *ch_pqueue_insert_ahead(ch_priority_queue_t *pqp,
403403 ch_priority_queue_t *p) {
404404
405- /* Scanning priority queue.*/
405+ /* Scanning priority queue, the list is assumed to be mostly empty.*/
406406 do {
407407 pqp = pqp->next;
408- } while (pqp->prio > p->prio);
408+ } while (unlikely(pqp->prio > p->prio));
409409
410410 /* Insertion on prev.*/
411411 p->next = pqp;
Show on old repository browser