Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c13d38e4 authored by Srivatsa S. Bhat's avatar Srivatsa S. Bhat Committed by Ingo Molnar
Browse files

perf, cpu hotplug: Use cached value of smp_processor_id()



The perf_cpu_notifier() macro invokes smp_processor_id()
multiple times. Optimize it by using a local variable.

Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Reviewed-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: peterz@infradead.org
Cc: acme@ghostprotocols.net
Link: http://lkml.kernel.org/r/20121016075817.3572.76733.stgit@srivatsabhat.in.ibm.com


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 6760bca9
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -803,15 +803,16 @@ static inline void perf_event_task_tick(void) { }
do {									\
	static struct notifier_block fn##_nb __cpuinitdata =		\
		{ .notifier_call = fn, .priority = CPU_PRI_PERF };	\
	unsigned long cpu = smp_processor_id();				\
	unsigned long flags;						\
	fn(&fn##_nb, (unsigned long)CPU_UP_PREPARE,			\
		(void *)(unsigned long)smp_processor_id());		\
		(void *)(unsigned long)cpu);				\
	local_irq_save(flags);						\
	fn(&fn##_nb, (unsigned long)CPU_STARTING,			\
		(void *)(unsigned long)smp_processor_id());		\
		(void *)(unsigned long)cpu);				\
	local_irq_restore(flags);					\
	fn(&fn##_nb, (unsigned long)CPU_ONLINE,				\
		(void *)(unsigned long)smp_processor_id());		\
		(void *)(unsigned long)cpu);				\
	register_cpu_notifier(&fn##_nb);				\
} while (0)