[PATCH] coresight replicator: set default y after Kconfig rename

Kim Phillips kim.phillips at arm.com
Thu Feb 8 13:07:18 PST 2018


On Thu, 8 Feb 2018 11:53:44 -0800
Randy Dunlap <rdunlap at infradead.org> wrote:

> On 02/08/2018 11:23 AM, Kim Phillips wrote:
> > On Thu, 8 Feb 2018 16:13:16 +0000
> > Robin Murphy <robin.murphy at arm.com> wrote:
> > 
> >> On 07/02/18 21:03, Kim Phillips wrote:
> >>> Commit 1c8859848dbb ("coresight replicator: Cleanup programmable
> >>> replicator naming") changed the Kconfig symbol name from
> >>> QCOM_REPLICATOR, which, whilst not in the single arm64 defconfig,
> >>> was being set in my juno build script, which left the new symbol unset,
> >>> causing the following unexpected grief:
> >>>
> >>>   # ./perf record -vvv -C 0 -e cs_etm/@20070000.etr/ --per-thread true
> >>>   ..<snip>..
> >>>   sys_perf_event_open: pid -1  cpu 0  group_fd -1  flags 0x8 = 5
> >>>   mmap size 528384B
> >>>   AUX area mmap length 4194304
> >>>   perf event ring buffer mmapped per cpu
> >>>   failed to mmap AUX area
> >>>   failed to mmap with 12 (Cannot allocate memory)
> >>>
> >>> Make it default y to help not surprise unsuspecting users.
> >>
> >> How many users are there relying on your Juno build script? :P
> > 
> > This shouldn't be that uncommon for coresight users:
> > 
> > make defconfig
> > scripts/config -e CONFIG_CORESIGHT
> > scripts/config -e CONFIG_CORESIGHT_LINK_AND_SINK_TMC
> > scripts/config -e CONFIG_CORESIGHT_SINK_TPIU
> > scripts/config -e CONFIG_CORESIGHT_SINK_ETBV10
> > scripts/config -e CONFIG_CORESIGHT_LINKS_AND_SINKS
> > scripts/config -e CONFIG_CORESIGHT_SOURCE_ETM3X
> > scripts/config -e CONFIG_CORESIGHT_SOURCE_ETM4X
> > #scripts/config -e CONFIG_CORESIGHT_QCOM_REPLICATOR
> > scripts/config -e CONFIG_CORESIGHT_DYNAMIC_REPLICATOR
> > scripts/config -e CONFIG_CORESIGHT_STM
> > scripts/config -e CONFIG_CORESIGHT_CPU_DEBUG
> > 
> > FWIW, Mathieu - who helped me track the cannot allocate memory problem
> > down to this config symbol - has also benn caught by this issue.
> > 
> >>> Fixes: 1c8859848dbb ("coresight replicator: Cleanup programmable replicator naming")
> >>
> >> Before that commit, CORESIGHT_QCOM_REPLICATOR was not "default y", nor 
> >> selected by any in-tree configs, so whatever the problem may be this is 
> >> clearly not the correct fix.
> > 
> > Well, there's only one defconfig for arm64.  I don't know why it
> > doesn't set CORESIGHT, but you're right, this is taking the build fix
> > one step further to facilitate user coresight configuration.  I can
> > change the patch to make the change to the arm64 defconfig, but I still
> > believe CORESIGHT_DYNAMIC_REPLICATOR should be default=y, and the
> > defconfig just set CORESIGHT.
> > 
> >>> Cc: Mathieu Poirier <mathieu.poirier at linaro.org>
> >>> Cc: Suzuki K Poulose <suzuki.poulose at arm.com>
> >>> Signed-off-by: Kim Phillips <kim.phillips at arm.com>
> >>> ---
> >>>   drivers/hwtracing/coresight/Kconfig | 1 +
> >>>   1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/drivers/hwtracing/coresight/Kconfig b/drivers/hwtracing/coresight/Kconfig
> >>> index ef9cb3c164e1..b94bbd95efa6 100644
> >>> --- a/drivers/hwtracing/coresight/Kconfig
> >>> +++ b/drivers/hwtracing/coresight/Kconfig
> >>> @@ -73,6 +73,7 @@ config CORESIGHT_SOURCE_ETM4X
> >>>   config CORESIGHT_DYNAMIC_REPLICATOR
> >>>   	bool "CoreSight Programmable Replicator driver"
> >>>   	depends on CORESIGHT_LINKS_AND_SINKS
> >>> +	default y
> >>
> >> CORESIGHT_LINKS_AND_SINKS is "default n" (as indeed is CORESIGHT), and 
> >> not selected by any defconfigs, so in general this doesn't really help 
> >> anyway.
> > 
> > Yeah, CORESIGHT_LINKS_AND_SINKS should probably be default y too.
> 
> Are they required for system operation?  If not, they should not default to y.

They're not required for general purpose system operation: they're
protected by an if CORESIGHT.  All the other CORESIGHT symbols select
CORESIGHT_LINKS_AND_SINKS except CORESIGHT_CPU_DEBUG, which doesn't
need to be protected by the if CORESIGHT.

> and if they are required, it seems odd that they are in drivers/hwtracing/.

Right, they are required for tracing using the Coresight subsystem, not
general purpose system operation, so they can be 'default y' under 'if
CORESIGHT' protection.

Kim



More information about the linux-arm-kernel mailing list