Re: [PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-11-09 Thread David Miller
From: Edward Cree 
Date: Wed, 9 Nov 2016 18:51:15 +

> On 09/11/16 18:09, David Miller wrote:
>> From: Edward Cree 
>> Date: Tue, 8 Nov 2016 13:02:05 +
>>
>>> On 07/11/16 18:20, David Miller wrote:
 From: Edward Cree 
 Date: Thu, 3 Nov 2016 22:10:31 +

> EF10 based NICs have configurable RSS hash fields, and can be made to 
> take the
> ports into the hash on UDP (they already do so for TCP).  This patch 
> series
> enables this, in order to improve spreading of UDP traffic.
 What does the chip do with fragmented traffic?
>>> Only the first fragment will be considered UDP, it will treat the rest as 
>>> "other
>>> IP" and 2-tuple hash them, probably hitting a different queue.
>>>
>>> My understanding is that while that will reduce performance, that shouldn't 
>>> be a
>>> problem as performance-sensitive users will avoid fragmentation anyway.
>>> It could also lead to out-of-order packet delivery, but it's UDP so that's
>>> supposed to be OK.
>> Our software hashing never tries to inspect the ports for fragmented
>> frames.  And I'm pretty sure this is intentional.
>>
>> We should minimize the difference between what we do in software, which
>> we fully control, and what we ask the hardware to offload for us.
>>
>> If you can't configure the chip to skip the ports for fragmented frames
>> than I'm going to ask you to drop this.
> I just checked and it turns out I was mistaken, we don't treat the first 
> fragment
> differently after all, we skip the ports for all fragments including the 
> first.
> Sorry for the misinformation.

That's more in line with what is expected, series applied, thanks.


Re: [PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-11-09 Thread Edward Cree
On 09/11/16 18:09, David Miller wrote:
> From: Edward Cree 
> Date: Tue, 8 Nov 2016 13:02:05 +
>
>> On 07/11/16 18:20, David Miller wrote:
>>> From: Edward Cree 
>>> Date: Thu, 3 Nov 2016 22:10:31 +
>>>
 EF10 based NICs have configurable RSS hash fields, and can be made to take 
 the
 ports into the hash on UDP (they already do so for TCP).  This patch series
 enables this, in order to improve spreading of UDP traffic.
>>> What does the chip do with fragmented traffic?
>> Only the first fragment will be considered UDP, it will treat the rest as 
>> "other
>> IP" and 2-tuple hash them, probably hitting a different queue.
>>
>> My understanding is that while that will reduce performance, that shouldn't 
>> be a
>> problem as performance-sensitive users will avoid fragmentation anyway.
>> It could also lead to out-of-order packet delivery, but it's UDP so that's
>> supposed to be OK.
> Our software hashing never tries to inspect the ports for fragmented
> frames.  And I'm pretty sure this is intentional.
>
> We should minimize the difference between what we do in software, which
> we fully control, and what we ask the hardware to offload for us.
>
> If you can't configure the chip to skip the ports for fragmented frames
> than I'm going to ask you to drop this.
I just checked and it turns out I was mistaken, we don't treat the first 
fragment
differently after all, we skip the ports for all fragments including the first.
Sorry for the misinformation.


Re: [PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-11-09 Thread David Miller
From: Edward Cree 
Date: Tue, 8 Nov 2016 13:02:05 +

> On 07/11/16 18:20, David Miller wrote:
>> From: Edward Cree 
>> Date: Thu, 3 Nov 2016 22:10:31 +
>>
>>> EF10 based NICs have configurable RSS hash fields, and can be made to take 
>>> the
>>> ports into the hash on UDP (they already do so for TCP).  This patch series
>>> enables this, in order to improve spreading of UDP traffic.
>> What does the chip do with fragmented traffic?
> Only the first fragment will be considered UDP, it will treat the rest as 
> "other
> IP" and 2-tuple hash them, probably hitting a different queue.
> 
> My understanding is that while that will reduce performance, that shouldn't 
> be a
> problem as performance-sensitive users will avoid fragmentation anyway.
> It could also lead to out-of-order packet delivery, but it's UDP so that's
> supposed to be OK.

Our software hashing never tries to inspect the ports for fragmented
frames.  And I'm pretty sure this is intentional.

We should minimize the difference between what we do in software, which
we fully control, and what we ask the hardware to offload for us.

If you can't configure the chip to skip the ports for fragmented frames
than I'm going to ask you to drop this.


Re: [PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-11-08 Thread Edward Cree
On 07/11/16 18:20, David Miller wrote:
> From: Edward Cree 
> Date: Thu, 3 Nov 2016 22:10:31 +
>
>> EF10 based NICs have configurable RSS hash fields, and can be made to take 
>> the
>> ports into the hash on UDP (they already do so for TCP).  This patch series
>> enables this, in order to improve spreading of UDP traffic.
> What does the chip do with fragmented traffic?
Only the first fragment will be considered UDP, it will treat the rest as "other
IP" and 2-tuple hash them, probably hitting a different queue.

My understanding is that while that will reduce performance, that shouldn't be a
problem as performance-sensitive users will avoid fragmentation anyway.
It could also lead to out-of-order packet delivery, but it's UDP so that's
supposed to be OK.


Re: [PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-11-07 Thread David Miller
From: Edward Cree 
Date: Thu, 3 Nov 2016 22:10:31 +

> EF10 based NICs have configurable RSS hash fields, and can be made to take the
> ports into the hash on UDP (they already do so for TCP).  This patch series
> enables this, in order to improve spreading of UDP traffic.

What does the chip do with fragmented traffic?


[PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-11-03 Thread Edward Cree
EF10 based NICs have configurable RSS hash fields, and can be made to take the
ports into the hash on UDP (they already do so for TCP).  This patch series
enables this, in order to improve spreading of UDP traffic.

Edward Cree (2):
  sfc: enable 4-tuple RSS hashing for UDP
  sfc: report 4-tuple UDP hashing to ethtool, if it's enabled

 drivers/net/ethernet/sfc/ef10.c   | 84 +++
 drivers/net/ethernet/sfc/ethtool.c| 12 +++--
 drivers/net/ethernet/sfc/net_driver.h |  2 +
 3 files changed, 94 insertions(+), 4 deletions(-)



[RFC PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing

2016-09-27 Thread Edward Cree
EF10 based NICs have configurable RSS hash fields, and can be made to take the
ports into the hash on UDP (they already do so for TCP).  This patch series
enables this, in order to improve spreading of UDP traffic.
Patch 2/2, which updates the ETHTOOL_GRXFH handling to report the new RSS hash
settings, uses a somewhat unorthodox construct to control fall-through flow in
a switch statement - is this acceptable style?

Edward Cree (2):
  sfc: enable 4-tuple RSS hashing for UDP
  sfc: report 4-tuple UDP hashing to ethtool, if it's enabled

 drivers/net/ethernet/sfc/ef10.c   | 84 +++
 drivers/net/ethernet/sfc/ethtool.c| 14 --
 drivers/net/ethernet/sfc/net_driver.h |  2 +
 3 files changed, 96 insertions(+), 4 deletions(-)