diff mbox

ARM: mcpm: Make all mcpm functions notrace

Message ID 1385976547.3387.2.camel@linaro1.home (mailing list archive)
State New, archived
Headers show

Commit Message

Jon Medhurst (Tixy) Dec. 2, 2013, 9:29 a.m. UTC
From: Dave Martin <dave.martin@linaro.org>

The functions in mcpm_entry.c are mostly intended for use during
scary cache and coherency disabling sequences, or do other things
which confuse trace ... like powering a CPU down and not
returning. Similarly for the backend code.

For simplicity, this patch just makes whole files notrace.
There should be more than enough traceable points on the paths to
these functions, but we can be more fine-grained later if there is
a need for it.

Signed-off-by: Dave Martin <dave.martin@linaro.org>

Also added spc.o to the list of files as it contains functions used by
MCPM code which have comments comments like: "might be used in code
paths where normal cacheable locks are not working"

Signed-off-by: Jon Medhurst <tixy@linaro.org>
---
 arch/arm/common/Makefile        |    1 +
 arch/arm/mach-vexpress/Makefile |    3 +++
 2 files changed, 4 insertions(+)

Comments

Dave Martin Dec. 2, 2013, 5:25 p.m. UTC | #1
Vyacheslav, Tarek, can you add the corresponding change in your Exynos
Dual Cluster support code please?

There's no need for it to be a separate patch, you can simply add
the CFLAGS_REMOVE_ definitions alongside the other Makefile additions
for edcs.  If you want to be more fine-grained, you could mark
individual functions notrace instead -- but that may just add effort
and not be very useful.

Cheers
---Dave

On Mon, Dec 02, 2013 at 09:29:07AM +0000, Jon Medhurst (Tixy) wrote:
> From: Dave Martin <dave.martin@linaro.org>
> 
> The functions in mcpm_entry.c are mostly intended for use during
> scary cache and coherency disabling sequences, or do other things
> which confuse trace ... like powering a CPU down and not
> returning. Similarly for the backend code.
> 
> For simplicity, this patch just makes whole files notrace.
> There should be more than enough traceable points on the paths to
> these functions, but we can be more fine-grained later if there is
> a need for it.
> 
> Signed-off-by: Dave Martin <dave.martin@linaro.org>
> 
> Also added spc.o to the list of files as it contains functions used by
> MCPM code which have comments comments like: "might be used in code
> paths where normal cacheable locks are not working"
> 
> Signed-off-by: Jon Medhurst <tixy@linaro.org>
> ---
>  arch/arm/common/Makefile        |    1 +
>  arch/arm/mach-vexpress/Makefile |    3 +++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile
> index 4bdc416..70b1eff 100644
> --- a/arch/arm/common/Makefile
> +++ b/arch/arm/common/Makefile
> @@ -13,6 +13,7 @@ obj-$(CONFIG_SHARP_SCOOP)	+= scoop.o
>  obj-$(CONFIG_PCI_HOST_ITE8152)  += it8152.o
>  obj-$(CONFIG_ARM_TIMER_SP804)	+= timer-sp.o
>  obj-$(CONFIG_MCPM)		+= mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o
> +CFLAGS_REMOVE_mcpm_entry.o	= -pg
>  AFLAGS_mcpm_head.o		:= -march=armv7-a
>  AFLAGS_vlock.o			:= -march=armv7-a
>  obj-$(CONFIG_TI_PRIV_EDMA)	+= edma.o
> diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
> index 0997e0b..fc649bc 100644
> --- a/arch/arm/mach-vexpress/Makefile
> +++ b/arch/arm/mach-vexpress/Makefile
> @@ -8,8 +8,11 @@ obj-y					:= v2m.o
>  obj-$(CONFIG_ARCH_VEXPRESS_CA9X4)	+= ct-ca9x4.o
>  obj-$(CONFIG_ARCH_VEXPRESS_DCSCB)	+= dcscb.o	dcscb_setup.o
>  CFLAGS_dcscb.o				+= -march=armv7-a
> +CFLAGS_REMOVE_dcscb.o			= -pg
>  obj-$(CONFIG_ARCH_VEXPRESS_SPC)		+= spc.o
> +CFLAGS_REMOVE_spc.o			= -pg
>  obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM)	+= tc2_pm.o
>  CFLAGS_tc2_pm.o				+= -march=armv7-a
> +CFLAGS_REMOVE_tc2_pm.o			= -pg
>  obj-$(CONFIG_SMP)			+= platsmp.o
>  obj-$(CONFIG_HOTPLUG_CPU)		+= hotplug.o
> -- 
> 1.7.10.4
> 
>
Tarek Dakhran Dec. 4, 2013, 8:42 a.m. UTC | #2
Hi, Dave!

On 12/02/2013 09:25 PM, Dave Martin wrote:
> Vyacheslav, Tarek, can you add the corresponding change in your Exynos
> Dual Cluster support code please?
>
> There's no need for it to be a separate patch, you can simply add
> the CFLAGS_REMOVE_ definitions alongside the other Makefile additions
> for edcs.  If you want to be more fine-grained, you could mark
> individual functions notrace instead -- but that may just add effort
> and not be very useful.
>
> Cheers
> ---Dave
>
> On Mon, Dec 02, 2013 at 09:29:07AM +0000, Jon Medhurst (Tixy) wrote:
>> From: Dave Martin <dave.martin@linaro.org>
>>
>> The functions in mcpm_entry.c are mostly intended for use during
>> scary cache and coherency disabling sequences, or do other things
>> which confuse trace ... like powering a CPU down and not
>> returning. Similarly for the backend code.
>>
>> For simplicity, this patch just makes whole files notrace.
>> There should be more than enough traceable points on the paths to
>> these functions, but we can be more fine-grained later if there is
>> a need for it.
>>
>> Signed-off-by: Dave Martin <dave.martin@linaro.org>
>>
>> Also added spc.o to the list of files as it contains functions used by
>> MCPM code which have comments comments like: "might be used in code
>> paths where normal cacheable locks are not working"
>>
>> Signed-off-by: Jon Medhurst <tixy@linaro.org>
>> ---
>>   arch/arm/common/Makefile        |    1 +
>>   arch/arm/mach-vexpress/Makefile |    3 +++
>>   2 files changed, 4 insertions(+)
>>
>> diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile
>> index 4bdc416..70b1eff 100644
>> --- a/arch/arm/common/Makefile
>> +++ b/arch/arm/common/Makefile
>> @@ -13,6 +13,7 @@ obj-$(CONFIG_SHARP_SCOOP)	+= scoop.o
>>   obj-$(CONFIG_PCI_HOST_ITE8152)  += it8152.o
>>   obj-$(CONFIG_ARM_TIMER_SP804)	+= timer-sp.o
>>   obj-$(CONFIG_MCPM)		+= mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o
>> +CFLAGS_REMOVE_mcpm_entry.o	= -pg
>>   AFLAGS_mcpm_head.o		:= -march=armv7-a
>>   AFLAGS_vlock.o			:= -march=armv7-a
>>   obj-$(CONFIG_TI_PRIV_EDMA)	+= edma.o
>> diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
>> index 0997e0b..fc649bc 100644
>> --- a/arch/arm/mach-vexpress/Makefile
>> +++ b/arch/arm/mach-vexpress/Makefile
>> @@ -8,8 +8,11 @@ obj-y					:= v2m.o
>>   obj-$(CONFIG_ARCH_VEXPRESS_CA9X4)	+= ct-ca9x4.o
>>   obj-$(CONFIG_ARCH_VEXPRESS_DCSCB)	+= dcscb.o	dcscb_setup.o
>>   CFLAGS_dcscb.o				+= -march=armv7-a
>> +CFLAGS_REMOVE_dcscb.o			= -pg
>>   obj-$(CONFIG_ARCH_VEXPRESS_SPC)		+= spc.o
>> +CFLAGS_REMOVE_spc.o			= -pg
>>   obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM)	+= tc2_pm.o
>>   CFLAGS_tc2_pm.o				+= -march=armv7-a
>> +CFLAGS_REMOVE_tc2_pm.o			= -pg
>>   obj-$(CONFIG_SMP)			+= platsmp.o
>>   obj-$(CONFIG_HOTPLUG_CPU)		+= hotplug.o
>> -- 
>> 1.7.10.4
>>
>>

Will be done in next version.

Best regards,
     Tarek Dakhran.
Dave Martin Dec. 4, 2013, 12:48 p.m. UTC | #3
On Wed, Dec 04, 2013 at 12:42:23PM +0400, Tarek Dakhran wrote:
> Hi, Dave!
> 
> On 12/02/2013 09:25 PM, Dave Martin wrote:
> >Vyacheslav, Tarek, can you add the corresponding change in your Exynos
> >Dual Cluster support code please?
> >
> >There's no need for it to be a separate patch, you can simply add
> >the CFLAGS_REMOVE_ definitions alongside the other Makefile additions
> >for edcs.  If you want to be more fine-grained, you could mark
> >individual functions notrace instead -- but that may just add effort
> >and not be very useful.
> >

[...]

> 
> Will be done in next version.

Thanks
---Dave
diff mbox

Patch

diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile
index 4bdc416..70b1eff 100644
--- a/arch/arm/common/Makefile
+++ b/arch/arm/common/Makefile
@@ -13,6 +13,7 @@  obj-$(CONFIG_SHARP_SCOOP)	+= scoop.o
 obj-$(CONFIG_PCI_HOST_ITE8152)  += it8152.o
 obj-$(CONFIG_ARM_TIMER_SP804)	+= timer-sp.o
 obj-$(CONFIG_MCPM)		+= mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o
+CFLAGS_REMOVE_mcpm_entry.o	= -pg
 AFLAGS_mcpm_head.o		:= -march=armv7-a
 AFLAGS_vlock.o			:= -march=armv7-a
 obj-$(CONFIG_TI_PRIV_EDMA)	+= edma.o
diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
index 0997e0b..fc649bc 100644
--- a/arch/arm/mach-vexpress/Makefile
+++ b/arch/arm/mach-vexpress/Makefile
@@ -8,8 +8,11 @@  obj-y					:= v2m.o
 obj-$(CONFIG_ARCH_VEXPRESS_CA9X4)	+= ct-ca9x4.o
 obj-$(CONFIG_ARCH_VEXPRESS_DCSCB)	+= dcscb.o	dcscb_setup.o
 CFLAGS_dcscb.o				+= -march=armv7-a
+CFLAGS_REMOVE_dcscb.o			= -pg
 obj-$(CONFIG_ARCH_VEXPRESS_SPC)		+= spc.o
+CFLAGS_REMOVE_spc.o			= -pg
 obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM)	+= tc2_pm.o
 CFLAGS_tc2_pm.o				+= -march=armv7-a
+CFLAGS_REMOVE_tc2_pm.o			= -pg
 obj-$(CONFIG_SMP)			+= platsmp.o
 obj-$(CONFIG_HOTPLUG_CPU)		+= hotplug.o