From nobody Thu Aug 6 22:31:46 2026 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 4hGMTH3Q2Fz6nLtv for ; Thu, 06 Aug 2026 22:31:47 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hGMTG6hpJz4PPT for ; Thu, 06 Aug 2026 22:31:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786055507; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bv9k6jSuDaScrnbSoA4qx1Wqqm0vYbZus+IARMvwGnY=; b=GrUOu43DTp7Un63fF6xyO/lW536UdKKY+VS8yWraKldv/NjGDQVyn4YTyHcVnKebYJTdjn Hvdt6hQiRpBOxl+LMOXw/k5Lb/AVgPUnT3z36mY2r0gd8RYGIdoZpYYLKeQQj+upPPyEsZ MY8pT7L5iqlbln3IrBlmPcJH2go1FZj1iT5PM6hvLCAHXnPsN+lprmLiWvZhhxj97A/8K5 rBO0dfWvIy+cQqgEU+TPsqtmN7QXO9dvx54qCVJG5YCjY/JyJf4E4tZnxrN3+d91rI+oMF +LdC6aBMNEEJvkE4DcpgHtvy+EQaDFc1WWQ32Wf61Kix6UPts3tIJLXtNAqP8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786055507; a=rsa-sha256; cv=none; b=WdCDDRI1GbVFtBEcJTRbSdTu54jvIyJd9+S7+aWE0ueIlfaRKRxDrO4KRFASLAWswijot7 WfWIhp6r3jpOz2OZfFEHzqLBaKNEMRVcOqRWiDymz4T4JLO3Yhz88hz24YDRavNYwzTZ+S 5Df5fsI8/1ztDqYqIkcsZ3UpzCASDywv/BzEHEiFA4cSkGsKLLzO9/81qnWNGj5wj4kmXW +fMXpRMaHc1fIuSxB2eo8fdocZ+9S7zyieuhNZOpP7UbvIEpRvpH74IFbyLbOarVfnCYI6 IM7QB+AH9lE8nrwk0NF+jRkTCWhizrYRRCf5+71bPYYCwqLtk2OIYYz/JiofrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786055507; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bv9k6jSuDaScrnbSoA4qx1Wqqm0vYbZus+IARMvwGnY=; b=gQk9uxMwMyLPKH1VXXD9ZQcWnluXwWKrfmUP8UyxzxP+odvDXSWkbVy+kJpWnN9Wkr+rx8 YVXKQ2I7AN6RA39ZCKsczYFgxeS9MQxIkUqJ+LFdB1mXPUObO/sKJQkjk0INn1XuOxF07s jV8vHKjHWWLyuZX1LNdIjsrAn+fIvNRd258NG8mcBHf0GikiT0ENfC/LCk0nqgGVjiZcMO 008ctQxxSu4mMRaskPAkowjkW0uE/lz/M72fI8nXPITtU9GCNY29xOZu5+Yix7Y87AHZwM 86etfM+ylwNBheGptWpubX8F3+NgngQyUvvwm8l6CW2FE62MD/sIFzJ/S0L61Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hGMTG5n2Tzgsw for ; Thu, 06 Aug 2026 22:31:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f539 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 06 Aug 2026 22:31:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Matt Delco From: Alexander Ziaee Subject: git: 7a068100b4b5 - stable/14 - x86: Guard clock frequency against a divide by 0 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7a068100b4b57ef1db4cec7f3c35e5311617bb85 Auto-Submitted: auto-generated Date: Thu, 06 Aug 2026 22:31:46 +0000 Message-Id: <6a750b52.1f539.2da7e999@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=7a068100b4b57ef1db4cec7f3c35e5311617bb85 commit 7a068100b4b57ef1db4cec7f3c35e5311617bb85 Author: Matt Delco AuthorDate: 2026-03-26 17:22:54 +0000 Commit: Alexander Ziaee CommitDate: 2026-08-06 22:25:02 +0000 x86: Guard clock frequency against a divide by 0 We may be running in a Virtual Machine which may not fully support hardware performance counters. If the MPERF counter somehow ends up at zero, return an error and fail gracefully instead of panicking. This patch is part of Google Cloud Engine (GCE) C4-LSSD turnup. Sponsored by: Google Tested by: NetApp (previous) PR: 292808 MFC after: 3 days Co-authored-by: Aymeric Wibo Co-authored-by: Jim Mattson Suggested by: jrtc27 (split out this part) Reviewed by: imp, obiwac, olce Differential Revision: https://reviews.freebsd.org/D56056 (cherry picked from commit c505fc1468849150f48484b225b6476d8316de57) --- sys/x86/x86/cpu_machdep.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c index 9a188a922fad..dd19c2a46dbb 100644 --- a/sys/x86/x86/cpu_machdep.c +++ b/sys/x86/x86/cpu_machdep.c @@ -426,6 +426,7 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) uint64_t tsc1, tsc2; uint64_t acnt, mcnt, perf; register_t reg; + int error = 0; if (pcpu_find(cpu_id) == NULL || rate == NULL) return (EINVAL); @@ -461,6 +462,11 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) acnt = rdmsr(MSR_APERF); tsc2 = rdtsc(); intr_restore(reg); + if (mcnt == 0) { + tsc_perf_stat = 0; + error = EOPNOTSUPP; + goto err; + } perf = 1000 * acnt / mcnt; *rate = (tsc2 - tsc1) * perf; } else { @@ -471,6 +477,7 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) *rate = (tsc2 - tsc1) * 1000; } +err: #ifdef SMP if (smp_cpus > 1) { thread_lock(curthread); @@ -479,7 +486,7 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) } #endif - return (0); + return (error); } /*