From nobody Fri Nov 18 22:45:10 2022 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NDX160WfVz4hYrD for ; Fri, 18 Nov 2022 22:45:14 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (gold.funkthat.com [IPv6:2001:470:800b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gate2.funkthat.com", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NDX153jHFz4FDt for ; Fri, 18 Nov 2022 22:45:13 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Authentication-Results: mx1.freebsd.org; none Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.15.2/8.15.2) with ESMTPS id 2AIMjBGh061026 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 18 Nov 2022 14:45:11 -0800 (PST) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.15.2/8.15.2/Submit) id 2AIMjATs061020; Fri, 18 Nov 2022 14:45:10 -0800 (PST) (envelope-from jmg) Date: Fri, 18 Nov 2022 14:45:10 -0800 From: John-Mark Gurney To: Mike Karels Cc: freebsd-arm@freebsd.org Subject: Re: adding swap when expanding root filesystem Message-ID: <20221118224510.GI3414@funkthat.com> Mail-Followup-To: Mike Karels , freebsd-arm@freebsd.org References: <202211071610.2A7GAcHl090048@mail.karels.net> <20221118010348.GG3414@funkthat.com> <21BE16D1-0E58-4771-B6DD-7B2EAC6665C5@karels.net> List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <21BE16D1-0E58-4771-B6DD-7B2EAC6665C5@karels.net> X-Operating-System: FreeBSD 11.3-STABLE amd64 X-PGP-Fingerprint: D87A 235F FB71 1F3F 55B7 ED9B D5FF 5A51 C0AC 3D65 X-Files: The truth is out there X-URL: https://www.funkthat.com/ X-Resume: https://www.funkthat.com/~jmg/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? User-Agent: Mutt/1.6.1 (2016-04-27) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (gold.funkthat.com [127.0.0.1]); Fri, 18 Nov 2022 14:45:11 -0800 (PST) X-Rspamd-Queue-Id: 4NDX153jHFz4FDt X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N Mike Karels wrote this message on Fri, Nov 18, 2022 at 09:45 -0600: > On 17 Nov 2022, at 19:03, John-Mark Gurney wrote: > > > Mike Karels wrote this message on Mon, Nov 07, 2022 at 10:10 -0600: > >> This question is not really arm-specific, but I couldn't think of a better > >> mailing list for it. > >> > >> There are peridic issues reported on small systems like Raspberry Pi > >> where people are running buildworld or poudriere and running out of > >> memory. As the user gets no control over the disk layout when installing, > >> there is no option to add swap space on the install image. I have added > >> swap space on a USB disk, but this is often not an option. It occurred > >> to me that it might be reasonable to add swap space before expanding > >> the root filesystem if there is sufficient space. I have a prototype, > > > > So, if you boot to single user mode, before growfs runs on first boot, > > you can manually add a swap partition at the end of the disk. > > > > You'll need to gpart recover the disk first, so that the gpt (iirc) > > covers the remaining disk, and then add a swap partition at the end. > > This'll take a bit of math, but isn't too hard. > > Right, that???s what my prototype does (as part of the growfs script). > > >> and wondered if this is a good thing to do. Granted, this will often > >> create swap on microSD, which is not optimal, but probably better than > >> nothing. > > > > The other option is to use a swap file as outlined in the handbook: > > https://docs.freebsd.org/en/books/handbook/config/#create-swapfile > > > >> The current prototype creates a swap partition which is 1/10 of the disk > >> if the disk is at least 15 GB and the initial root partition is no more > >> than 1/3 of the disk, but only up to 1.5x of physical memory. I would > >> probably enable this by default, but provide a way to disable it via a > >> kenv variable and/or a variable in /etc/rc.conf. > > > > I would like to see the ability to drop a file on the FAT file system > > so that the system can be configured at first boot w/o requiring someone > > to either boot to single user mode, or have a FreeBSD system. This isn't > > too hard, as I have a review already open for it: > > https://reviews.freebsd.org/D26713 > > > > It makes use of cpercival's cloud init, but slightly modified so it looks > > on the fat file system that most arm images have. > > > > with this, it wouldn't be too hard to gin up some commands to automatically > > add the swap partition on first boot, but until something like this is > > done, it has to be done manually. > > I like the config script idea, but it runs after the root file system is > mounted read/write, and growfs runs before that. Meanwhile, I have added > the ability to suppress swap space, or set its size, via either /etc/rc.conf > or kernel environment. I will probably have something ready for review soon. > Meanwhile, if anyone wants to test (especially on GPT), let me know. It looks like growfs can run on read-write UFS filesystems, or at least that's what the man page implies: CAVEATS When expanding a file system mounted read-write, any writes to that file system will be temporarily suspended until the expansion is finished. I haven't tried it though. https://www.freebsd.org/cgi/man.cgi?query=growfs&apropos=0&sektion=0&manpath=FreeBSD+13.1-RELEASE+and+Ports&arch=default&format=html -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."