From nobody Fri Nov 18 01:03:49 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 4NCz7g0nMHz4hjHT for ; Fri, 18 Nov 2022 01:03:59 +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 4NCz7d6p3wz3p4W for ; Fri, 18 Nov 2022 01:03:57 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of jmg@gold.funkthat.com has no SPF policy when checking 2001:470:800b::2) smtp.mailfrom=jmg@gold.funkthat.com; dmarc=none Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.15.2/8.15.2) with ESMTPS id 2AI13oaG063758 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 17 Nov 2022 17:03:50 -0800 (PST) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.15.2/8.15.2/Submit) id 2AI13nah063755; Thu, 17 Nov 2022 17:03:49 -0800 (PST) (envelope-from jmg) Date: Thu, 17 Nov 2022 17:03:49 -0800 From: John-Mark Gurney To: Mike Karels Cc: freebsd-arm@freebsd.org Subject: Re: adding swap when expanding root filesystem Message-ID: <20221118010348.GG3414@funkthat.com> Mail-Followup-To: Mike Karels , freebsd-arm@freebsd.org References: <202211071610.2A7GAcHl090048@mail.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: <202211071610.2A7GAcHl090048@mail.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]); Thu, 17 Nov 2022 17:03:50 -0800 (PST) X-Spamd-Result: default: False [-1.75 / 15.00]; AUTH_NA(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.995]; NEURAL_HAM_SHORT(-0.95)[-0.954]; FORGED_SENDER(0.30)[jmg@funkthat.com,jmg@gold.funkthat.com]; MIME_GOOD(-0.10)[text/plain]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; R_DKIM_NA(0.00)[]; R_SPF_NA(0.00)[no SPF record]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FROM_NEQ_ENVFROM(0.00)[jmg@funkthat.com,jmg@gold.funkthat.com]; FREEFALL_USER(0.00)[jmg]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; DMARC_NA(0.00)[funkthat.com]; TO_DN_SOME(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Queue-Id: 4NCz7d6p3wz3p4W X-Spamd-Bar: - X-ThisMailContainsUnwantedMimeParts: N 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. > 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. -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."