RFC eliminating zeroing of heap/workspace

Thomas Doerfler Thomas.Doerfler at embedded-brains.de
Thu Apr 5 21:57:36 UTC 2007

Hi Eric,

Eric Norum schrieb:
> Nothing in the C standard nor in the RTEMS documentation promises  
> anything about the contents of dynamically allocated memory (other  
> than calloc, and that routine clears the memory itself before handing  
> back the pointer).  I'd say don't bother with the clearing.  A 30x  
> speedup sounds worthwhile to me.

I am a bit more reluctant on this. Eric, basically you are right, nobody
specified that chunks of the heap are cleared (that's what calloc
provides), but I see two benefits:

1.) some systems NEED the memory to be cleared after power up, simply to
initialize it in sync with its ECC error correction code

2.) The behaviour of systems is a bit more repeatable when the memory is
set to a known state after boot

These are not really striking arguments, so I am a bit torn between
zeroing memory or not. And no, I don't think this is worth another
general RTEMS configuration option :-)


> On Apr 5, 2007, at 3:58 PM, Joel Sherrill wrote:
>>I have done some investigation on a simulator
>>and determined that much of the time required
>>to bring the minimum test from reset to the
>>first task is consumed by zero'ing the
>>C Program Heap and RTEMS Workspace.
>>My testing is on a simulated system which
>>has 4MB of RAM and zeroes all but maybe
>>64K of it since that is the code and data.
>>It takes 97% of the boot time to clear this
>>much RAM.
>>What's the general sentiment about clearing:
>>+ the C program heap
>>+ the RTEMS workspace
>>Just wanting opinions and thoughts.
>>rtems-users mailing list
>>rtems-users at rtems.com

Embedded Brains GmbH
Thomas Doerfler           Obere Lagerstr. 30
D-82178 Puchheim          Germany
email: Thomas.Doerfler at embedded-brains.de
Phone: +49-89-18908079-2
Fax:   +49-89-18908079-9

More information about the users mailing list