uCLinux : How can I limit the cache size ?

Hi,

I'm currently working on an application based on uCLinux, which has both a tftpd server and an SNMP agent on it. The SNMP agent spawns processes from time to time on specific requests (using vfork()). The problem I have is that with the huge files that the tftpd server has to upload, the file cache size get enormous -- and I don't need it since I'm working from a ramdisk. When the SNMP agent tries to spawn applications afterwards, the cache memory is partly freed, but due to memory fragmentation and the absence of an MMU, the available blocks are no longer large enough to launch the processes, which crash. So I would like to avoid the use of file caching at all costs. I could have done that if the O_DIRECT option for opening files had been supported; unfortunately, on my platform (ARM7TDMI) it's not. So I'm left with the only option of limiting the cache size of the uCLinux kernel. How can I do this ? Is it possible to do it at all ? Is there another way to solve that problem ?

Herve Gourmelon Software Engineer hgourmelon at ekinops dot fr

P.S. I've spent the last 3 days polling the mailing lists and news archives for a hint, but I didn't really find much on the subject...

Reply to
Herve Gourmelon
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.