summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score/objectdata.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-07-14 13:59:23 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-07-15 10:46:02 +0200
commit4b911a7516750ef1c43f9dc387e0206e1086623b (patch)
treed3c1d735196e714ec1531f21bed7507ad5c88b1e /cpukit/include/rtems/score/objectdata.h
parentbsps: Sort .noinit* sections (diff)
downloadrtems-4b911a7516750ef1c43f9dc387e0206e1086623b.tar.bz2
score: Place object controls into .noinit sections
Place the statically allocated object control blocks, local tables, and thread queue heads into the dedicated .noinit intput sections. The output section is not zero initialized. Placing these elements into the .noinit section reduces the system initialization time by decreasing the .bss section size. It may improve the cache efficiency since the mostly read local tables are placed in a contiguous memory area. Update #4678.
Diffstat (limited to 'cpukit/include/rtems/score/objectdata.h')
-rw-r--r--cpukit/include/rtems/score/objectdata.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/cpukit/include/rtems/score/objectdata.h b/cpukit/include/rtems/score/objectdata.h
index d624f182f9..dc03f23461 100644
--- a/cpukit/include/rtems/score/objectdata.h
+++ b/cpukit/include/rtems/score/objectdata.h
@@ -447,9 +447,12 @@ Objects_Information name##_Information = { \
* multiprocessing (RTEMS_MULTIPROCESSING) is enabled.
*/
#define OBJECTS_INFORMATION_DEFINE( name, api, cls, type, max, nl, ex ) \
-static Objects_Control * \
+static RTEMS_SECTION( ".noinit.rtems.content.local_table" ) \
+Objects_Control * \
name##_Local_table[ _Objects_Maximum_per_allocation( max ) ]; \
-static type name##_Objects[ _Objects_Maximum_per_allocation( max ) ]; \
+static RTEMS_SECTION( ".noinit.rtems.content.objects" ) \
+type \
+name##_Objects[ _Objects_Maximum_per_allocation( max ) ]; \
Objects_Information name##_Information = { \
_Objects_Build_id( api, cls, 1, _Objects_Maximum_per_allocation( max ) ), \
name##_Local_table, \