Loading arch/powerpc/kernel/idle.c +2 −10 Original line number Diff line number Diff line Loading @@ -50,12 +50,6 @@ static int __init powersave_off(char *arg) } __setup("powersave=off", powersave_off); #if defined(CONFIG_PPC_PSERIES) && defined(CONFIG_TRACEPOINTS) static const bool idle_uses_rcu = 1; #else static const bool idle_uses_rcu; #endif /* * The body of the idle task. */ Loading @@ -67,7 +61,6 @@ void cpu_idle(void) set_thread_flag(TIF_POLLING_NRFLAG); while (1) { tick_nohz_idle_enter(); if (!idle_uses_rcu) rcu_idle_enter(); while (!need_resched() && !cpu_should_die()) { Loading Loading @@ -106,7 +99,6 @@ void cpu_idle(void) HMT_medium(); ppc64_runlatch_on(); if (!idle_uses_rcu) rcu_idle_exit(); tick_nohz_idle_exit(); preempt_enable_no_resched(); Loading arch/powerpc/platforms/pseries/hvCall.S +2 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ BEGIN_FTR_SECTION; \ b 1f; \ END_FTR_SECTION(0, 1); \ ld r12,hcall_tracepoint_refcount@toc(r2); \ std r12,32(r1); \ cmpdi r12,0; \ beq+ 1f; \ mflr r0; \ Loading Loading @@ -74,7 +75,7 @@ END_FTR_SECTION(0, 1); \ BEGIN_FTR_SECTION; \ b 1f; \ END_FTR_SECTION(0, 1); \ ld r12,hcall_tracepoint_refcount@toc(r2); \ ld r12,32(r1); \ cmpdi r12,0; \ beq+ 1f; \ mflr r0; \ Loading arch/powerpc/platforms/pseries/lpar.c +10 −4 Original line number Diff line number Diff line Loading @@ -546,6 +546,13 @@ void __trace_hcall_entry(unsigned long opcode, unsigned long *args) unsigned long flags; unsigned int *depth; /* * We cannot call tracepoints inside RCU idle regions which * means we must not trace H_CEDE. */ if (opcode == H_CEDE) return; local_irq_save(flags); depth = &__get_cpu_var(hcall_trace_depth); Loading @@ -556,8 +563,6 @@ void __trace_hcall_entry(unsigned long opcode, unsigned long *args) (*depth)++; preempt_disable(); trace_hcall_entry(opcode, args); if (opcode == H_CEDE) rcu_idle_enter(); (*depth)--; out: Loading @@ -570,6 +575,9 @@ void __trace_hcall_exit(long opcode, unsigned long retval, unsigned long flags; unsigned int *depth; if (opcode == H_CEDE) return; local_irq_save(flags); depth = &__get_cpu_var(hcall_trace_depth); Loading @@ -578,8 +586,6 @@ void __trace_hcall_exit(long opcode, unsigned long retval, goto out; (*depth)++; if (opcode == H_CEDE) rcu_idle_exit(); trace_hcall_exit(opcode, retval, retbuf); preempt_enable(); (*depth)--; Loading Loading
arch/powerpc/kernel/idle.c +2 −10 Original line number Diff line number Diff line Loading @@ -50,12 +50,6 @@ static int __init powersave_off(char *arg) } __setup("powersave=off", powersave_off); #if defined(CONFIG_PPC_PSERIES) && defined(CONFIG_TRACEPOINTS) static const bool idle_uses_rcu = 1; #else static const bool idle_uses_rcu; #endif /* * The body of the idle task. */ Loading @@ -67,7 +61,6 @@ void cpu_idle(void) set_thread_flag(TIF_POLLING_NRFLAG); while (1) { tick_nohz_idle_enter(); if (!idle_uses_rcu) rcu_idle_enter(); while (!need_resched() && !cpu_should_die()) { Loading Loading @@ -106,7 +99,6 @@ void cpu_idle(void) HMT_medium(); ppc64_runlatch_on(); if (!idle_uses_rcu) rcu_idle_exit(); tick_nohz_idle_exit(); preempt_enable_no_resched(); Loading
arch/powerpc/platforms/pseries/hvCall.S +2 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ BEGIN_FTR_SECTION; \ b 1f; \ END_FTR_SECTION(0, 1); \ ld r12,hcall_tracepoint_refcount@toc(r2); \ std r12,32(r1); \ cmpdi r12,0; \ beq+ 1f; \ mflr r0; \ Loading Loading @@ -74,7 +75,7 @@ END_FTR_SECTION(0, 1); \ BEGIN_FTR_SECTION; \ b 1f; \ END_FTR_SECTION(0, 1); \ ld r12,hcall_tracepoint_refcount@toc(r2); \ ld r12,32(r1); \ cmpdi r12,0; \ beq+ 1f; \ mflr r0; \ Loading
arch/powerpc/platforms/pseries/lpar.c +10 −4 Original line number Diff line number Diff line Loading @@ -546,6 +546,13 @@ void __trace_hcall_entry(unsigned long opcode, unsigned long *args) unsigned long flags; unsigned int *depth; /* * We cannot call tracepoints inside RCU idle regions which * means we must not trace H_CEDE. */ if (opcode == H_CEDE) return; local_irq_save(flags); depth = &__get_cpu_var(hcall_trace_depth); Loading @@ -556,8 +563,6 @@ void __trace_hcall_entry(unsigned long opcode, unsigned long *args) (*depth)++; preempt_disable(); trace_hcall_entry(opcode, args); if (opcode == H_CEDE) rcu_idle_enter(); (*depth)--; out: Loading @@ -570,6 +575,9 @@ void __trace_hcall_exit(long opcode, unsigned long retval, unsigned long flags; unsigned int *depth; if (opcode == H_CEDE) return; local_irq_save(flags); depth = &__get_cpu_var(hcall_trace_depth); Loading @@ -578,8 +586,6 @@ void __trace_hcall_exit(long opcode, unsigned long retval, goto out; (*depth)++; if (opcode == H_CEDE) rcu_idle_exit(); trace_hcall_exit(opcode, retval, retbuf); preempt_enable(); (*depth)--; Loading