source: rtems/c/src/lib/libbsp/i386/pc386/times_i486dx @ f636e91a

5
Last change on this file since f636e91a 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: 11.6 KB
Line 
1#
2#  Timing Test Suite Results for the pc386 BSP using an i486DX
3#
4
5Board:                PC/AT clone
6CPU:                  Intel i486DX
7Clock Speed:          33 Mhz
8Memory Configuration: DRAM w/256K cache
9Wait States:          unknown
10
11Times Reported in:    microseconds
12Timer Source:         i8254
13
14Column A:             3.5.1 pre-release
15Column B:             3.5.17 pre-release
16
17#                          DESCRIPTION                                 A    B
18== =================================================================  ==== ====
19 1 rtems_semaphore_create                                               57   66
20   rtems_semaphore_delete                                               59   61
21   rtems_semaphore_obtain: available                                     9    7
22   rtems_semaphore_obtain: not available -- NO_WAIT                      8    7
23   rtems_semaphore_release: no waiting tasks                             9    8
24
25 2 rtems_semaphore_obtain: not available -- caller blocks               39   37
26
27 3 rtems_semaphore_release: task readied -- preempts caller             25   24
28
29 4 rtems_task_restart: blocked task -- preempts caller                 124  102
30   rtems_task_restart: ready task -- preempts caller                    55  111
31   rtems_semaphore_release: task readied -- returns to caller           16   15
32   rtems_task_create                                                    31   30
33   rtems_task_start                                                     19   18
34   rtems_task_restart: suspended task -- returns to caller              20   19
35   rtems_task_delete: suspended task                                    28   26
36   rtems_task_restart: ready task -- returns to caller                  20   19
37   rtems_task_restart: blocked task -- returns to caller                28   26
38   rtems_task_delete: blocked task                                      34   28
39
40 5 rtems_task_suspend: calling task                                     26   23
41   rtems_task_resume: task readied -- preempts caller                   17   15
42
43 6 rtems_task_restart: calling task                                     22   19
44   rtems_task_suspend: returns to caller                                10    8
45   rtems_task_resume: task readied -- returns to caller                 10    8
46   rtems_task_delete: ready task                                        34   33
47
48 7 rtems_task_restart: suspended task -- preempts caller                37   34
49
50 8 rtems_task_set_priority: obtain current priority                      7    5
51   rtems_task_set_priority: returns to caller                           13   12
52   rtems_task_mode: obtain current mode                                  3    3
53   rtems_task_mode: no reschedule                                        4    4
54   rtems_task_mode: reschedule -- returns to caller                     20   17
55   rtems_task_mode: reschedule -- preempts caller                       39   37
56   rtems_clock_set                                                      17   16
57   rtems_clock_get                                                       2    1
58
59 9 rtems_message_queue_create                                          117  113
60   rtems_message_queue_send: no waiting tasks                           22   19
61   rtems_message_queue_urgent: no waiting tasks                         22   19
62   rtems_message_queue_receive: available                               18   16
63   rtems_message_queue_flush: no messages flushed                       15   14
64   rtems_message_queue_flush: messages flushed                          17   17
65   rtems_message_queue_delete                                           63   63
66
6710 rtems_message_queue_receive: not available -- NO_WAIT                10    8
68   rtems_message_queue_receive: not available -- caller blocks          42   40
69
7011 rtems_message_queue_send: task readied -- preempts caller            38   37
71
7212 rtems_message_queue_send: task readied -- returns to caller          27   24
73
7413 rtems_message_queue_urgent: task readied -- preempts caller          38   36
75
7614 rtems_message_queue_urgent: task readied -- returns to caller        26   24
77
7815 rtems_event_receive: obtain current events                            0    0
79   rtems_event_receive: not available -- NO_WAIT                         6    5
80   rtems_event_receive: not available -- caller blocks                  34   33
81   rtems_event_send: no task readied                                     6    5
82   rtems_event_receive: available                                       21   19
83   rtems_event_send: task readied -- returns to caller                  19   15
84
8516 rtems_event_send: task readied -- preempts caller                    26   24
86
8717 rtems_task_set_priority: preempts caller                             36   33
88
8918 rtems_task_delete: calling task                                      51   52
90
9119 rtems_signal_catch                                                   17   18
92   rtems_signal_send: returns to caller                                 38   39
93   rtems_signal_send: signal to self                                    46   62
94   exit ASR overhead: returns to calling task                           20   25
95   exit ASR overhead: returns to preempting task                        29   29
96
9720 rtems_partition_create                                               65   67
98   rtems_region_create                                                  59   54
99   rtems_partition_get_buffer: available                                39   35
100   rtems_partition_get_buffer: not available                            18   16
101   rtems_partition_return_buffer                                        36   30
102   rtems_partition_delete                                               32   30
103   rtems_region_get_segment: available                                  22   21
104   rtems_region_get_segment: not available -- NO_WAIT                   29   25
105   rtems_region_return_segment: no waiting tasks                        24   22
106   rtems_region_get_segment: not available -- caller blocks             83   81
107   rtems_region_return_segment: task readied -- preempts caller         85   84
108   rtems_region_return_segment: task readied -- returns to caller       39   41
109   rtems_region_delete                                                  30   30
110   rtems_io_initialize                                                   1    1
111   rtems_io_open                                                         0    0
112   rtems_io_close                                                        0    0
113   rtems_io_read                                                         0    0
114   rtems_io_write                                                        0    0
115   rtems_io_control                                                      0    1
116
11721 rtems_task_ident                                                    116  114
118   rtems_message_queue_ident                                           113  111
119   rtems_semaphore_ident                                               122  120
120   rtems_partition_ident                                               113  110
121   rtems_region_ident                                                  115  111
122   rtems_port_ident                                                    113  109
123   rtems_timer_ident                                                   113  109
124   rtems_rate_monotonic_ident                                          113  111
125
12622 rtems_message_queue_broadcast: task readied -- returns to caller     82   85
127   rtems_message_queue_broadcast: no waiting tasks                      11    9
128   rtems_message_queue_broadcast: task readied -- preempts caller       51   56
129
13023 rtems_timer_create                                                    8    7
131   rtems_timer_fire_after: inactive                                     14   12
132   rtems_timer_fire_after: active                                       13   12
133   rtems_timer_cancel: active                                            8    7
134   rtems_timer_cancel: inactive                                          7    6
135   rtems_timer_reset: inactive                                          11   10
136   rtems_timer_reset: active                                            11   11
137   rtems_timer_fire_when: inactive                                      17   16
138   rtems_timer_fire_when: active                                        17   17
139   rtems_timer_delete: active                                           10    9
140   rtems_timer_delete: inactive                                          9    8
141   rtems_task_wake_when                                                 36   34
142
14324 rtems_task_wake_after: yield -- returns to caller                     5    3
144   rtems_task_wake_after: yields -- preempts caller                     22   19
145
14625 rtems_clock_tick                                                     31   31
147
14826 _ISR_Disable                                                         11   12
149   _ISR_Flash                                                            9    9
150   _ISR_Enable                                                          31   67
151   _Thread_Disable_dispatch                                             11   10
152   _Thread_Enable_dispatch                                              18   18
153   _Thread_Set_state                                                    20   22
154   _Thread_Disptach (NO FP)                                             37   41
155   context switch: no floating point contexts                           29   26
156   context switch: self                                                 14   10
157   context switch: to another task                                      12   12
158   context switch: restore 1st FP task                                  54   54
159   fp context switch: save idle, restore idle                           47   46
160   fp context switch: save idle, restore initialized                    25   25
161   fp context switch: save initialized, restore initialized             24   25
162   _Thread_Resume                                                       23   24
163   _Thread_Unblock                                                      14   14
164   _Thread_Ready                                                        16   24
165   _Thread_Get                                                           2    2
166   _Semaphore_Get                                                        1    1
167   _Thread_Get: invalid id                                               0    0
168
16927 interrupt entry overhead: returns to interrupted task                25   23
170   interrupt exit overhead: returns to interrupted task                 14   15
171   interrupt entry overhead: returns to nested interrupt                12   12
172   interrupt exit overhead: returns to nested interrupt                 14   14
173   interrupt entry overhead: returns to preempting task                 14   16
174   interrupt exit overhead: returns to preempting task                  42   38
175
17628 rtems_port_create                                                    43   42
177   rtems_port_external_to_internal                                       6    4
178   rtems_port_internal_to_external                                       6    4
179   rtems_port_delete                                                    39   33
180
18129 rtems_rate_monotonic_create                                          48   42
182   rtems_rate_monotonic_period: initiate period -- returns to caller    61   65
183   rtems_rate_monotonic_period: obtain status                           23   21
184   rtems_rate_monotonic_cancel                                          38   35
185   rtems_rate_monotonic_delete: inactive                                32   32
186   rtems_rate_monotonic_delete: active                                  22   22
187   rtems_rate_monotonic_period: conclude periods -- caller blocks       24   19
Note: See TracBrowser for help on using the repository browser.