oE3ywK/mKFjc6lJ3xqdr4bDsAsPGfXMS9u7C86NzAkZ71Q4opbchd6Nya19DMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1765899656; a=rsa-sha256; cv=none; b=t7n8CTI/fhxX5I6p88nkE5HJWrgKJYFvieR2nqbkR5hM+MyGZNleX3jkQEjRdrAqPfKJwe PlNXkB9FsQFtm2saiX+iaZLSb4rgghnr2texfK4eJvBt5nXuHpNKQJ44VUu7BE7qIo6WYo /MaxMAO02Xh+YCKT6OdSFt/i6LZjSbdIH9jZdI5QIy9xwxBVi3+hCiS53Ags2d/l621jwt DdBe7Bm3hb2RhHZ4mmJPAh9fLI/0pMOa+HtSY/hlBaJfw516ZOtXzsu7y1Jnidm+hVttTZ Bmi3iAucGtr58jcT1QQ58IxVIwroLiSuyixc8MAR9XXIJtJolh1u9VJ97zsyBw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dW1Nm187sz1BYR for ; Tue, 16 Dec 2025 15:40:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44603 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 16 Dec 2025 15:40:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 8f84fdda4c78 - stable/15 - bsdinstall: Limit default swap to maximum supported by kernel List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8f84fdda4c788d63cf0bb0bb19962a0ebcf2e6a4 Auto-Submitted: auto-generated Date: Tue, 16 Dec 2025 15:40:51 +0000 Message-Id: <69417d83.44603.48566f9c@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=8f84fdda4c788d63cf0bb0bb19962a0ebcf2e6a4 commit 8f84fdda4c788d63cf0bb0bb19962a0ebcf2e6a4 Author: Ed Maste AuthorDate: 2023-03-06 20:24:05 +0000 Commit: Ed Maste CommitDate: 2025-12-16 15:40:40 +0000 bsdinstall: Limit default swap to maximum supported by kernel PR: 251993 Reviewed by: cperciva Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D53106 (cherry picked from commit 52f9722e6ffff6fee309e6040b7b5313499a03ef) --- usr.sbin/bsdinstall/partedit/part_wizard.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bsdinstall/partedit/part_wizard.c b/usr.sbin/bsdinstall/partedit/part_wizard.c index 90a8da1c3c9b..9146a2af782f 100644 --- a/usr.sbin/bsdinstall/partedit/part_wizard.c +++ b/usr.sbin/bsdinstall/partedit/part_wizard.c @@ -27,6 +27,7 @@ */ #include +#include #include #include @@ -34,6 +35,7 @@ #include #include #include +#include #include #include @@ -41,10 +43,29 @@ #include "partedit.h" #define MIN_FREE_SPACE (1023*1024*1024) /* Just under 1 GB */ -#define SWAP_SIZE(available) MIN(available/20, 4*1024*1024*1024LL) static char *wizard_partition(struct gmesh *mesh, const char *disk); +/* + * Determine default swap (partition) size in bytes for a given amount of free + * disk space in bytes. The algorithm should likely be revisited in light of + * contemporary memory and disk sizes. + */ +static intmax_t +swap_size(intmax_t available) +{ + intmax_t swapsize; + unsigned long swap_maxpages; + size_t sz; + + swapsize = MIN(available/20, 4*1024*1024*1024LL); + sz = sizeof(swap_maxpages); + if (sysctlbyname("vm.swap_maxpages", &swap_maxpages, &sz, NULL, 0) == 0) + swapsize = MIN(swapsize, (intmax_t)swap_maxpages * getpagesize()); + + return (swapsize); +} + int part_wizard(const char *fsreq) { @@ -383,7 +404,7 @@ wizard_makeparts(struct gmesh *mesh, const char *disk, const char *fstype, return (!retval); /* Editor -> return 0 */ } - swapsize = SWAP_SIZE(available); + swapsize = swap_size(available); humanize_number(swapsizestr, 7, swapsize, "B", HN_AUTOSCALE, HN_NOSPACE | HN_DECIMAL); humanize_number(rootsizestr, 7, available - swapsize - 1024*1024,