In nfsinstall.c we copy stage2.img from /mnt/source/images/stage2.img to /tmp, and then loopback-mount it from there. This takes about 118MiB of RAM, which is a _lot_, and prevents us from being able to install on a number of low-memory systems which used to work. Can't we just loopback-mount the stage2.img from the NFS location, like we used to?
Chris is looking at this, but we were more concerned first with getting things working at all after all of the upheaval needed for stage2=
I'm taking a look but I'm confused by the error handling. I think that if you put a stage2.img file into the NFS directory which isn't a valid ISO image, then mountStage2() will return 1 but that will be interpreted as success... rc = mountStage2("/tmp/stage2.img", stage2dir); free(buf); if (rc && rc == -1) { foundinvalid = 1; logMessage(WARNING, "not the right one"); umount("/mnt/source"); } else { stage = NFS_STAGE_DONE; rc = asprintf(&url, "nfs:%s:%s", host, directory); break; }
Created attachment 298731 [details] patch This seems to do the trick for me (and fixes urlinstall.c to compile too, while I'm at it)
*** Bug 438450 has been marked as a duplicate of this bug. ***
Memory usage should be better now.
This doesn't seem to be fixed -- booting anaconda 11.4.0.65 I see it's still throwing away half my PS3's memory by copying stage2.img into /tmp/ instead of using it in-place.
Looks like we'll use the stage2.img in place if we find it on a boot.iso, but still we don't use it when we find it on NFS. We should. Also, when we use stage2.img from a CD I don't think we're using RHupdates/ from the NFS install directory any more, are we?
Committed. Thanks. This all needs to be revisited for f10 anyway.