can't get buffer cache to flush with /dev/ram with 2.2.4 using "update"/"sync"
Hello all,
I boot linux using "loadlin" with an "initrd" ram disk image ("minix" type fs) of size 32 Meg with kernel 2.2.4. The /linuxrc (a C executable) runs and it shows that the mounted file sysem is of proper type and size. Then my "linuxrc" extracts a "tar" achrive (to populate the mounted /dev/ram [on "/"]) with a small subset of "linux" about (18 Meg) (as a "rescue" floppy boot). Before the "extract", debug code shows that the "cached" entry in "/proc/meminfo" to be practically zero (and thus plenty of "freemem"). However, after the "extract", the "cached" line shows about "18Meg" and I can find nothing that works to "flush" it. I have tried "spawing" "/sbin/update" and waiting several min. and running "/bin/sync" and also waiting - no change in the "cahed" entry (or and increase in the "freemem"). (ps -ef shows a process "bdflush" running [spawned] on its own.) Thus, trying to bring up a "logon" shell (and its "init" scripts) results in that process being killed do to lack of "freemem". I have only 64M and less than 4 Meg free after the "extract". Any suggestions greatly appreciated in advance. If there any "syscall" I can make in "linuxrc" that will flush "all" buffers without knowing anything like "file descriptors"? Is this "syscall" "synchronus" - or do do I have wait several seconds for it to work?
Floyd,