summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAndrew Murray <andrew.murray@arm.com>2019-08-29 14:28:35 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-09-03 22:01:17 +0200
commit1004ce4c255fc3eb3ad9145ddd53547d1b7ce327 (patch)
tree28d7944d8d679b047270499621ff039e4d46f52e /tools
parent6d7651015c16e1ee3576edbb5e88ba24f0f1fe7a (diff)
downloadlinux-1004ce4c255fc3eb3ad9145ddd53547d1b7ce327.tar.gz
linux-1004ce4c255fc3eb3ad9145ddd53547d1b7ce327.tar.bz2
linux-1004ce4c255fc3eb3ad9145ddd53547d1b7ce327.zip
coresight: etm4x: Use explicit barriers on enable/disable
Synchronization is recommended before disabling the trace registers to prevent any start or stop points being speculative at the point of disabling the unit (section 7.3.77 of ARM IHI 0064D). Synchronization is also recommended after programming the trace registers to ensure all updates are committed prior to normal code resuming (section 4.3.7 of ARM IHI 0064D). Let's ensure these syncronization points are present in the code and clearly commented. Note that we could rely on the barriers in CS_LOCK and coresight_disclaim_device_unlocked or the context switch to user space - however coresight may be of use in the kernel. On armv8 the mb macro is defined as dsb(sy) - Given that the etm4x is only used on armv8 let's directly use dsb(sy) instead of mb(). This removes some ambiguity and makes it easier to correlate the code with the TRM. Signed-off-by: Andrew Murray <andrew.murray@arm.com> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com> [Fixed capital letter for "use" in title] Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/20190829202842.580-11-mathieu.poirier@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions