From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4103D224F3 for ; Sun, 2 Aug 2026 16:13:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785687222; cv=none; b=ZprXzOfNRubhZnArThpMYQbaeCN11z9EVxL0aVfgZkYq5salLAbx/sWlEE60pDiKVywOMuqHBxENHMadErgg1Pf0eNvpPVuDah1mXZJlqwNGTzNI6/qkrCBA8dZcjGHDZhXwuxJlq89sCe33GICyvE02XDwJ2683gyugCkYHdBg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785687222; c=relaxed/simple; bh=tkmxYRH0hJ5wvsiNgKf+CYthFHw8NLuycmwYrYGcB6s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FGahg9ic3F0zw0fIQmZht9MTsrlVrlBx3NkauNIPc9cEnb3rXvKNvpVH343qF7fZ/u6J6+hi/kPZH1snZohTaJ+m83tYQWhDwLNBd2Ndw2AZG5PAnr9EXawgrTC7n9cv+Zl4qwy+gUBskP00Bi1EYJNh9aqnOm0CeDq4MxT/83U= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=ZGuKgAmi; arc=none smtp.client-ip=192.198.163.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="ZGuKgAmi" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1785687221; x=1817223221; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tkmxYRH0hJ5wvsiNgKf+CYthFHw8NLuycmwYrYGcB6s=; b=ZGuKgAmi1uyVR8CoT3Sgi5F75bOoG6jnpBlAAhQqRuNMl1H1ykuNq1G4 b93ztyN7+oI8SWvpYRP8EfijcdZYKRlj1qumxlR5PukT6q2C2xTKaKqI1 bIufvc74QO2tdO4iz7uc7AXAq748lgkx1L4wf8oQMYUa3Q2vcrOkCW2Nk x6JHi37L1UFojhQ4diKbw5Ti/Jz5Koi3uZFL4RKnrANa+SuN7I61Vpm+Q PCSeBv9/jZbrWA6EPO4eMMoSP7qV/eNveIYmnROd017XztiT7HxAemNf5 Izz4v11Bi+QHIT0vdh+i54N0uWnOwSDvvxKHMAAHjb1vmY7+bl2pNPYr3 Q==; X-CSE-ConnectionGUID: b+btqaRRTLK7eLqvObNLzQ== X-CSE-MsgGUID: Yi1MdxOtQRmJfbaKy7uf/w== X-IronPort-AV: E=McAfee;i="6800,10657,11863"; a="86361217" X-IronPort-AV: E=Sophos;i="6.25,200,1779174000"; d="scan'208";a="86361217" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Aug 2026 09:13:41 -0700 X-CSE-ConnectionGUID: OJyWjvPRSeGVvrBEf0E6hg== X-CSE-MsgGUID: Tub0lreOQbSz3dAKbSmdnQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,200,1779174000"; d="scan'208";a="264484028" Received: from chenyu-dev.sh.intel.com ([10.239.62.107]) by orviesa003.jf.intel.com with ESMTP; 02 Aug 2026 09:13:38 -0700 From: Chen Yu To: Reinette Chatre , Tony Luck Cc: Ben Horgan , "James Morse" , Dave Martin , Babu Moger , Fenghua Yu , Borislav Petkov , Thomas Gleixner , "Dave Hansen" , Peter Newman , chen.yu@linux.dev, x86@kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 06/31] x86/resctrl: Refactor the monitor read function Date: Mon, 3 Aug 2026 00:03:56 +0800 Message-Id: <2ec3316eb65541f30256d1df05598480665e4942.1785680802.git.yu.c.chen@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Split the monitor read helper into an L3 read path and an AET (Intel Application Energy Telemetry) read path. This makes the two distinct monitoring sources easier to extend independently and prepares the L3 path for ERDT-based MMIO reads. No functional change. Tested-by: Hongyu Ning Signed-off-by: Chen Yu --- arch/x86/kernel/cpu/resctrl/monitor.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c index 794a6fb175e4..30ff6b0293ab 100644 --- a/arch/x86/kernel/cpu/resctrl/monitor.c +++ b/arch/x86/kernel/cpu/resctrl/monitor.c @@ -238,9 +238,9 @@ static u64 get_corrected_val(struct rdt_resource *r, struct rdt_l3_mon_domain *d return chunks * hw_res->mon_scale; } -int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain_hdr *hdr, - u32 unused, u32 rmid, enum resctrl_event_id eventid, - void *arch_priv, u64 *val, void *ignored) +static int arch_l3_read_event(struct rdt_domain_hdr *hdr, u32 rmid, + enum resctrl_event_id eventid, u64 *val, + struct rdt_resource *r) { struct rdt_hw_l3_mon_domain *hw_dom; struct rdt_l3_mon_domain *d; @@ -250,11 +250,6 @@ int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain_hdr *hdr, int cpu; int ret; - resctrl_arch_rmid_read_context_check(); - - if (r->rid == RDT_RESOURCE_PERF_PKG) - return intel_aet_read_event(hdr->id, rmid, arch_priv, val); - if (!domain_header_is_valid(hdr, RESCTRL_MON_DOMAIN, RDT_RESOURCE_L3)) return -EINVAL; @@ -275,6 +270,22 @@ int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain_hdr *hdr, return ret; } +int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain_hdr *hdr, + u32 unused, u32 rmid, enum resctrl_event_id eventid, + void *arch_priv, u64 *val, void *ignored) +{ + resctrl_arch_rmid_read_context_check(); + + switch (r->rid) { + case RDT_RESOURCE_L3: + return arch_l3_read_event(hdr, rmid, eventid, val, r); + case RDT_RESOURCE_PERF_PKG: + return intel_aet_read_event(hdr->id, rmid, arch_priv, val); + default: + return -EINVAL; + } +} + static int __cntr_id_read(u32 cntr_id, u64 *val) { u64 msr_val; -- 2.43.0