Red Hat Bugzilla – Bug 3412
The initrd file system not released when the real root is mounted
Last modified: 2008-05-01 11:37:50 EDT
This problem is new to the 2.2.x kernel
When your root disk is a scsi unit you load in inital
ramdisk so you can load the required scsi driver before
mounting the real root file systems. In the new kernel
the scsi module (aha1542 at least, probably other drivers
too) starts a kernel process named scsi_eh_0 which on
my system gets PID number 8. This process inherits the open
files from the insmod program which has as current direcotry
the ram disk file system, has the file for the driver open
and the console device. When the kernel process inherits
these open files, these file will never be closed, so when
the kernel later tries to unmount the ram disk file system
it will fail because of these open files, and because the
file system can't be unmounted the ram area used by this ram
disk file system cannot be freed. For a normal ram disk
image this is about one and a half megabyts of ram waisted.
The kernel thread si started on the procedure
scsi_error_handler() found in
This routine has some nice comments about the user space
pages inherited from the insmod process. The inherited open
files will lock an even bigger number of pages in kernel, in
this case protected file system pages.
Thank you. I've been trying to figure out the cause of assorted Linux
2.2 initrd reports and you've given me the info I'd missed.
This should be fixed in 2.2.12 and later. Alan, do you disagree?
Assigned to dledford
The problem is unchanged present in Redhat linux version 6.2
BTW, what does it mean "Stauts: RESOLVED CURRENTRELEASE"?
It was sorted for most cases. The remaining one I think I finally nailed in