On Mon, Mar 27, 2017 at 02:39:47PM +0200, Jesper Dangaard Brouer wrote:
> On Mon, 27 Mar 2017 10:55:14 +0200
> Jesper Dangaard Brouer <bro...@redhat.com> wrote:
> 
> > A possible solution, would be use the local_bh_{disable,enable} instead
> > of the {preempt_disable,enable} calls.  But it is slower, using numbers
> > from [1] (19 vs 11 cycles), thus the expected cycles saving is 38-19=19.
> > 
> > The problematic part of using local_bh_enable is that this adds a
> > softirq/bottom-halves rescheduling point (as it checks for pending
> > BHs).  Thus, this might affects real workloads.
> 
> I implemented this solution in patch below... and tested it on mlx5 at
> 50G with manually disabled driver-page-recycling.  It works for me.
> 
> To Mel, that do you prefer... a partial-revert or something like this?
> 

If Tariq confirms it works for him as well, this looks far safer patch
than having a dedicate IRQ-safe queue. Your concern about the BH
scheduling point is valid but if it's proven to be a problem, there is
still the option of a partial revert.

-- 
Mel Gorman
SUSE Labs

Reply via email to