Re: [PATCH net-next 0/2] sfc: enable 4-tuple UDP RSS hashing
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
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
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
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
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
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
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(-)