Filesystem vs malloc space

Joel Sherrill <> joel.sherrill at
Tue Apr 26 18:42:27 UTC 2005

Thomas Doerfler wrote:
> Angelo Fraietta schrieb:
> I think you missinterprete the functionality of
> IMFS_memfile_maximum_size(): It does not return the amount of memory
> left for file creation, but returns a constant, that defines the maximum
> file size, that can be created using the IMFS, even if more memory would
> be available. In normal configurations, the size of each file is limited
> to 4MByte.

That's the answer. :)

The function exists because you can (at compile time) configure the 
block size used by the IMFS.  If you pick a small block size, you
get a smaller maximum file size.  From cpukit/libfs/src/imfs/imfs.h

  *  IMFS "memfile" information
  *  The data structure for the in-memory "memfiles" is based on classic 
  *  block_ptr is a pointer to a block of IMFS_MEMFILE_BYTES_PER_BLOCK in
  *  length which could be data or a table of pointers to blocks.
  *  Setting IMFS_MEMFILE_BYTES_PER_BLOCK to different values has a 
  *  impact on the maximum file size supported as well as the amount of
  *  memory wasted due to internal file fragmentation.  The following
  *  is a list of maximum file sizes based on various settings
  *    max_filesize with blocks of   16 is         1,328
  *    max_filesize with blocks of   32 is        18,656
  *    max_filesize with blocks of   64 is       279,488
  *    max_filesize with blocks of  128 is     4,329,344
  *    max_filesize with blocks of  256 is    68,173,568
  *    max_filesize with blocks of  512 is 1,082,195,456

> wkr,
> Thomas.
>>Greetings all
>>I have found that I am running out of malloc memory on my system
>>By doing the following two calls, I can see how much memory I have
>>           printf ("\r\nFree Space %u", malloc_free_space());
>>           printf("\r\nMax Filesystem Size %u",
>>At first, I have approx 5527408 bytes of malloc memory and 4329344 bytes
>>of free filesystem space.
>>After loading a heap of data, I end up with approx 207000 bytes of
>>malloc memory left, buts still have the same amount of Filesystem space
>>left (this is strange as I have just downloaded nearly 100K of files to
>>my system). This 200K of malloc space that I have left is still not
>>enough to dod what I still have to do
>>How do I reduce the amount of filesystem space and increase the amount
>>of space for malloc?
>>Why didn't the Filesystem space show the difference; or is it that the
>>call I made shows the total IMFS space- not the amount remaining.

Joel Sherrill, Ph.D.             Director of Research & Development
joel at                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985

More information about the users mailing list