[PATCH v5 0/2] coresight: catu: Introduce refcount and spinlock for enabling/disabling

Yabin Cui posted 2 patches 7 months, 3 weeks ago
drivers/hwtracing/coresight/coresight-catu.c | 25 +++++++++++++-------
drivers/hwtracing/coresight/coresight-catu.h |  1 +
drivers/hwtracing/coresight/coresight-core.c | 11 ++++++---
3 files changed, 26 insertions(+), 11 deletions(-)
[PATCH v5 0/2] coresight: catu: Introduce refcount and spinlock for enabling/disabling
Posted by Yabin Cui 7 months, 3 weeks ago
Hi Coresight maintainers,

When tracing ETM data on multiple CPUs concurrently via the
perf interface, the CATU device is shared across different CPU
paths. This can lead to race conditions when multiple CPUs attempt
to enable or disable the CATU device simultaneously. This patchset
is to fix race conditions when enabling/disabling a CATU device.

Changes since v4:
 - Collect Review-by tags.
 - return -EINVAL for unknown types in coresight_enable_path.

Changes since v3:
 - Add newlines between variable definition and guard().
 - Add path parameter when calling coresight_disable_helpers.
 - Use "goto err_disable_helpers" in coresight_enable_path().

Changes since v2:
- In catu_disable(), return 0 when refcnt > 0.
- Remove the patch checking enabled mode.
- Disable helpers at the places where a coresight device fails to
  enable.

Changes since v1:
- Use raw_spinlock_t and guard().
- Add a patch to check enabled mode.
- Add a patch to disable helpers when fails to enable a device.

Yabin Cui (2):
  coresight: catu: Introduce refcount and spinlock for
    enabling/disabling
  coresight: core: Disable helpers for devices that fail to enable

 drivers/hwtracing/coresight/coresight-catu.c | 25 +++++++++++++-------
 drivers/hwtracing/coresight/coresight-catu.h |  1 +
 drivers/hwtracing/coresight/coresight-core.c | 11 ++++++---
 3 files changed, 26 insertions(+), 11 deletions(-)

-- 
2.49.0.967.g6a0df3ecc3-goog
Re: [PATCH v5 0/2] coresight: catu: Introduce refcount and spinlock for enabling/disabling
Posted by Suzuki K Poulose 7 months, 3 weeks ago
On Tue, 29 Apr 2025 16:12:58 -0700, Yabin Cui wrote:
> When tracing ETM data on multiple CPUs concurrently via the
> perf interface, the CATU device is shared across different CPU
> paths. This can lead to race conditions when multiple CPUs attempt
> to enable or disable the CATU device simultaneously. This patchset
> is to fix race conditions when enabling/disabling a CATU device.
> 
> Changes since v4:
>  - Collect Review-by tags.
>  - return -EINVAL for unknown types in coresight_enable_path.
> 
> [...]

Applied, thanks!

[1/2] coresight: catu: Introduce refcount and spinlock for enabling/disabling
      https://git.kernel.org/coresight/c/a03a0a08
[2/2] coresight: core: Disable helpers for devices that fail to enable
      https://git.kernel.org/coresight/c/f6028eee

Best regards,
-- 
Suzuki K Poulose <suzuki.poulose@arm.com>