Re: [RFC 0/5] perf: Per PMU access controls (paranoid setting)

From: Alexey Budankov
Date: Mon Oct 01 2018 - 02:27:18 EST


Hello Jann and Kees,

On 29.09.2018 1:02, Jann Horn wrote:
<SNIP>
> Ah, I guess the answer is "0", since you want to see data about what
> other users are doing.
>
> Does the i915 PMU expose sampling events, counting events, or both?
> The thing about sampling events is that they AFAIK always let the user
> pick arbitrary data to collect - like register contents, or userspace
> stack memory -, and independent of the performance counter being
> monitored, this kind of access should not be permitted to other
> contexts. (But it might be that I misunderstand how perf works - I'm
> not super familiar with its API.)
>

Currently *core* paranoid >= 1 (per-process mode) prevents simultaneous
sampling on CPU events (perf record) and reading of uncore HW counters
(perf stat -I), because uncore counters count system wide and that is
allowed only when *core* paranoid <= 0.

Uncore counts collected simultaneously with CPU event samples can be
correlated using timestamps taken from some common system clock e.g.
CLOCK_MONOTONIC_RAW.

Could it be secure enough to still allow reading of system wide uncore
HW counters when sampling of CPU events is limited to specific processes
by *core* paranoid >= 1?

Thanks,
Alexey