source: rtems/c/src/lib/libbsp/mips/hurricane/times @ f3ce8f41

5
Last change on this file since f3ce8f41 was d5154d0f, checked in by Aun-Ali Zaidi <admin@…>, on 12/23/15 at 20:44:02

api: Remove deprecated Notepads

Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.

In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:

  • 16 32-bit integers were allocated.
  • A total of 64 bytes per task per thread.

This is especially critical in low memory and safety-critical applications.

They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.

Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.

updates #2493.

  • Property mode set to 100644
File size: 12.0 KB
Line 
1#
2#  Timing Test Suite Results for the NO_BSP
3#
4#  NOTE: This is just a template.  The times are irrelevant since this BSP
5#        can only be compiled -- not executed.
6
7NOTE:  To obtain the execution time in microseconds, divide the number of
8       cycles by the clock speed.  For example, if rtems_semaphore create
9       is reported to be 1164 cycles, then at 66 Mhz it takes 17.64
10       microseconds or 8.75 microseconds at 133 Mhz.
11
12Board: Algorithmics P4000i
13CPU: IDT 4650
14Clock Speed: 100MHz
15Memory Configuration: SRAM, DRAM, cache, etc
16Wait States:
17
18Times Reported in: cycles
19Timer Source: on-CPU cycle counter
20
21Column A:RTEMS compiled with 64 bit pointers and 64 bit unsigned32 types
22Column B:RTEMS compiled with 32 bit pointers and 32 bit unsigned32 types
23
24#                          DESCRIPTION                                 A    B
25== =================================================================  ==== ====
26 1 rtems_semaphore_create                                              788  759
27   rtems_semaphore_delete                                              903  945
28   rtems_semaphore_obtain: available                                   119  119
29   rtems_semaphore_obtain: not available -- NO_WAIT                    118  118
30   rtems_semaphore_release: no waiting tasks                           127  127
31
32 2 rtems_semaphore_obtain: not available -- caller blocks              842  840
33
34 3 rtems_semaphore_release: task readied -- preempts caller            777  751
35
36 4 rtems_task_restart: blocked task -- preempts caller                1611 1595
37   rtems_task_restart: ready task -- preempts caller                  1253 1395
38   rtems_semaphore_release: task readied -- returns to caller          365  345
39   rtems_task_create                                                   798  797
40   rtems_task_start                                                    464  460
41   rtems_task_restart: suspended task -- returns to caller             517  517
42   rtems_task_delete: suspended task                                   529  595
43   rtems_task_restart: ready task -- returns to caller                 527  525
44   rtems_task_restart: blocked task -- returns to caller               707  684
45   rtems_task_delete: blocked task                                     609  675
46
47 5 rtems_task_suspend: calling task                                    549  549
48   rtems_task_resume: task readied -- preempts caller                  702  699
49
50 6 rtems_task_restart: calling task                                    291  291
51   rtems_task_suspend: returns to caller                               195  194
52   rtems_task_resume: task readied -- returns to caller                198  198
53   rtems_task_delete: ready task                                       734  736
54
55 7 rtems_task_restart: suspended task -- preempts caller              1049  990
56
57 8 rtems_task_set_priority: obtain current priority                     94   94
58   rtems_task_set_priority: returns to caller                          418  355
59   rtems_task_mode: obtain current mode                                 44   43
60   rtems_task_mode: no reschedule                                        0   49
61   rtems_task_mode: reschedule -- returns to caller                      0  232
62   rtems_task_mode: reschedule -- preempts caller                        0  687
63   rtems_clock_set                                                       0  237
64   rtems_clock_get                                                       0   16
65
66 9 rtems_message_queue_create                                         3583 3432
67   rtems_message_queue_send: no waiting tasks                          252  252
68   rtems_message_queue_urgent: no waiting tasks                        252  252
69   rtems_message_queue_receive: available                              207  207
70   rtems_message_queue_flush: no messages flushed                       95   96
71   rtems_message_queue_flush: messages flushed                         110  110
72   rtems_message_queue_delete                                         1044 1111
73
7410 rtems_message_queue_receive: not available -- NO_WAIT               132  131
75   rtems_message_queue_receive: not available -- caller blocks         884  892
76
7711 rtems_message_queue_send: task readied -- preempts caller           397  817
78
7912 rtems_message_queue_send: task readied -- returns to caller         397  397
80
8113 rtems_message_queue_urgent: task readied -- preempts caller         816  817
82
8314 rtems_message_queue_urgent: task readied -- returns to caller       397  398
84
8515 rtems_event_receive: obtain current events                            5    5
86   rtems_event_receive: not available -- NO_WAIT                        99   99
87   rtems_event_receive: not available -- caller blocks                 689  689
88   rtems_event_send: no task readied                                   123  123
89   rtems_event_receive: available                                      326  349
90   rtems_event_send: task readied -- returns to caller                 333  429
91
9216 rtems_event_send: task readied -- preempts caller                   843  838
93
9417 rtems_task_set_priority: preempts caller                           1002  991
95
9618 rtems_task_delete: calling task                                    1171 1157
97
9819 rtems_signal_catch                                                    0 1306
99   rtems_signal_send: returns to caller                                  0 1019
100   rtems_signal_send: signal to self                                     0  496
101   exit ASR overhead: returns to calling task                            0  120
102   exit ASR overhead: returns to preempting task                         0   73
103
10420 rtems_partition_create                                             1293 1306
105   rtems_region_create                                                1010 1019
106   rtems_partition_get_buffer: available                               481  496
107   rtems_partition_get_buffer: not available                           120  120
108   rtems_partition_return_buffer                                       587  460
109   rtems_partition_delete                                              379  320
110   rtems_region_get_segment: available                                 179  179
111   rtems_region_get_segment: not available -- NO_WAIT                  349  293
112   rtems_region_return_segment: no waiting tasks                       335  322
113   rtems_region_get_segment: not available -- caller blocks           1603 1496
114   rtems_region_return_segment: task readied -- preempts caller       1616 1533
115   rtems_region_return_segment: task readied -- returns to caller      940  939
116   rtems_region_delete                                                 301  348
117   rtems_io_initialize                                                   9   10
118   rtems_io_open                                                         6    6
119   rtems_io_close                                                        6    6
120   rtems_io_read                                                         6    6
121   rtems_io_write                                                        6    5
122   rtems_io_control                                                      6    6
123
12421 rtems_task_ident                                                   1057 1058
125   rtems_message_queue_ident                                           963  963
126   rtems_semaphore_ident                                              1137 1136
127   rtems_partition_ident                                               962  961
128   rtems_region_ident                                                  923  924
129   rtems_port_ident                                                    918  917
130   rtems_timer_ident                                                   942  941
131   rtems_rate_monotonic_ident                                          924  925
132
13322 rtems_message_queue_broadcast: task readied -- returns to caller   1084 1095
134   rtems_message_queue_broadcast: no waiting tasks                     147  148
135   rtems_message_queue_broadcast: task readied -- preempts caller     1305 1268
136
13723 rtems_timer_create                                                  202  201
138   rtems_timer_fire_after: inactive                                    261  261
139   rtems_timer_fire_after: active                                      271  269
140   rtems_timer_cancel: active                                          142  141
141   rtems_timer_cancel: inactive                                        122  124
142   rtems_timer_reset: inactive                                         222  222
143   rtems_timer_reset: active                                           246  245
144   rtems_timer_fire_when: inactive                                     312  311
145   rtems_timer_fire_when: active                                       358  358
146   rtems_timer_delete: active                                          263  263
147   rtems_timer_delete: inactive                                        247  247
148   rtems_task_wake_when                                                833  831
149
15024 rtems_task_wake_after: yield -- returns to caller                    99   98
151   rtems_task_wake_after: yields -- preempts caller                    479  478
152
15325 rtems_clock_tick                                                    313  318
154
15526 _ISR_Disable                                                         64   57
156   _ISR_Flash                                                           51   36
157   _ISR_Enable                                                          31   18
158   _Thread_Disable_dispatch                                             53   37
159   _Thread_Enable_dispatch                                             260  233
160   _Thread_Set_state                                                   446  463
161   _Thread_Disptach (NO FP)                                            839  801
162   context switch: no floating point contexts                          673  653
163   context switch: self                                                156  162
164   context switch: to another task                                      84   70
165   context switch: restore 1st FP task                                1030 1013
166   fp context switch: save idle, restore idle                          969  948
167   fp context switch: save idle, restore initialized                   275  267
168   fp context switch: save initialized, restore initialized            319  292
169   _Thread_Resume                                                      512  480
170   _Thread_Unblock                                                     121  139
171   _Thread_Ready                                                       199  203
172   _Thread_Get                                                          27   27
173   _Semaphore_Get                                                       20   21
174   _Thread_Get: invalid id                                               5    5
175
17627 interrupt entry overhead: returns to interrupted task                 0    0
177   interrupt exit overhead: returns to interrupted task                 27   41
178   interrupt entry overhead: returns to nested interrupt                 0    0
179   interrupt exit overhead: returns to nested interrupt                  0    0
180   interrupt entry overhead: returns to preempting task                  0    0
181   interrupt exit overhead: returns to preempting task                   0    0
182
18328 rtems_port_create                                                   574  560
184   rtems_port_external_to_internal                                      87   87
185   rtems_port_internal_to_external                                      86   86
186   rtems_port_delete                                                   395  353
187
18829 rtems_rate_monotonic_create                                         621  633
189   rtems_rate_monotonic_period: initiate period -- returns to caller   773  694
190   rtems_rate_monotonic_period: obtain status                          295  284
191   rtems_rate_monotonic_cancel                                         408  451
192   rtems_rate_monotonic_delete: inactive                               453  471
193   rtems_rate_monotonic_delete: active                                 332  336
194   rtems_rate_monotonic_period: conclude periods -- caller blocks      664  686
Note: See TracBrowser for help on using the repository browser.