RTEMS | membench: Add memory benchmark programs (!110)

Sebastian Huber (@sebhub) gitlab at rtems.org
Mon Jul 8 06:45:56 UTC 2024



Sebastian Huber created a merge request: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/110

Project:Branches: sebhub/rtems:add-memory-benchmark-programs to rtems/rtos/rtems:main
Author:   Sebastian Huber
Assignee: Sebastian Huber



## Summary

membench: Add memory benchmark programs

These memory benchmark programs are not supposed to run (*.norun.exe).
Instead, they can be analysed on the host system to measure the memory usage of
features.  See the membench module of rtems-central, for example:

./membench.py modules/rtems/build/sparc/gr740
[...]
.. _BenchmarksBasedOnSpecRtemsValMemBasic:

Benchmarks Based on: spec:/rtems/val/mem-basic
==============================================

The following static memory benchmarks are based on the
reference memory benchmark specified by
:ref:`spec:/rtems/val/mem-basic <MembenchRtemsValMemBasic>`.
The numbers of the first row represent the section sizes of the reference
memory benchmark program in bytes.  The numbers in the following rows indicate
the change in bytes of the section sizes with respect to the reference memory
benchmark program of the first row.  A ``+`` indicates a size increase and a
``-`` indicates a size decrease.  This hints how the static memory usage
changes when the feature set changes with respect to the reference memory
benchmark.

.. table::
    :class: longtable

    ================================================================================= ===== ======= ===== ==== =======
    Specification                                                                     .text .rodata .data .bss .noinit
    ================================================================================= ===== ======= ===== ==== =======
    :ref:`/rtems/val/mem-basic <MembenchRtemsValMemBasic>`                            33728 96      560   4080 14048
    :ref:`/dev/clock/val/mem-clock <MembenchDevClockValMemClock>`                     +2624 +0      +48   +32  +0
    :ref:`/rtems/barrier/val/mem-wait-rel <MembenchRtemsBarrierValMemWaitRel>`        +1424 +0      +64   +0   +48
    :ref:`/rtems/barrier/val/mem-wait-rel-del <MembenchRtemsBarrierValMemWaitRelDel>` +1584 +0      +64   +0   +80
    :ref:`/rtems/clock/val/mem-get-uptime <MembenchRtemsClockValMemGetUptime>`        +352  +0      +16   +0   +32
    :ref:`/rtems/clock/val/mem-set <MembenchRtemsClockValMemSet>`                     +3088 +0      +64   +16  -16
    :ref:`/rtems/clock/val/mem-set-get-tod <MembenchRtemsClockValMemSetGetTod>`       +5264 +0      +64   +16  -16
    :ref:`/rtems/event/val/mem-snd-rcv <MembenchRtemsEventValMemSndRcv>`              +1248 +0      +16   +0   +32
    :ref:`/rtems/fatal/val/mem-fatal <MembenchRtemsFatalValMemFatal>`                 +0    +0      +0    +0   +0
    :ref:`/rtems/message/val/mem-bcst-rcv <MembenchRtemsMessageValMemBcstRcv>`        +4624 +0      +64   +0   +112
    :ref:`/rtems/message/val/mem-snd-rcv <MembenchRtemsMessageValMemSndRcv>`          +4752 +0      +64   +0   +112
    :ref:`/rtems/message/val/mem-snd-rcv-del <MembenchRtemsMessageValMemSndRcvDel>`   +4928 +0      +64   +0   +128
    :ref:`/rtems/message/val/mem-ugt-rcv <MembenchRtemsMessageValMemUgtRcv>`          +4720 +0      +64   +0   +80
    :ref:`/rtems/part/val/mem-get-ret <MembenchRtemsPartValMemGetRet>`                +752  +0      +64   +0   +80
    :ref:`/rtems/part/val/mem-get-ret-del <MembenchRtemsPartValMemGetRetDel>`         +944  +0      +64   +0   +80
    :ref:`/rtems/ratemon/val/mem-period <MembenchRtemsRatemonValMemPeriod>`           +1984 +0      +48   +0   +192
    :ref:`/rtems/ratemon/val/mem-period-del <MembenchRtemsRatemonValMemPeriodDel>`    +2240 +0      +48   +0   +192
    :ref:`/rtems/sem/val/mem-obt-rel <MembenchRtemsSemValMemObtRel>`                  +9008 +0      +48   +0   +80
    :ref:`/rtems/sem/val/mem-obt-rel-del <MembenchRtemsSemValMemObtRelDel>`           +9360 +0      +48   +0   +112
    :ref:`/rtems/signal/val/mem-catch-snd <MembenchRtemsSignalValMemCatchSnd>`        +1216 +0      +16   +0   +0
    :ref:`/rtems/task/val/mem-delete <MembenchRtemsTaskValMemDelete>`                 +912  +0      +16   +0   -16
    :ref:`/rtems/task/val/mem-exit <MembenchRtemsTaskValMemExit>`                     +96   +0      +16   +0   +32
    :ref:`/rtems/task/val/mem-get-affinity <MembenchRtemsTaskValMemGetAffinity>`      +400  +0      +0    +0   -16
    :ref:`/rtems/task/val/mem-get-priority <MembenchRtemsTaskValMemGetPriority>`      +640  +0      +0    +0   +0
    :ref:`/rtems/task/val/mem-get-scheduler <MembenchRtemsTaskValMemGetScheduler>`    +160  +0      +0    +0   +32
    :ref:`/rtems/task/val/mem-mode <MembenchRtemsTaskValMemMode>`                     +672  +0      +16   +0   +32
    :ref:`/rtems/task/val/mem-restart <MembenchRtemsTaskValMemRestart>`               +1184 +0      +16   +0   +32
    :ref:`/rtems/task/val/mem-set-affinity <MembenchRtemsTaskValMemSetAffinity>`      +480  +0      +16   +0   +32
    :ref:`/rtems/task/val/mem-set-priority <MembenchRtemsTaskValMemSetPriority>`      +976  +0      +16   +0   -16
    :ref:`/rtems/task/val/mem-set-scheduler <MembenchRtemsTaskValMemSetScheduler>`    +1728 +0      +16   +0   +0
    :ref:`/rtems/task/val/mem-sus-res <MembenchRtemsTaskValMemSusRes>`                +224  +0      +16   +0   +32
    :ref:`/rtems/task/val/mem-wake-after <MembenchRtemsTaskValMemWakeAfter>`          +432  +0      +16   +0   +16
    :ref:`/rtems/task/val/mem-wake-when <MembenchRtemsTaskValMemWakeWhen>`            +1056 +0      +16   +0   +32
    :ref:`/rtems/timer/val/mem-after <MembenchRtemsTimerValMemAfter>`                 +864  +0      +48   +0   +96
    :ref:`/rtems/timer/val/mem-cancel <MembenchRtemsTimerValMemCancel>`               +448  +0      +48   +0   +64
    :ref:`/rtems/timer/val/mem-delete <MembenchRtemsTimerValMemDelete>`               +496  +0      +48   +0   +80
    :ref:`/rtems/timer/val/mem-reset <MembenchRtemsTimerValMemReset>`                 +736  +0      +48   +0   +96
    :ref:`/rtems/timer/val/mem-srv-after <MembenchRtemsTimerValMemSrvAfter>`          +1344 +0      +48   +0   +64
    :ref:`/rtems/timer/val/mem-srv-init <MembenchRtemsTimerValMemSrvInit>`            +1520 +0      +64   +32  +80
    :ref:`/rtems/timer/val/mem-srv-when <MembenchRtemsTimerValMemSrvWhen>`            +2000 +0      +64   +0   +112
    :ref:`/rtems/timer/val/mem-when <MembenchRtemsTimerValMemWhen>`                   +1488 +0      +64   +0   +112
    :ref:`/rtems/userext/val/mem-create <MembenchRtemsUserextValMemCreate>`           +208  +0      +64   +0   +112
    :ref:`/rtems/userext/val/mem-delete <MembenchRtemsUserextValMemDelete>`           +784  +0      +64   +0   +112
    ================================================================================= ===== ======= ===== ==== =======
[...]

Update #3716.


<!-- Default settings, if it is a dropdown it will set after submission -->

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/110
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20240708/15b23dfd/attachment-0001.htm>


More information about the bugs mailing list