From nobody Wed Dec 17 19:39:21 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 4dWkdP5bYBz6LGwJ for ; Wed, 17 Dec 2025 19:39:21 +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 4dWkdP56bCz49Vr for ; Wed, 17 Dec 2025 19:39:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766000361; 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=ZROy7g3arMArRom1QJsxx52Wsyt9AFmv40TmTuxTbHs=; b=sHbslmpSfBdh4YhlcczmYqs2/uaayyzVSWM9l5HfavskEW3XZ6AzRYgc2VPH9Cha0CIk42 NEkaSxb1GWtjSWksZM3D5VuU+KFjfkE0Mzh5zu4fvDGRvtw+nXSDt3BNM2a+KCzUxFxAN2 G+HfVLCnTRrNFY7KH4Ez9EUJ1eazPeqWpRMF6CvfxjoHyMpWFpzYHWRgXK9kNWa7v14LR+ Qg0aeeLrmXu3nPR9K86kIiYaqy4TBjMCcJqYM4yJKT1lX+4ZGuPFDLIGMAV0jUdvujlP5a vIGddJSdaomwzBHTCztTS747Kr2Ky/b25c+r4VbY0Q9nO8NjsMK21O4h9ItM1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766000361; 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=ZROy7g3arMArRom1QJsxx52Wsyt9AFmv40TmTuxTbHs=; b=w8NKklDga5RzcD0Z1Wvm97iMrTFYf4YLbSBRCT8qQu8VZB4G12NnJK0wg2Emdj7fiapkhQ 7grEmrH4jnEwVtFLYwVm4L5D4Q2sDRSQIkzs6VvEwXSLVsrHzpMyk9iDjlBeCk7Efkmt/s ogz53y0scWOxu/HTf+rHOVy24Qu7k/D+5rdbPqfqpjwTJTwO26vMSs4i1nAlEqB/nSJGwE cQOSyHxToAwPw7PVwzEqgzhdXDyS2byEQ/ZPZL3Sdx1XaSOWoegEUgQDCVeQyRCaFt9Rjy VtGBJ/CFAtXQ9q/iSg/p86p7R7XgWtFYkJ51jeEAbGOWiKtN5MVUe9v05Zr28w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1766000361; a=rsa-sha256; cv=none; b=YyZ4b+lY2cQg5fI9DFkWxhlyUNDrqrSXZO8fenkpqQbLMnbV02MgQr8tVfu3BbkRO8qiAO irtjC5/MwYemF24JeX+ldJp2YMHdPafiyF6WqnyBuX1il/AyMYezp5p6zCPM7RpE6mIKVB IuGOdJh+cMI2+KVGqcrdhbC2bu1RfbTBP7heDUX6W/WfQc9hblHZ1NQ08fTgl5ue9A9bSW U+wTpHwibAftq9SGqZQjUD9FU0fn2b/kpWIThw+hGDdki4DME6G+OKwaH9g4eji8Y1xV/9 9vexzYreXJEgAzgz35DcTBgFsU8N2eN8+2Tc84mC8nZb+svwZKcn59o8IQVbkw== 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 4dWkdP45qLz15Ws for ; Wed, 17 Dec 2025 19:39:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39782 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 17 Dec 2025 19:39:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 53af2026f213 - main - limits: Unbreak after RLIMIT_VMM addition 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: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 53af2026f2139ae10ff9178cf2deca2de59fd780 Auto-Submitted: auto-generated Date: Wed, 17 Dec 2025 19:39:21 +0000 Message-Id: <694306e9.39782.3b99536e@gitrepo.freebsd.org> The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=53af2026f2139ae10ff9178cf2deca2de59fd780 commit 53af2026f2139ae10ff9178cf2deca2de59fd780 Author: Dag-Erling Smørgrav AuthorDate: 2025-12-17 19:38:59 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-12-17 19:38:59 +0000 limits: Unbreak after RLIMIT_VMM addition Update structures and add assertions to prevent a reoccurrence. Fixes: 1092ec8b3375 ("kern: Introduce RLIMIT_VMM") Reviewed by: bnovkov, allanjude Differential Revision: https://reviews.freebsd.org/D54273 --- usr.bin/limits/limits.1 | 10 +++++++--- usr.bin/limits/limits.c | 18 +++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/usr.bin/limits/limits.1 b/usr.bin/limits/limits.1 index 0e374acd991b..e05685942f60 100644 --- a/usr.bin/limits/limits.1 +++ b/usr.bin/limits/limits.1 @@ -17,7 +17,7 @@ .\" 5. Modifications may be freely made to this file providing the above .\" conditions are met. .\" -.Dd June 25, 2020 +.Dd December 17, 2025 .Dt LIMITS 1 .Os .Sh NAME @@ -28,11 +28,11 @@ .Op Fl C Ar class | Fl P Ar pid | Fl U Ar user .Op Fl SHB .Op Fl ea -.Op Fl bcdfklmnopstuvw Op Ar val +.Op Fl bcdfklmnopstuVvwy Op Ar val .Nm .Op Fl C Ar class | Fl U Ar user .Op Fl SHB -.Op Fl bcdfklmnopstuvwy Op Ar val +.Op Fl bcdfklmnopstuVvwy Op Ar val .Op Fl E .Oo .Op Ar name Ns = Ns Ar value ... @@ -265,6 +265,10 @@ in the entire system is limited to the value of the .Va kern.maxproc .Xr sysctl 8 variable. +.It Fl V Op Ar val +Select or set the +.Va vmms +resource limit. .It Fl v Op Ar val Select or set the .Va virtualmem diff --git a/usr.bin/limits/limits.c b/usr.bin/limits/limits.c index c53066b52a9f..57551c556c25 100644 --- a/usr.bin/limits/limits.c +++ b/usr.bin/limits/limits.c @@ -228,7 +228,7 @@ static struct { static struct { const char * cap; rlim_t (*func)(login_cap_t *, const char *, rlim_t, rlim_t); -} resources[RLIM_NLIMITS] = { +} resources[] = { { "cputime", login_getcaptime }, { "filesize", login_getcapsize }, { "datasize", login_getcapsize }, @@ -245,8 +245,12 @@ static struct { { "kqueues", login_getcapnum }, { "umtxp", login_getcapnum }, { "pipebuf", login_getcapnum }, + { "vmms", login_getcapnum }, }; +_Static_assert(nitems(resources) == RLIM_NLIMITS, + "Please add entries to resources[] for the new limits"); + /* * One letter for each resource levels. * NOTE: There is a dependency on the corresponding @@ -254,8 +258,9 @@ static struct { * If sys/resource.h defines are changed, this needs * to be modified accordingly! */ - -#define RCS_STRING "tfdscmlunbvpwkoy" +static const char rcs_string[] = "tfdscmlunbvpwkoyV"; +_Static_assert(sizeof(rcs_string) - 1 == RLIM_NLIMITS, + "Please add letters to rcs_string[] for the new limits"); static rlim_t resource_num(int which, int ch, const char *str); static void usage(void) __dead2; @@ -266,8 +271,6 @@ static void getrlimit_proc(pid_t pid, int resource, struct rlimit *rlp); static void setrlimit_proc(pid_t pid, int resource, const struct rlimit *rlp); extern char **environ; -static const char rcs_string[] = RCS_STRING; - int main(int argc, char *argv[]) { @@ -295,7 +298,7 @@ main(int argc, char *argv[]) pid = -1; optarg = NULL; while ((ch = getopt(argc, argv, - ":EeC:U:BSHP:ab:c:d:f:l:m:n:s:t:u:v:p:w:k:o:y:")) != -1) { + ":ab:BC:c:d:Eef:Hk:l:m:n:o:P:p:Ss:t:U:u:V:v:w:y:")) != -1) { switch(ch) { case 'a': doall = 1; @@ -552,7 +555,7 @@ usage(void) { (void)fprintf(stderr, "usage: limits [-C class|-P pid|-U user] [-eaSHBE] " - "[-bcdfklmnostuvpw [val]] [[name=val ...] cmd]\n"); + "[-bcdfklmnostuVvpwy [val]] [[name=val ...] cmd]\n"); exit(EXIT_FAILURE); } @@ -664,6 +667,7 @@ resource_num(int which, int ch, const char *str) case RLIMIT_NPTS: case RLIMIT_KQUEUES: case RLIMIT_UMTXP: + case RLIMIT_VMM: res = strtoq(s, &e, 0); s = e; break;