4MByte limit in IMFS for each file?

Joel Sherrill joel.sherrill at OARcorp.com
Mon Feb 24 00:09:51 UTC 2003


I have switched mail clients and am now using Mozilla on a new
computer so if something looks wrong with this email, let me know
if my client or formatting settings look off. :)

Angelo Fraietta wrote:

> So what is the largest file size?

 From a comment imfs.h:

 *  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


>
>
> till wrote:
>
>> Thomas.
>>
>> I hit the same limit when copying large files from TFTPFS to IMFS for
>> loading them with CEXP.
>>
>> You have to increase the IMFS blocksize (the default being 128b -
>> AFAIK, the max number of blocks is limited, hence increasing the
>> blocksize will help) in the file
>>
>> cpukit/libfs/src/imfs/imfs.h
>>
>> look for IMFS_MEMFILE_BYTES_PER_BLOCK
>>
>> HTH
>>
>> -- Till
>>
>> Thomas Doerfler wrote:
>>
>>> Hello,
>>>
>>> it's me again :-)
>>>
>>> When I tried out my "fileio" sample, I hit a strange 4MByte limit 
>>> when creating files in the IMFS. I was working on a PC386 target 
>>> with 16MByte of memory (and most of it was always available on the 
>>> heap).
>>>
>>> When I tried to create big files (like 8MB), the write call always 
>>> failed (with a "no space left on device" error), directly after 
>>> reaching a 4MByte file size boundary.
>>> This limit does not exist on the DOSFS, only when writing to the 
>>> IMFS. I tried it out on a MBX8xx system (with 16MByte of RAM) and 
>>> there I hit the limit also after 4MBytes.
>>>
>>> I was browsing through the IMFS sources and did not find any reason 
>>> for this limitation, and I did not yet run the test with a debugger.
>>>
>>> Any hints on that issue?
>>>
>>> wkr,
>>>     Thomas.
>>> --------------------------------------------
>>> IMD Ingenieurbuero fuer Microcomputertechnik
>>> Thomas Doerfler           Herbststrasse 8
>>> D-82178 Puchheim          Germany
>>> email:    Thomas.Doerfler at imd-systems.de
>>> PGP public key available at: http://www.imd-
>>> systems.de/pgp_keys.htm
>>>
>>
>>
>>
>>
>






More information about the users mailing list