Date: Thu, 13 Dec 2001 02:06:42 -0500 From: Garance A Drosihn <drosih@rpi.edu> To: arch@FreeBSD.ORG, Kirk McKusick <mckusick@FreeBSD.ORG> Cc: Matthew Dillon <dillon@apollo.backplane.com> Subject: Making installkernel behave better with softupdates Message-ID: <p0510100eb83dfb64667b@[128.113.24.47]> In-Reply-To: <200112021023.fB2ANMi91290@apollo.backplane.com> References: <Pine.NEB.3.96L.1011201232300.4004I-100000@fledge.watson.org> <p05101007b82f63a0b813@[128.113.24.47]> <200112021023.fB2ANMi91290@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
From the thread on: Re: Enabling Softupdates in default install on -CURRENT At 2:23 AM -0800 12/2/01, Matthew Dillon wrote: >Garance Drosihn wrote: >:I expect it would be best to have it default 'off' for /, because the >:user can get into strange-seeming failures when installing a new kernel. >:I do like the idea of it being on for most other filesystems. > > I agree. / is still a problem - I have softupdates enabled on > my 128M / partitions and if I 'make install' a kernel twice in > a row the filesystem runs out of space and the second install > fails. But that's the only time I've ever managed to run a > softupdates filesystem out of space. If we incorporated a couple > of 'sync's (like eight of them) at the beginning of a kernel or > world install target it would probably be safe enough. With my recent investigations into the size of /modules increasing in stable (discussed in freebsd-stable a few weeks ago), I noticed that the install process for modules goes (loosely-speaking) like this: for each fname in /modules/* cp /modules/fname /modules.old/fname for each fname in /usr/obj/.../modules/* cp /usr/obj/.../modules/fname /modules/fname This strikes me as a worst-case scenario for softupdates. Not only that, but doesn't seem like the safest way to make a backup of the current modules, or to copy new modules in. I changed that to: rm -rf /modules.old ; sync mv /modules /modules.old mkdir /modules for each fname in /usr/obj/.../modules/* cp /usr/obj/.../modules/fname /modules/fname I am assuming this would be faster, and better for softupdates, because you're only destroying one set of files (all in one nice clean 'rm'), instead of destroying both sets of files, one file at a time, by copying over the file. It also means the backup step is a relatively atomic operation (the 'mv'), and that you're starting out /modules with a clean slate. It'd probably be even better to remove /modules.old, copy new modules into /modules.new, and then do two 'mv's only if all of those succeeded. Anyway, I should have some free time over the next few weeks, and could revisit these ideas and probably come up with the even safer strategy (as well as the fancier handling for debug-versions of kernel+modules). Is this worth doing? Would changes like this make 'installkernel' behave better on a softupdates partition? -- Garance Alistair Drosehn = gad@eclipse.acs.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p0510100eb83dfb64667b>