[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3908561D78D1C84285E8C5FCA982C28F3A2AD5BB@ORSMSX114.amr.corp.intel.com>
Date: Mon, 6 Feb 2017 18:54:27 +0000
From: "Luck, Tony" <tony.luck@...el.com>
To: David Carrillo-Cisneros <davidcc@...gle.com>,
Thomas Gleixner <tglx@...utronix.de>
CC: Vikas Shivappa <vikas.shivappa@...ux.intel.com>,
"Shivappa, Vikas" <vikas.shivappa@...el.com>,
Stephane Eranian <eranian@...gle.com>,
linux-kernel <linux-kernel@...r.kernel.org>,
x86 <x86@...nel.org>, "hpa@...or.com" <hpa@...or.com>,
Ingo Molnar <mingo@...nel.org>,
"Peter Zijlstra" <peterz@...radead.org>,
"Shankar, Ravi V" <ravi.v.shankar@...el.com>,
"Yu, Fenghua" <fenghua.yu@...el.com>,
"Kleen, Andi" <andi.kleen@...el.com>,
"Anvin, H Peter" <h.peter.anvin@...el.com>
Subject: RE: [PATCH 00/12] Cqm2: Intel Cache quality monitoring fixes
Digging through the e-mails from last week to generate a new version
of the requirements I looked harder at this:
> 12) Whatever fs or syscall is provided instead of perf syscalls, it
> should provide total_time_enabled in the way perf does, otherwise is
> hard to interpret MBM values.
This looks tricky if we are piggy-backing on the CAT code to switch
RMID along with CLOSID at context switch time. We could get an
approximation by adding:
if (newRMID != oldRMID) {
now = grab current time in some format
atomic_add(rmid_enabled_time[oldRMID], now - this_cpu_read(rmid_time));
this_cpu_write(rmid_time, now);
}
but:
1) that would only work on a single socket machine (we'd really want rmid_enabled_time
separately for each socket)
2) when we want to read that enabled time, we'd really need to add time for all the
threads currently running on CPUs across the system since we last switched RMID
3) reading the time and doing atomic ops in context switch code won't be popular
:-(
-Tony
Powered by blists - more mailing lists