From nobody Tue Jun 23 20:53:08 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 4glHMn3LHRz6j65k for ; Tue, 23 Jun 2026 20:53:09 +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 4glHMn0LByz3HM7 for ; Tue, 23 Jun 2026 20:53:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782247989; 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=JAvVgZCJcR/ts1UbsYPF+19qo6Myq+j0ls4hIkX1lVo=; b=vDU3AV4um2LSxpSpA69bfAHoi62HKE7aPrM2uzKReh59+RuKvQIqK//Z4uN5pNOD/LRg6e jyPaHTPNsXolWS0v/nkwl6E/qRRFvx8odb6kzUMZitVxEP3B4VyxWF+CU7hIYPdXtf9HTO g7GuG2Y6YGDV9ujZ+EY5e8P6TSjX9e0IOJgqjCNxBnk27aWfa5Rz7BNGCC473NeBkruZfE AT1kkfNF6lIm/l6qF3U/ywGMsaWRppjGu9sAbo/ChIoDobVix8wk7urwnybw4JUOcVUqkq MD4CHjgKqa+JM82OCdeQYiRJfzPN95Xo8RnVL49iLgNrTQWp4orJEXnqXgucIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782247989; a=rsa-sha256; cv=none; b=WvF9nlsQewPql18z/kADmvPZZllKmPMKM4jVP/WXP+Dx+F99SZM0Y+fyo51a0bIMtR7aXO QRvKHxbFRbEmCvIXID46XJSJ+LUDBGgmz/BctQS78GoO+EO/JvqoAW5xOlFooSGoocYXD/ 2bVcPh3oO37hW89extxkswuoS2MsUQBvfUnknjLX/0pl4Q5lL+VVU0C/lKnb2hpLNUiMAf 4UjtNt7Iw/D2Ynd3FP14KxldmTIusMmpUcD6XP1IAbQ9yEZ5KtnaSVdM2IWatqTaXe+dSU YUDenJpzyhXRlFxh+IlIg8TqPeSYOUoEqzlkcq6LsKy7DSy6AIpxJNuL13jEvg== 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=1782247989; 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=JAvVgZCJcR/ts1UbsYPF+19qo6Myq+j0ls4hIkX1lVo=; b=pP41LboHX/Cjc2U0L39uVQ8mp/galT3Wp7zh95M7g9YK4oZ3K3EBmPrzWA18L5jaDbARjS pB9kSoSogrTwtBZcfLBOH65bZY6Ui45GqRC1dRAgogKaR0cjUMTvzlkKz2dWGc//uMVoxR ibpAaAMLAz9Baw8XzyFJPpUSCRMTBflSLmcW1V9woqFWoA+PYUpSkeTRLzMom0tjUnuEyt 2xSJzhrJeBq+yLUccuX8Vk4N1U34Dh4T/8OEKkjRNaBTzUJtPbpggP8WTNlaW3U8qnu7M6 aNnzJaLXX2OLnk/D2nl7Csr9XpJWhFiU37gitl91X/jqenFcUWbXooWRA4dAFg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4glHMm6Jdqzqc9 for ; Tue, 23 Jun 2026 20:53:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1a24a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 23 Jun 2026 20:53:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: ShengYi Hung Subject: git: 27b24894ec78 - stable/15 - hwpstate_intel: Disable package control on hybrid CPU 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: aokblast X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 27b24894ec7822e7bc2e447bc62384b8f5beb5fa Auto-Submitted: auto-generated Date: Tue, 23 Jun 2026 20:53:08 +0000 Message-Id: <6a3af234.1a24a.598419c1@gitrepo.freebsd.org> The branch stable/15 has been updated by aokblast: URL: https://cgit.FreeBSD.org/src/commit/?id=27b24894ec7822e7bc2e447bc62384b8f5beb5fa commit 27b24894ec7822e7bc2e447bc62384b8f5beb5fa Author: ShengYi Hung AuthorDate: 2026-06-01 09:46:37 +0000 Commit: ShengYi Hung CommitDate: 2026-06-23 20:52:58 +0000 hwpstate_intel: Disable package control on hybrid CPU In package control mode, the performance of all cores depends on the most recent value written to the request field. If the last write comes from an E-core, all cores are forced to align with the E-core performance level, resulting in significant performance degradation. Therefore, package control is disabled on hybrid-core systems. Reviewed by: olce MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Sponsored by: Framework Computer Inc Differential Revision: https://reviews.freebsd.org/D57377 (cherry picked from commit 7b26353a59d66dc1bc611fd042a49b9e3bd13699) --- sys/x86/cpufreq/hwpstate_intel.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/sys/x86/cpufreq/hwpstate_intel.c b/sys/x86/cpufreq/hwpstate_intel.c index 3d2cc0a5966b..db8600d7b89a 100644 --- a/sys/x86/cpufreq/hwpstate_intel.c +++ b/sys/x86/cpufreq/hwpstate_intel.c @@ -321,9 +321,19 @@ out: return (ret); } +static void +intel_hwpstate_hybrid_cb(void *ctx) +{ + uint32_t *small_cores = ctx; + + atomic_add_32(small_cores, PCPU_GET(small_core)); +} + void intel_hwpstate_identify(driver_t *driver, device_t parent) { + uint32_t small_cores = 0; + if (device_find_child(parent, "hwpstate_intel", DEVICE_UNIT_ANY) != NULL) return; @@ -343,6 +353,17 @@ intel_hwpstate_identify(driver_t *driver, device_t parent) if ((cpu_power_eax & CPUTPM1_HWP) == 0) return; + /* + * On hybrid-core systems, package-level control cannot be used. + * It may cause all cores to run at the E-core frequency because + * the resulting package frequency depends on the last core that + * sets the frequency. + */ + smp_rendezvous_cpus(all_cpus, smp_no_rendezvous_barrier, + intel_hwpstate_hybrid_cb, smp_no_rendezvous_barrier, &small_cores); + if (small_cores > 0 && small_cores < mp_ncores) + hwpstate_pkg_ctrl_enable = false; + if (BUS_ADD_CHILD(parent, 10, "hwpstate_intel", device_get_unit(parent)) == NULL) device_printf(parent, "hwpstate_intel: add child failed\n");