Filesystem vs malloc space

Angelo Fraietta angelo_f at internode.on.net
Tue Apr 26 20:26:36 UTC 2005


OK - thanks.

Joel Sherrill wrote:

> 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 UNIX.
>  *
>  *  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 
> significant
>  *  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",
>>> IMFS_memfile_maximum_size());
>>>
>>> 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.
>>>
>>> Thanks
>>>
>>
>>
>>
>
>

-- 
Angelo Fraietta

PO Box 859
Hamilton NSW 2303

Home Page


http://www.users.bigpond.com/angelo_f/

There are those who seek knowledge for the sake of knowledge - that is CURIOSITY
There are those who seek knowledge to be known by others - that is VANITY
There are those who seek knowledge in order to serve - that is LOVE
    Bernard of Clairvaux (1090 - 1153)







More information about the users mailing list