Message ID | 20250430110347.2091013-1-quic_jinlmao@quicinc.com |
---|---|
State | New |
Headers | show |
Series | coresight: Disable MMIO logging for coresight stm driver | expand |
On 2025/4/30 21:51, Suzuki K Poulose wrote: > Hi, > > On 30/04/2025 12:03, Mao Jinlong wrote: >> When read/write registers with readl_relaxed and writel_relaxed, >> log_read_mmio and log_write_mmio will be called. If mmio trace >> is enabled to STM, STM driver will write the register to send the >> trace and writel_relaxed will be called again. The circular call >> like callstack below will happen. Disable mmio logging for stm >> driver to avoid this issue. >> > > Thanks for the fix, looks good to me. However, I think the commit > description is a bit cryptic. Could we say : > > With MMIO logging enabled, the MMIO access are traced and could be > sent to an STM device. Thus, an STM driver MMIO access could create > circular call chain with MMIO logging. Disable it for STM driver. > > Suzuki I will update it. > >> [] stm_source_write[stm_core]+0xc4 >> [] stm_ftrace_write[stm_ftrace]+0x40 >> [] trace_event_buffer_commit+0x238 >> [] trace_event_raw_event_rwmmio_rw_template+0x8c >> [] log_post_write_mmio+0xb4 >> [] writel_relaxed[coresight_stm]+0x80 >> [] stm_generic_packet[coresight_stm]+0x1a8 >> [] stm_data_write[stm_core]+0x78 >> [] ost_write[stm_p_ost]+0xc8 >> [] stm_source_write[stm_core]+0x7c >> [] stm_ftrace_write[stm_ftrace]+0x40 >> [] trace_event_buffer_commit+0x238 >> [] trace_event_raw_event_rwmmio_read+0x84 >> [] log_read_mmio+0xac >> [] readl_relaxed[coresight_tmc]+0x50 >> >> Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com> >> --- >> drivers/hwtracing/coresight/Makefile | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/hwtracing/coresight/Makefile b/drivers/hwtracing/ >> coresight/Makefile >> index 4ba478211b31..f3158266f75e 100644 >> --- a/drivers/hwtracing/coresight/Makefile >> +++ b/drivers/hwtracing/coresight/Makefile >> @@ -22,6 +22,8 @@ condflags := \ >> $(call cc-option, -Wstringop-truncation) >> subdir-ccflags-y += $(condflags) >> +CFLAGS_coresight-stm.o := -D__DISABLE_TRACE_MMIO__ >> + >> obj-$(CONFIG_CORESIGHT) += coresight.o >> coresight-y := coresight-core.o coresight-etm-perf.o coresight- >> platform.o \ >> coresight-sysfs.o coresight-syscfg.o coresight-config.o \ >
On 4/30/25 16:33, Mao Jinlong wrote: > When read/write registers with readl_relaxed and writel_relaxed, > log_read_mmio and log_write_mmio will be called. If mmio trace > is enabled to STM, STM driver will write the register to send the > trace and writel_relaxed will be called again. The circular call > like callstack below will happen. Disable mmio logging for stm > driver to avoid this issue. > > [] stm_source_write[stm_core]+0xc4 > [] stm_ftrace_write[stm_ftrace]+0x40 > [] trace_event_buffer_commit+0x238 > [] trace_event_raw_event_rwmmio_rw_template+0x8c > [] log_post_write_mmio+0xb4 > [] writel_relaxed[coresight_stm]+0x80 > [] stm_generic_packet[coresight_stm]+0x1a8 > [] stm_data_write[stm_core]+0x78 > [] ost_write[stm_p_ost]+0xc8 > [] stm_source_write[stm_core]+0x7c > [] stm_ftrace_write[stm_ftrace]+0x40 > [] trace_event_buffer_commit+0x238 > [] trace_event_raw_event_rwmmio_read+0x84 > [] log_read_mmio+0xac > [] readl_relaxed[coresight_tmc]+0x50 > > Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com> > --- > drivers/hwtracing/coresight/Makefile | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/hwtracing/coresight/Makefile b/drivers/hwtracing/coresight/Makefile > index 4ba478211b31..f3158266f75e 100644 > --- a/drivers/hwtracing/coresight/Makefile > +++ b/drivers/hwtracing/coresight/Makefile > @@ -22,6 +22,8 @@ condflags := \ > $(call cc-option, -Wstringop-truncation) > subdir-ccflags-y += $(condflags) > > +CFLAGS_coresight-stm.o := -D__DISABLE_TRACE_MMIO__ > + > obj-$(CONFIG_CORESIGHT) += coresight.o > coresight-y := coresight-core.o coresight-etm-perf.o coresight-platform.o \ > coresight-sysfs.o coresight-syscfg.o coresight-config.o \ As Suzuki mentioned, please do update the commit message. Otherwise LGTM. Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
diff --git a/drivers/hwtracing/coresight/Makefile b/drivers/hwtracing/coresight/Makefile index 4ba478211b31..f3158266f75e 100644 --- a/drivers/hwtracing/coresight/Makefile +++ b/drivers/hwtracing/coresight/Makefile @@ -22,6 +22,8 @@ condflags := \ $(call cc-option, -Wstringop-truncation) subdir-ccflags-y += $(condflags) +CFLAGS_coresight-stm.o := -D__DISABLE_TRACE_MMIO__ + obj-$(CONFIG_CORESIGHT) += coresight.o coresight-y := coresight-core.o coresight-etm-perf.o coresight-platform.o \ coresight-sysfs.o coresight-syscfg.o coresight-config.o \
When read/write registers with readl_relaxed and writel_relaxed, log_read_mmio and log_write_mmio will be called. If mmio trace is enabled to STM, STM driver will write the register to send the trace and writel_relaxed will be called again. The circular call like callstack below will happen. Disable mmio logging for stm driver to avoid this issue. [] stm_source_write[stm_core]+0xc4 [] stm_ftrace_write[stm_ftrace]+0x40 [] trace_event_buffer_commit+0x238 [] trace_event_raw_event_rwmmio_rw_template+0x8c [] log_post_write_mmio+0xb4 [] writel_relaxed[coresight_stm]+0x80 [] stm_generic_packet[coresight_stm]+0x1a8 [] stm_data_write[stm_core]+0x78 [] ost_write[stm_p_ost]+0xc8 [] stm_source_write[stm_core]+0x7c [] stm_ftrace_write[stm_ftrace]+0x40 [] trace_event_buffer_commit+0x238 [] trace_event_raw_event_rwmmio_read+0x84 [] log_read_mmio+0xac [] readl_relaxed[coresight_tmc]+0x50 Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com> --- drivers/hwtracing/coresight/Makefile | 2 ++ 1 file changed, 2 insertions(+)