mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghuay@nvidia.com>,
	"Maciej Wieczor-Retman" <maciej.wieczor-retman@intel.com>,
	Peter Newman <peternewman@google.com>,
	James Morse <james.morse@arm.com>,
	Babu Moger <babu.moger@amd.com>,
	Drew Fustini <dfustini@baylibre.com>,
	Dave Martin <Dave.Martin@arm.com>, Chen Yu <yu.c.chen@intel.com>
Cc: <x86@kernel.org>, <linux-kernel@vger.kernel.org>,
	<patches@lists.linux.dev>
Subject: Re: [PATCH v16 00/32] x86,fs/resctrl telemetry monitoring
Date: Tue, 16 Dec 2025 13:46:02 -0800	[thread overview]
Message-ID: <45876597-85cf-4613-ac37-22a01a42adca@intel.com> (raw)
In-Reply-To: <20251210231413.59102-1-tony.luck@intel.com>

Hi Tony,

On 12/10/25 3:13 PM, Tony Luck wrote:

...

> Background
> ----------
> On Intel systems that support per-RMID telemetry monitoring each logical
> processor keeps a local count for various events. When the
> MSR_IA32_PQR_ASSOC.RMID value for the logical processor changes (or when a
> two millisecond counter expires) these event counts are transmitted to
> an event aggregator on the same package as the processor together with
> the current RMID value. The event counters are reset to zero to begin
> counting again.
> 
> Each aggregator takes the incoming event counts and adds them to
> cumulative counts for each event for each RMID. Note that there can be
> multiple aggregators on each package with no architectural association
> between logical processors and an aggregator.
> 
> All of these aggregated counters can be read by an operating system from
> the MMIO space of the Out Of Band Management Service Module (OOBMSM)
> device(s) on a system. Any counter can be read from any logical processor.
> 
> Intel publishes details for each processor generation showing which
> events are counted by each logical processor and the offsets for each
> accumulated counter value within the MMIO space in XML files here:
> https://github.com/intel/Intel-PMT.
> 
> For example there are two energy related telemetry events for the
> Clearwater Forest family of processors and the MMIO space looks like this:
> 
> Offset  RMID    Event
> ------  ----    -----
> 0x0000  0       core_energy
> 0x0008  0       activity
> 0x0010  1       core_energy
> 0x0018  1       activity
> ...
> 0x23F0  575     core_energy
> 0x23F8  575     activity
> 
> In addition the XML file provides the units (Joules for core_energy,
> Farads for activity) and the type of data (fixed-point binary with
> bit 63 used to indicate the data is valid, and the low 18 bits as a
> binary fraction).
> 
> Finally, each XML file provides a 32-bit unique id (or guid) that is
> used as an index to find the correct XML description file for each
> telemetry implementation.
> 
> The INTEL_PMT_TELEMETRY driver provides intel_pmt_get_regions_by_feature()
> to enumerate the aggregator instances (also referred to as "telemetry
> regions" in this series) on a platform. It provides:
> 
> 1) guid  - so resctrl can determine which events are supported
> 2) MMIO base address of counters
> 3) package id
> 
> Resctrl accumulates counts from all aggregators on a package in order
> to provide a consistent user interface across processor generations.
> 
> Directory structure for the telemetry events looks like this:
> 
> $ tree /sys/fs/resctrl/mon_data/
> /sys/fs/resctrl/mon_data/
> mon_data
> ├── mon_PERF_PKG_00
> │   ├── activity
> │   └── core_energy
> └── mon_PERF_PKG_01
>     ├── activity
>     └── core_energy
> 
> Reading the "core_energy" file from some resctrl mon_data directory shows
> the cumulative energy (in Joules) used by all tasks that ran with the RMID
> associated with that directory on a given package. Note that "core_energy"
> reports only energy consumed by CPU cores (data processing units,
> L1/L2 caches, etc.). It does not include energy used in the "uncore"
> (L3 cache, on package devices, etc.), or used by memory or I/O devices.
> 
> Signed-off-by: Tony Luck <tony.luck@intel.com>
> 

From what I can tell the changes referred to in [1] are not present. Looking
at the cover letter it has one title "Background". How about a new section
that separates description of the implementation from the background and includes
the additions Babu requested in [2]? I believe resctrl.rst already covers the new files (and did
so at the time of the request) so I do not think any more additions to resctrl.rst
are needed to address that feedback.

Reinette

[1] https://lore.kernel.org/lkml/SJ1PR11MB6083CFADE3EF56796BA43097FCC5A@SJ1PR11MB6083.namprd11.prod.outlook.com/
[2] https://lore.kernel.org/lkml/9b0d336b-dd12-4e4a-b324-75734dbe6002@amd.com/

      parent reply	other threads:[~2025-12-16 21:46 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-10 23:13 Tony Luck
2025-12-10 23:13 ` [PATCH v16 01/32] x86,fs/resctrl: Improve domain type checking Tony Luck
2025-12-10 23:13 ` [PATCH v16 02/32] x86/resctrl: Move L3 initialization into new helper function Tony Luck
2025-12-10 23:13 ` [PATCH v16 03/32] x86/resctrl: Refactor domain_remove_cpu_mon() ready for new domain types Tony Luck
2025-12-10 23:13 ` [PATCH v16 04/32] x86/resctrl: Clean up domain_remove_cpu_ctrl() Tony Luck
2025-12-10 23:13 ` [PATCH v16 05/32] x86,fs/resctrl: Refactor domain create/remove using struct rdt_domain_hdr Tony Luck
2025-12-10 23:13 ` [PATCH v16 06/32] fs/resctrl: Split L3 dependent parts out of __mon_event_count() Tony Luck
2025-12-10 23:13 ` [PATCH v16 07/32] x86,fs/resctrl: Use struct rdt_domain_hdr when reading counters Tony Luck
2025-12-10 23:13 ` [PATCH v16 08/32] x86,fs/resctrl: Rename struct rdt_mon_domain and rdt_hw_mon_domain Tony Luck
2025-12-10 23:13 ` [PATCH v16 09/32] x86,fs/resctrl: Rename some L3 specific functions Tony Luck
2025-12-10 23:13 ` [PATCH v16 10/32] fs/resctrl: Make event details accessible to functions when reading events Tony Luck
2025-12-10 23:13 ` [PATCH v16 11/32] x86,fs/resctrl: Handle events that can be read from any CPU Tony Luck
2025-12-16 21:46   ` Reinette Chatre
2025-12-10 23:13 ` [PATCH v16 12/32] x86,fs/resctrl: Support binary fixed point event counters Tony Luck
2025-12-10 23:13 ` [PATCH v16 13/32] x86,fs/resctrl: Add an architectural hook called for each mount Tony Luck
2025-12-10 23:13 ` [PATCH v16 14/32] x86,fs/resctrl: Add and initialize a resource for package scope monitoring Tony Luck
2025-12-10 23:13 ` [PATCH v16 15/32] fs/resctrl: Emphasize that L3 monitoring resource is required for summing domains Tony Luck
2025-12-10 23:13 ` [PATCH v16 16/32] x86/resctrl: Discover hardware telemetry events Tony Luck
2025-12-10 23:13 ` [PATCH v16 17/32] x86,fs/resctrl: Fill in details of events for guid 0x26696143 and 0x26557651 Tony Luck
2025-12-10 23:13 ` [PATCH v16 18/32] x86,fs/resctrl: Add architectural event pointer Tony Luck
2025-12-10 23:13 ` [PATCH v16 19/32] x86/resctrl: Find and enable usable telemetry events Tony Luck
2025-12-16 21:47   ` Reinette Chatre
2025-12-10 23:13 ` [PATCH v16 20/32] x86/resctrl: Read " Tony Luck
2025-12-10 23:14 ` [PATCH v16 21/32] fs/resctrl: Refactor mkdir_mondata_subdir() Tony Luck
2025-12-10 23:14 ` [PATCH v16 22/32] fs/resctrl: Refactor rmdir_mondata_subdir_allrdtgrp() Tony Luck
2025-12-10 23:14 ` [PATCH v16 23/32] x86,fs/resctrl: Handle domain creation/deletion for RDT_RESOURCE_PERF_PKG Tony Luck
2025-12-10 23:14 ` [PATCH v16 24/32] x86/resctrl: Add energy/perf choices to rdt boot option Tony Luck
2025-12-16 21:46   ` Reinette Chatre
2025-12-10 23:14 ` [PATCH v16 25/32] x86/resctrl: Handle number of RMIDs supported by RDT_RESOURCE_PERF_PKG Tony Luck
2025-12-16 21:46   ` Reinette Chatre
2025-12-10 23:14 ` [PATCH v16 26/32] fs/resctrl: Move allocation/free of closid_num_dirty_rmid[] Tony Luck
2025-12-10 23:14 ` [PATCH v16 27/32] x86,fs/resctrl: Compute number of RMIDs as minimum across resources Tony Luck
2025-12-10 23:14 ` [PATCH v16 28/32] fs/resctrl: Move RMID initialization to first mount Tony Luck
2025-12-10 23:14 ` [PATCH v16 29/32] x86/resctrl: Enable RDT_RESOURCE_PERF_PKG Tony Luck
2025-12-10 23:14 ` [PATCH v16 30/32] fs/resctrl: Provide interface to create architecture specific debugfs area Tony Luck
2025-12-10 23:14 ` [PATCH v16 31/32] x86/resctrl: Add debugfs files to show telemetry aggregator status Tony Luck
2025-12-10 23:14 ` [PATCH v16 32/32] x86,fs/resctrl: Update documentation for telemetry events Tony Luck
2025-12-16 21:48   ` Reinette Chatre
2025-12-16 21:46 ` Reinette Chatre [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45876597-85cf-4613-ac37-22a01a42adca@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=dfustini@baylibre.com \
    --cc=fenghuay@nvidia.com \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.wieczor-retman@intel.com \
    --cc=patches@lists.linux.dev \
    --cc=peternewman@google.com \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=yu.c.chen@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®