2022-02-07 13:51:08

by Leo Yan

[permalink] [raw]
Subject: [PATCH v2 RESEND 0/4] coresight: etm: Correct PID tracing for non-root namespace

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(-)

--
2.25.1



2022-02-25 17:03:11

by Suzuki K Poulose

[permalink] [raw]
Subject: Re: [PATCH v2 RESEND 0/4] coresight: etm: Correct PID tracing for non-root namespace

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

2022-02-28 08:03:44

by Leo Yan

[permalink] [raw]
Subject: Re: [PATCH v2 RESEND 0/4] coresight: etm: Correct PID tracing for non-root namespace

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!