[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1487286833.1311.63.camel@edumazet-glaptop3.roam.corp.google.com>
Date: Thu, 16 Feb 2017 15:13:54 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Saeed Mahameed <saeedm@....mellanox.co.il>
Cc: David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Tariq Toukan <tariqt@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>,
Matan Barak <matanb@...lanox.com>, jackm@...lanox.com
Subject: Re: [PATCH net-next] mlx4: do not fire tasklet unless necessary
On Thu, 2017-02-16 at 23:17 +0200, Saeed Mahameed wrote:
> so i guess you are not busy polling .. and adaptive moderation decided
> to lower down
> rx-usecs for you, and you are looking to improve latency.
>
> > Interrupt moderation is a latency killer, we want our usec back.
> >
>
> well, for RX we have adaptive moderation.
> and for TX we have xmit more.
> so interrupt moderation can be good if it is done right.
>
> do i understand from this that you are against interrupt moderation ?
Absolutely against it. We prefer gro_flush_timeout.
The defaults values in mlx4 never were tuned for 40Gbit.
If you want to be able to reach 40Gbit on a single TCP flow, you want :
ethtool -C ethX rx-frames 16 rx-usecs-high 32
Or disable interrupt mitigation of course.
Interrupt moderation comes for free with NAPI really :
If under stress, number of interrupts will naturally decrease,
so what's the point with hardware _delaying_ an incoming packet
exactly ???
BTW interrupt moderation in mlx4 has at least two bugs.
I will send a patch.
>
> >>
> >> > I wonder why this very expensive mb() is required, right before exiting
> >> > the interrupt handler.
> >>
> >> to make sure the HW knows we handled Completions up to (ci) consumer
> >> index. so it will generate next irq.
> >
> >
> > So why a mb() is needed exactly ?
> >
> > wmb() seems enough.
> >
>
> Yes seems right, not sure why it is mb() though, i will have to check
> and get back to you on this.
Thanks.
Powered by blists - more mailing lists