Thread (16 messages) 16 messages, 2 authors, 2017-01-05

Re: [PATCH v5 08/12] powerpc: Add support to mask perf interrupts and replay them

flat view

From: Nicholas Piggin <npiggin@gmail.com>
Date: 2017-01-04 12:38:18

On Wed,  4 Jan 2017 17:19:46 +0530
Madhavan Srinivasan [off-list ref] wrote:
quoted hunk ↗ jump to hunk
@@ -134,7 +137,7 @@ static inline bool arch_irqs_disabled(void)
 	_was_enabled = local_paca->soft_enabled;	\
 	local_paca->soft_enabled = IRQ_DISABLE_MASK_LINUX;\
 	local_paca->irq_happened |= PACA_IRQ_HARD_DIS;	\
-	if (!(_was_enabled & IRQ_DISABLE_MASK_LINUX))	\
+	if (!(_was_enabled & IRQ_DISABLE_MASK_ALL))	\
 		trace_hardirqs_off();			\
 } while(0)
Hang on, maybe there's some confusion about this. trace_hardirqs_off() is
for Linux irqs (i.e., local_irq_disable()), so that should continue to
test just the LINUX mask I think. Otherwise this

    powerpc_local_pmu_disable();
    hard_irq_disable();

Will miss calling trace_hardirqs_off(). You don't have a function that
disables PMU irqs without Linux irqs, but one might exist.

What I was concerned about is actually setting the disable mask to ALL

  	local_paca->soft_enabled = IRQ_DISABLE_MASK_ALL;

No? Otherwise if you did

    powerpc_local_irq_pmu_disable();
    hard_irq_disable();

Then you would lose the PMU bit out of the mask.

Thanks,
Nick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help