diff mbox

[RESEND] ARM: mcpm: Make all mcpm functions notrace

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

Commit Message

Jon Medhurst (Tixy) Feb. 13, 2014, 8:26 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

Nicolas Pitre Feb. 13, 2014, 8:42 p.m. UTC | #1
On Thu, 13 Feb 2014, 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>

Acked-by: Nicolas Pitre <nico@linaro.org>

Please send to RMK's patch system.


> ---
>  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
> 
> 
>
Jon Medhurst (Tixy) Feb. 14, 2014, 11:52 a.m. UTC | #2
On Thu, 2014-02-13 at 15:42 -0500, Nicolas Pitre wrote:
> On Thu, 13 Feb 2014, 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>
> 
> Acked-by: Nicolas Pitre <nico@linaro.org>
> 
> Please send to RMK's patch system.

Thanks, added as patch 7962/2 [1]. (My first attempt accidentally
omitted the "From: Dave Martin" line - I hope the patch system
understands such lines).

[1] http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7962/2
Dave Martin Feb. 14, 2014, 1:57 p.m. UTC | #3
On Fri, Feb 14, 2014 at 11:52:01AM +0000, Jon Medhurst (Tixy) wrote:
> On Thu, 2014-02-13 at 15:42 -0500, Nicolas Pitre wrote:
> > On Thu, 13 Feb 2014, 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>
> > 
> > Acked-by: Nicolas Pitre <nico@linaro.org>
> > 
> > Please send to RMK's patch system.
> 
> Thanks, added as patch 7962/2 [1]. (My first attempt accidentally
> omitted the "From: Dave Martin" line - I hope the patch system
> understands such lines).

I won't lost sleep over it if not...

I'd forgotten about this patch, to be honest.

Cheers
---Dave
Sudeep Holla Feb. 14, 2014, 2:33 p.m. UTC | #4
Hi Tixy,

On 13/02/14 08:26, 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"
>

Just realised that spc.c now has OPP functionality too. As the comment above
says this can be fine grained later, but just wanted to mention here. IMO we can
restrict notrace to just below functions in spc.c

ve_spc_cpu_in_wfi
ve_spc_cpu_wakeup_irq
ve_spc_global_wakeup_irq
ve_spc_powerdown
ve_spc_set_resume_addr

Regards,
Sudeep
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