On Tue, 28 Mar 2017 19:05:12 +0300
Tariq Toukan <ttoukan.li...@gmail.com> wrote:

> On 28/03/2017 10:32 AM, Tariq Toukan wrote:
> >
> >
> > On 27/03/2017 4:32 PM, Mel Gorman wrote:  
> >> 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  
> >
> > Great.
> > I will test Jesper's patch today in the afternoon.
> >  
> 
> It looks very good!
> I get line-rate (94Gbits/sec) with 8 streams, in comparison to less than 
> 55Gbits/sec before.

Just confirming, this is when you have disabled mlx5 driver
page-recycling, right?


> >> 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.

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

Reply via email to