mbox series

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

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

Message

Leo Yan Feb. 4, 2022, 3:23 p.m. UTC
If a profiling program runs in a non-root PID namespace and 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 series has been rebased on the mainline kernel and applied
cleanly on latest commit dcb85f85fa6f ("gcc-plugins/stackleak: Use
noinstr in favor of notrace").


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 Feb. 25, 2022, 1:52 p.m. UTC | #1
On 04/02/2022 15:23, Leo Yan wrote:
> If a profiling program runs in a non-root PID namespace and 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 series has been rebased on the mainline kernel and applied
> cleanly on latest commit dcb85f85fa6f ("gcc-plugins/stackleak: Use
> noinstr in favor of notrace").
> 
> 
> 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(-)
> 

I have queued the series to coresight/next.

Kind regards
Suzuki
Leo Yan Feb. 28, 2022, 6:17 a.m. UTC | #2
On Fri, Feb 25, 2022 at 01:52:27PM +0000, Suzuki Kuruppassery Poulose wrote:

[...]

> > This patch series has been rebased on the mainline kernel and applied
> > cleanly on latest commit dcb85f85fa6f ("gcc-plugins/stackleak: Use
> > noinstr in favor of notrace").
> > 
> > 
> > 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(-)
> > 
> 
> I have queued the series to coresight/next.

Thanks, Suzuki!