From nobody Sat Nov 12 12:41:46 2022 X-Original-To: dev-commits-src-all@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 4N8ZvZ2BmXz4ffPb; Sat, 12 Nov 2022 12:41:46 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4N8ZvZ1Rksz3t02; Sat, 12 Nov 2022 12:41:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1668256906; 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=74krl1Cv1Z1D9+F8iq+vBkL68JWEa0CLz6kxYnmNI58=; b=pn+UtWrFHITizmAuH98XSu5+bDkYOHoqGqgy44iQVhFu7/n7jb3JhreiiQEziBzBF5PR9F er54cNXo5ZrkrPewH00PG8D54BZGS2uHOk8lsz7Usl7PE8QP216PJcwWl/PQtb9VaShOFc Qv4D8kfMmiLjqKRLQTa/fgz9YvLsbgiAvgVrXhIboun5pa5Twi/8y6ZF07YI+y49ciO0Qw rGiEKDwmXCzdiLZ0+e5g/z0TXzOZA9NS2xxmwlTiKFr5fxmdxcQmhedP6EjYT13NPRU9HZ OePlfPwGIZu6Qml3eBr0H7p9+w8+hXPp7gMtjw4WL5wOr3ekIf/7wbMYCuyMVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1668256906; 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=74krl1Cv1Z1D9+F8iq+vBkL68JWEa0CLz6kxYnmNI58=; b=ZhiEeevyEn/lcMxa8GucNjW+DUPpoY/30nnaJKttfKMlq46j+rT1vhoOShDwRyK7gR/jOm tn3vF0URHDvIyf3iMWndIeWWDEapOCcA+I1ITZdNqNoOlSFJmejfU0s+Dcs/9qwnSZSbbG HzcGFzOXgiwTLm/uqJ3tv9fHzQ0OmAkNx9SKsJ7UdpGpnqFlvYMCKiBOKdd+WNrnpQdcQ9 lGYyFp0poTQJ2bn2hccdCrjWW+j00yWxGjZNKlOXoy6hGbkR06ks+KyyCzXNNefDwf/eIb xUaUr91FcYIs9UI3EekijSny4a6zmUrQCneytQ5ZMfj1PJoaBl2xj/YoV1rj8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1668256906; a=rsa-sha256; cv=none; b=yB1kFK4phNLJjgBu9IAJq66/s6BuH89q7XiWYcU/sUPZsGBnDcPgaQ8o2NPtLyebbcHOHm nwYR4vtwj/rUCh09eaEFfPkjXax02huJrGFEvSLYkQKAM3TZT76lIUg79zQuub5fL6G1QL TdClVza9vQ98tpN25dCfvRmsOaTp6Y2q7XWmL88AKwcg9eFgLuXbMTCAhkUomMiNEqFnzp S0PE7dUJwLMwrDniO4oCYJxTSVzdiXEd/hjmQXYTBp/YVDfWzMzWehRNeh40nNZH9HSIQa 0ShDt6U2V0ScG4yoRAA3Se+NKnkt3GCJzz/qgMkGB0e2j3+/Ars6sSZDxMf60A== 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 4N8ZvZ0XtfzNTs; Sat, 12 Nov 2022 12:41:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2ACCfkdZ054823; Sat, 12 Nov 2022 12:41:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2ACCfkv8054822; Sat, 12 Nov 2022 12:41:46 GMT (envelope-from git) Date: Sat, 12 Nov 2022 12:41:46 GMT Message-Id: <202211121241.2ACCfkv8054822@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Hans Petter Selasky Subject: git: 98be2ec6df2c - stable/13 - time(3): Declare the minimum and maximum hz values supported. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: hselasky X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 98be2ec6df2cbce44271c8a096dff814d949fc75 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by hselasky: URL: https://cgit.FreeBSD.org/src/commit/?id=98be2ec6df2cbce44271c8a096dff814d949fc75 commit 98be2ec6df2cbce44271c8a096dff814d949fc75 Author: Hans Petter Selasky AuthorDate: 2022-10-03 09:08:53 +0000 Commit: Hans Petter Selasky CommitDate: 2022-11-12 11:59:40 +0000 time(3): Declare the minimum and maximum hz values supported. Reviewed by: kib@ and imp@ Sponsored by: NVIDIA Networking Differential Revision: https://reviews.freebsd.org/D37072 (cherry picked from commit ee29897fc3d66ba7006c9ee3f524bf2e8cf30a4f) --- sys/kern/subr_param.c | 11 +++++++++++ sys/sys/time.h | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c index 9c07fa7c7157..94b60a6e5538 100644 --- a/sys/kern/subr_param.c +++ b/sys/kern/subr_param.c @@ -115,6 +115,10 @@ u_long sgrowsiz; /* amount to grow stack */ SYSCTL_INT(_kern, OID_AUTO, hz, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, &hz, 0, "Number of clock ticks per second"); +SYSCTL_INT(_kern, OID_AUTO, hz_max, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, HZ_MAXIMUM, + "Maximum hz value supported"); +SYSCTL_INT(_kern, OID_AUTO, hz_min, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, HZ_MINIMUM, + "Minimum hz value supported"); SYSCTL_INT(_kern, OID_AUTO, nbuf, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, &nbuf, 0, "Number of buffers in the buffer cache"); SYSCTL_INT(_kern, OID_AUTO, nswbuf, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, &nswbuf, 0, @@ -177,6 +181,13 @@ init_param1(void) TUNABLE_INT_FETCH("kern.hz", &hz); if (hz == -1) hz = vm_guest > VM_GUEST_NO ? HZ_VM : HZ; + + /* range check the "hz" value */ + if (__predict_false(hz < HZ_MINIMUM)) + hz = HZ_MINIMUM; + else if (__predict_false(hz > HZ_MAXIMUM)) + hz = HZ_MAXIMUM; + tick = 1000000 / hz; tick_sbt = SBT_1S / hz; tick_bt = sbttobt(tick_sbt); diff --git a/sys/sys/time.h b/sys/sys/time.h index 41d84aab5640..5d7f3f07234e 100644 --- a/sys/sys/time.h +++ b/sys/sys/time.h @@ -583,6 +583,13 @@ void timevaladd(struct timeval *t1, const struct timeval *t2); void timevalsub(struct timeval *t1, const struct timeval *t2); int tvtohz(struct timeval *tv); +/* + * The following HZ limits allow the tvtohz() function + * to only use integer computations. + */ +#define HZ_MAXIMUM (INT_MAX / (1000000 >> 6)) /* 137kHz */ +#define HZ_MINIMUM 8 /* hz */ + #define TC_DEFAULTPERC 5 #define BT2FREQ(bt) \