mbox series

[v1,0/4] coresight: etm: Correct (virtual) contextID tracing for namespace

Message ID 20211031144214.237879-1-leo.yan@linaro.org (mailing list archive)
Headers show
Series coresight: etm: Correct (virtual) contextID tracing for namespace | expand

Message

Leo Yan Oct. 31, 2021, 2:42 p.m. UTC
If a profiling program runs in a non-root PID namespace, if CoreSight
driver enables contextID tracing, it can lead to mismatching issue
between the context ID in hardware trace data and the allocated PID in
the non-root namespace.

CoreSight driver has tried to address this issue for the contextID
related interfaces under sysfs, but it misses other parts: it doesn't
prevent user to set VMID (virtual contextID) for kernel runs in EL2 with
VHE, and furthermore, it misses to handle the perf mode when the
profiling tool (e.g. perf) doesn't run in root PID namespace.

For this reason, this patch series is to correct contextID tracing for
non-root namespace.

Patch 01 is to use spinlock to protect reading virtual context ID
comparator.

Patch 02 corrects the virtual contextID tracing for non-root PID
namespace.

Patch 03/04 are used to fix the contextID tracing for perf mode.

I only verified this patch series on Juno board in the root PID
namespace and confirmed the patches don't introduce any regression for
root PID namespace.


Leo Yan (4):
  coresight: etm4x: Add lock for reading virtual context ID comparator
  coresight: etm4x: Don't use virtual contextID for non-root PID
    namespace
  coresight: etm4x: Don't trace contextID for non-root namespace in perf
    mode
  coresight: etm3x: Don't trace contextID for non-root namespace in perf
    mode

 .../coresight/coresight-etm3x-core.c          |  4 +++
 .../coresight/coresight-etm4x-core.c          | 10 +++++--
 .../coresight/coresight-etm4x-sysfs.c         | 30 +++++++++++++++++++
 3 files changed, 42 insertions(+), 2 deletions(-)

Comments

Suzuki K Poulose Nov. 16, 2021, 1:52 p.m. UTC | #1
Hi Leo


On 31/10/2021 14:42, Leo Yan wrote:
> If a profiling program runs in a non-root PID namespace, if CoreSight
> driver enables contextID tracing, it can lead to mismatching issue
> between the context ID in hardware trace data and the allocated PID in
> the non-root namespace.
> 
> CoreSight driver has tried to address this issue for the contextID
> related interfaces under sysfs, but it misses other parts: it doesn't
> prevent user to set VMID (virtual contextID) for kernel runs in EL2 with
> VHE, and furthermore, it misses to handle the perf mode when the
> profiling tool (e.g. perf) doesn't run in root PID namespace.
> 
> For this reason, this patch series is to correct contextID tracing for
> non-root namespace.
> 
> Patch 01 is to use spinlock to protect reading virtual context ID
> comparator.
> 
> Patch 02 corrects the virtual contextID tracing for non-root PID
> namespace.
> 
> Patch 03/04 are used to fix the contextID tracing for perf mode.
> 
> I only verified this patch series on Juno board in the root PID
> namespace and confirmed the patches don't introduce any regression for
> root PID namespace.
> 

I have finished reviewing the set.

Suzuki