Re: in_irq_or_nmi() and RFC patch

From: Mel Gorman
Date: Wed Apr 05 2017 - 04:55:19 EST


On Mon, Apr 03, 2017 at 01:05:06PM +0100, Mel Gorman wrote:
> > Started performance benchmarking:
> > 163 cycles = current state
> > 183 cycles = with BH disable + in_irq
> > 218 cycles = with BH disable + in_irq + irqs_disabled
> >
> > Thus, the performance numbers unfortunately looks bad, once we add the
> > test for irqs_disabled(). The slowdown by replacing preempt_disable
> > with BH-disable is still a win (we saved 29 cycles before, and loose
> > 20, I was expecting regression to be only 10 cycles).
> >
>
> This surprises me because I'm not seeing the same severity of problems
> with irqs_disabled. Your path is slower than what's currently upstream
> but it's still far better than a revert. The softirq column in the
> middle is your patch versus a full revert which is the last columnm
>

Any objection to resending the local_bh_enable/disable patch with the
in_interrupt() check based on this data or should I post the revert and
go back to the drawing board?

--
Mel Gorman
SUSE Labs