Skip to contentSkip to conversation

can't get buffer cache to flush with /dev/ram with 2.2.4 using "update"/"sync"

DISCUSSION [email protected] 1 participant 1 message Aug 4, 2001

lore
Share & tools
lore
#0 lore raw

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,