<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>

<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: var(--default-regular-font, "GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: var(--default-regular-font, "GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">

<p class="details" style="font-style: italic; color: #737278;">
<a href="https://gitlab.rtems.org/sebhub">Sebastian Huber</a> created a merge request: <a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/110">!110</a>
</p>
<div class="branch">
Project:Branches: sebhub/rtems:add-memory-benchmark-programs to rtems/rtos/rtems:main
</div>
<div class="author">
Author: Sebastian Huber
</div>
<div class="assignee">
Assignee: Sebastian Huber
</div>
<div class="reviewer">
Reviewers: 
</div>
<div class="approvers">

</div>
<div class="md gl-mt-5" style="color: #333238; word-wrap: break-word; margin-top: 1rem;">
<h2 dir="auto" style="font-size: 1.5em; font-weight: 600; padding-bottom: .3em; border-bottom-width: 1px; border-bottom-color: #bfbfc3; border-bottom-style: solid; color: #333238; margin: 0 0 16px;" align="initial">
<a href="#summary" aria-hidden="true" class="anchor" id="user-content-summary" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Summary</h2>
<p dir="auto" style="color: #333238; margin: 0 0 16px;" align="initial">membench: Add memory benchmark programs</p>
<p dir="auto" style="color: #333238; margin: 0 0 16px;" align="initial">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:</p>
<p dir="auto" style="color: #333238; margin: 0 0 16px;" align="initial">./membench.py modules/rtems/build/sparc/gr740
[...]
.. _BenchmarksBasedOnSpecRtemsValMemBasic:</p>
<h1 dir="auto" style="font-size: 1.75em; font-weight: 600; padding-bottom: .3em; border-bottom-width: 1px; border-bottom-color: #bfbfc3; border-bottom-style: solid; color: #333238; margin: 24px 0 16px;" align="initial">
<a href="#benchmarks-based-on-specrtemsvalmem-basic" aria-hidden="true" class="anchor" id="user-content-benchmarks-based-on-specrtemsvalmem-basic" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Benchmarks Based on: spec:/rtems/val/mem-basic</h1>
<p dir="auto" style="color: #333238; margin: 0 0 16px;" align="initial">The following static memory benchmarks are based on the
reference memory benchmark specified by
:ref:<code style='font-size: 90%; color: #1f1e24; word-wrap: break-word; background-color: #ececef; border-radius: 4px; margin-top: 0; font-weight: inherit; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 2px 4px;'>spec:/rtems/val/mem-basic <MembenchRtemsValMemBasic></code>.
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 <code style='font-size: 90%; color: #1f1e24; word-wrap: break-word; background-color: #ececef; border-radius: 4px; font-weight: inherit; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 2px 4px;'>+</code> indicates a size increase and a
<code style='font-size: 90%; color: #1f1e24; word-wrap: break-word; background-color: #ececef; border-radius: 4px; font-weight: inherit; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 2px 4px;'>-</code> indicates a size decrease.  This hints how the static memory usage
changes when the feature set changes with respect to the reference memory
benchmark.</p>
<p dir="auto" style="color: #333238; margin: 0 0 16px;" align="initial">.. table::
:class: longtable</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style='display: block; font-size: 14px; color: #333238; line-height: 1.6em; overflow-x: auto; border-radius: 4px; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 16px; padding: 12px; border: 1px solid #dcdcde;'><code style='font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: 4px; white-space: pre; margin-top: 0; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; overflow-wrap: normal; padding: unset;'><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">================================================================================= ===== ======= ===== ==== =======</span>
<span id="LC2" class="line" lang="plaintext">Specification                                                                     .text .rodata .data .bss .noinit</span>
<span id="LC3" class="line" lang="plaintext">================================================================================= ===== ======= ===== ==== =======</span>
<span id="LC4" class="line" lang="plaintext">:ref:`/rtems/val/mem-basic <MembenchRtemsValMemBasic>`                            33728 96      560   4080 14048</span>
<span id="LC5" class="line" lang="plaintext">:ref:`/dev/clock/val/mem-clock <MembenchDevClockValMemClock>`                     +2624 +0      +48   +32  +0</span>
<span id="LC6" class="line" lang="plaintext">:ref:`/rtems/barrier/val/mem-wait-rel <MembenchRtemsBarrierValMemWaitRel>`        +1424 +0      +64   +0   +48</span>
<span id="LC7" class="line" lang="plaintext">:ref:`/rtems/barrier/val/mem-wait-rel-del <MembenchRtemsBarrierValMemWaitRelDel>` +1584 +0      +64   +0   +80</span>
<span id="LC8" class="line" lang="plaintext">:ref:`/rtems/clock/val/mem-get-uptime <MembenchRtemsClockValMemGetUptime>`        +352  +0      +16   +0   +32</span>
<span id="LC9" class="line" lang="plaintext">:ref:`/rtems/clock/val/mem-set <MembenchRtemsClockValMemSet>`                     +3088 +0      +64   +16  -16</span>
<span id="LC10" class="line" lang="plaintext">:ref:`/rtems/clock/val/mem-set-get-tod <MembenchRtemsClockValMemSetGetTod>`       +5264 +0      +64   +16  -16</span>
<span id="LC11" class="line" lang="plaintext">:ref:`/rtems/event/val/mem-snd-rcv <MembenchRtemsEventValMemSndRcv>`              +1248 +0      +16   +0   +32</span>
<span id="LC12" class="line" lang="plaintext">:ref:`/rtems/fatal/val/mem-fatal <MembenchRtemsFatalValMemFatal>`                 +0    +0      +0    +0   +0</span>
<span id="LC13" class="line" lang="plaintext">:ref:`/rtems/message/val/mem-bcst-rcv <MembenchRtemsMessageValMemBcstRcv>`        +4624 +0      +64   +0   +112</span>
<span id="LC14" class="line" lang="plaintext">:ref:`/rtems/message/val/mem-snd-rcv <MembenchRtemsMessageValMemSndRcv>`          +4752 +0      +64   +0   +112</span>
<span id="LC15" class="line" lang="plaintext">:ref:`/rtems/message/val/mem-snd-rcv-del <MembenchRtemsMessageValMemSndRcvDel>`   +4928 +0      +64   +0   +128</span>
<span id="LC16" class="line" lang="plaintext">:ref:`/rtems/message/val/mem-ugt-rcv <MembenchRtemsMessageValMemUgtRcv>`          +4720 +0      +64   +0   +80</span>
<span id="LC17" class="line" lang="plaintext">:ref:`/rtems/part/val/mem-get-ret <MembenchRtemsPartValMemGetRet>`                +752  +0      +64   +0   +80</span>
<span id="LC18" class="line" lang="plaintext">:ref:`/rtems/part/val/mem-get-ret-del <MembenchRtemsPartValMemGetRetDel>`         +944  +0      +64   +0   +80</span>
<span id="LC19" class="line" lang="plaintext">:ref:`/rtems/ratemon/val/mem-period <MembenchRtemsRatemonValMemPeriod>`           +1984 +0      +48   +0   +192</span>
<span id="LC20" class="line" lang="plaintext">:ref:`/rtems/ratemon/val/mem-period-del <MembenchRtemsRatemonValMemPeriodDel>`    +2240 +0      +48   +0   +192</span>
<span id="LC21" class="line" lang="plaintext">:ref:`/rtems/sem/val/mem-obt-rel <MembenchRtemsSemValMemObtRel>`                  +9008 +0      +48   +0   +80</span>
<span id="LC22" class="line" lang="plaintext">:ref:`/rtems/sem/val/mem-obt-rel-del <MembenchRtemsSemValMemObtRelDel>`           +9360 +0      +48   +0   +112</span>
<span id="LC23" class="line" lang="plaintext">:ref:`/rtems/signal/val/mem-catch-snd <MembenchRtemsSignalValMemCatchSnd>`        +1216 +0      +16   +0   +0</span>
<span id="LC24" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-delete <MembenchRtemsTaskValMemDelete>`                 +912  +0      +16   +0   -16</span>
<span id="LC25" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-exit <MembenchRtemsTaskValMemExit>`                     +96   +0      +16   +0   +32</span>
<span id="LC26" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-get-affinity <MembenchRtemsTaskValMemGetAffinity>`      +400  +0      +0    +0   -16</span>
<span id="LC27" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-get-priority <MembenchRtemsTaskValMemGetPriority>`      +640  +0      +0    +0   +0</span>
<span id="LC28" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-get-scheduler <MembenchRtemsTaskValMemGetScheduler>`    +160  +0      +0    +0   +32</span>
<span id="LC29" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-mode <MembenchRtemsTaskValMemMode>`                     +672  +0      +16   +0   +32</span>
<span id="LC30" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-restart <MembenchRtemsTaskValMemRestart>`               +1184 +0      +16   +0   +32</span>
<span id="LC31" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-set-affinity <MembenchRtemsTaskValMemSetAffinity>`      +480  +0      +16   +0   +32</span>
<span id="LC32" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-set-priority <MembenchRtemsTaskValMemSetPriority>`      +976  +0      +16   +0   -16</span>
<span id="LC33" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-set-scheduler <MembenchRtemsTaskValMemSetScheduler>`    +1728 +0      +16   +0   +0</span>
<span id="LC34" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-sus-res <MembenchRtemsTaskValMemSusRes>`                +224  +0      +16   +0   +32</span>
<span id="LC35" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-wake-after <MembenchRtemsTaskValMemWakeAfter>`          +432  +0      +16   +0   +16</span>
<span id="LC36" class="line" lang="plaintext">:ref:`/rtems/task/val/mem-wake-when <MembenchRtemsTaskValMemWakeWhen>`            +1056 +0      +16   +0   +32</span>
<span id="LC37" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-after <MembenchRtemsTimerValMemAfter>`                 +864  +0      +48   +0   +96</span>
<span id="LC38" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-cancel <MembenchRtemsTimerValMemCancel>`               +448  +0      +48   +0   +64</span>
<span id="LC39" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-delete <MembenchRtemsTimerValMemDelete>`               +496  +0      +48   +0   +80</span>
<span id="LC40" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-reset <MembenchRtemsTimerValMemReset>`                 +736  +0      +48   +0   +96</span>
<span id="LC41" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-srv-after <MembenchRtemsTimerValMemSrvAfter>`          +1344 +0      +48   +0   +64</span>
<span id="LC42" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-srv-init <MembenchRtemsTimerValMemSrvInit>`            +1520 +0      +64   +32  +80</span>
<span id="LC43" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-srv-when <MembenchRtemsTimerValMemSrvWhen>`            +2000 +0      +64   +0   +112</span>
<span id="LC44" class="line" lang="plaintext">:ref:`/rtems/timer/val/mem-when <MembenchRtemsTimerValMemWhen>`                   +1488 +0      +64   +0   +112</span>
<span id="LC45" class="line" lang="plaintext">:ref:`/rtems/userext/val/mem-create <MembenchRtemsUserextValMemCreate>`           +208  +0      +64   +0   +112</span>
<span id="LC46" class="line" lang="plaintext">:ref:`/rtems/userext/val/mem-delete <MembenchRtemsUserextValMemDelete>`           +784  +0      +64   +0   +112</span>
<span id="LC47" class="line" lang="plaintext">================================================================================= ===== ======= ===== ==== =======</span></code></pre>
<copy-code></copy-code>
</div>
<p dir="auto" style="color: #333238; margin: 0 0 16px;" align="initial">[...]</p>
<p dir="auto" style="color: #333238; margin: 0;" align="initial">Update <a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/3716" data-reference-type="issue" data-original="#3716" data-link="false" data-link-reference="false" data-project="26" data-issue="26190" data-project-path="rtems/rtos/rtems" data-iid="3716" data-issue-type="issue" data-container="body" data-placement="top" title="Unit, integration and validation tests for space profile" class="gfm gfm-issue" style="margin-top: 0;">#3716</a>.</p>
</div>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #737278;">

<br>
<a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/110">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.rtems.org">gitlab.rtems.org</a>. <a href="https://gitlab.rtems.org/-/sent_notifications/287567631658c7fb20849f838b3adb17/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.rtems.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.rtems.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Merge request","url":"https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/110"}}</script>


</p>
</div>
</body>
</html>