mbox series

[v2,0/4] coresight: etm: Correct PID tracing for non-root namespace

Message ID 20211213121323.1887180-1-leo.yan@linaro.org (mailing list archive)
Headers show
Series coresight: etm: Correct PID tracing for non-root namespace | expand

Message

Leo Yan Dec. 13, 2021, 12:13 p.m. UTC
If a profiling program runs in a non-root PID namespace, if CoreSight
driver enables PID tracing (with contextID), it can lead to mismatching
issue between the context ID traced in hardware (from the root
namespace) and the PIDs gathered by profiling tool (e.g. perf) in its
non-root namespace.

CoreSight driver has tried to address this issue for the contextID
related interfaces under sysfs, but it misses to prevent user to set
VMID (virtual contextID) for kernel runs in EL2 with VHE; furthermore,
it misses to handle the case when the profiling tool runs in the
non-root PID namespace.

For this reason, this patch series is to correct contextID tracing for
non-root namespace.  After applied this patchset, patch 02 doesn't
permit users to access virtual contextID via sysfs nodes in the non-root
PID namespace, patch 03 and 04 stop to trace PID packet for non-root PID
namespace.

This patch is dependent on the patchset "pid: Introduce helper
task_is_in_root_ns()" [1].

[1] https://lore.kernel.org/lkml/20211208083320.472503-1-leo.yan@linaro.org/


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 PID for non-root PID namespace
  coresight: etm3x: Don't trace PID for non-root PID namespace

 .../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 Dec. 14, 2021, 10:59 a.m. UTC | #1
On 13/12/2021 12:13, Leo Yan wrote:
> If a profiling program runs in a non-root PID namespace, if CoreSight
> driver enables PID tracing (with contextID), it can lead to mismatching
> issue between the context ID traced in hardware (from the root
> namespace) and the PIDs gathered by profiling tool (e.g. perf) in its
> non-root namespace.
> 
> CoreSight driver has tried to address this issue for the contextID
> related interfaces under sysfs, but it misses to prevent user to set
> VMID (virtual contextID) for kernel runs in EL2 with VHE; furthermore,
> it misses to handle the case when the profiling tool runs in the
> non-root PID namespace.
> 
> For this reason, this patch series is to correct contextID tracing for
> non-root namespace.  After applied this patchset, patch 02 doesn't
> permit users to access virtual contextID via sysfs nodes in the non-root
> PID namespace, patch 03 and 04 stop to trace PID packet for non-root PID
> namespace.
> 
> This patch is dependent on the patchset "pid: Introduce helper
> task_is_in_root_ns()" [1].
> 
> [1] https://lore.kernel.org/lkml/20211208083320.472503-1-leo.yan@linaro.org/
> 
> 
> 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 PID for non-root PID namespace
>    coresight: etm3x: Don't trace PID for non-root PID namespace
> 

For the series,

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>