From nobody Wed Oct 15 17:32:12 2025 X-Original-To: dev-commits-src-main@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 4cmynm71xRz6CjY2; Wed, 15 Oct 2025 17:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cmynm5Tytz41W5; Wed, 15 Oct 2025 17:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1760549532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wgbxkwHKxk7PfcBrKL8ioH590FkoOXPwNzGKoS8Xc1k=; b=Nn5C+RIV+Zf7oMQCy8oTJgsnP6C+DeLvttmLCLSJ+dZ3u5XSJLdEGajX1JJ0R3BEU6HQ+8 uuH/R0uQOz/IqgCP9ev9RpN5rj3o+Je1K27r/Nr0dUn4sJyqNNwPNJMS7IvLgeJ0bhcwUO UqPof77OKrTonk95Pd5s8KMhasx0OD0d10/cu1c205eFXpzHG6s/4tG7kHV6DCDx5Bmn0f YdpClN7Lpw0Fd4lVfLj+2QFmlWYG2pvVIhjz5bM6Hs8dxfeBXEwU8WgIpimlZMYh6F0s0E U+q6j3oDCnDhi+2rAWn5WRSjpx9eYNQaMuvNYwiOuvLP3Fkh+Np+NWZzuDjK2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1760549532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wgbxkwHKxk7PfcBrKL8ioH590FkoOXPwNzGKoS8Xc1k=; b=iqrjvHYxEXMsmfJIhYqMwYqf9flpzBeMUpi5ZD/wlH7XD8ofhVc2HBKFm0F2lb9jwOzp1N EPAKl18Acaqs2gZg24UAtInoANb42sImvzVoW/qhE8G06Ph+GFxNpTft2STBlsS+I7mNFB vCe/470LzjygIFMKgVb7staA8xlLGNCGBY2rRJPnzyHyydUdBZ/lbewiRk+vwJ6xxUWGmU EYkeFF4X/r894eL+mclh3eYMi84Ek34/C0XXklRknsmHQZrpc8KX3XgtvxlxZu/n94q6If 9uTouD1kHJv95kYUzNepXN6srs6pWdYZw1t+zlO6XLyfUHqcG4BqVC0xjy7t4g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1760549532; a=rsa-sha256; cv=none; b=WDa4bup7vTbF4qRcxOdrt0RZWgU9gEGIHTgQD2ddEi9Z6IHYkgblPDLfAIYH1xtYqJajdd Af3+nJt66J/IOJh2D2CnGw7zWIEAyvvJNAki7JQA+JvA7js9u/hJb4rt1MENt3U9Sn8EGm 5Y8kH8lWQi/XtiYCfQj/xtt1JH1SHYl1wVXDsPXx/Kl0qRwHkssTF3jTCsE594MMnoLsa4 7/5GcWnQoPq6rwx2zQ4yYtdb/eIYDmloP57is5APowbZUwzJQk5VAAtlILeX47NGuNPWJL h31QTTYNgI9NuCt07Gel3dyjKUqnziFdkrc9qQVNEyHZQzpHatRjLwailsntbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cmynm50nwzpS9; Wed, 15 Oct 2025 17:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 59FHWCor021548; Wed, 15 Oct 2025 17:32:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59FHWCnJ021545; Wed, 15 Oct 2025 17:32:12 GMT (envelope-from git) Date: Wed, 15 Oct 2025 17:32:12 GMT Message-Id: <202510151732.59FHWCnJ021545@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 52f9722e6fff - main - bsdinstall: Limit default swap to maximum supported by kernel List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 52f9722e6ffff6fee309e6040b7b5313499a03ef Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=52f9722e6ffff6fee309e6040b7b5313499a03ef commit 52f9722e6ffff6fee309e6040b7b5313499a03ef Author: Ed Maste AuthorDate: 2023-03-06 20:24:05 +0000 Commit: Ed Maste CommitDate: 2025-10-15 16:29:56 +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 --- 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,