Page MenuHomeFreeBSD

ena: use newly exposed RSS hash key API rather than ad-hoc hashing
AcceptedPublic

Authored by gallatin on Tue, Oct 14, 7:47 PM.
Tags
None
Referenced Files
F133063619: D53100.diff
Wed, Oct 22, 3:05 PM
Unknown Object (File)
Fri, Oct 17, 12:21 PM
Unknown Object (File)
Fri, Oct 17, 12:09 PM
Unknown Object (File)
Fri, Oct 17, 10:12 AM
Unknown Object (File)
Fri, Oct 17, 9:49 AM
Unknown Object (File)
Fri, Oct 17, 9:34 AM
Unknown Object (File)
Fri, Oct 17, 8:26 AM
Unknown Object (File)
Fri, Oct 17, 6:35 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 67784
Build 64667: arc lint + arc unit

Event Timeline

Hi,

Thank you for submitting this patch.
Can you please provide a commit message that explains this change.
For example questions that immediately arise:

  1. What "newly exposed RSS hash key API" you are talking about (link to the commits that added this API)?
  2. Why it is ok to remove the #ifdef RSS?
  3. Why do you also remove the #ifdef RSS in ena_datapath.c?
  4. How did you test the change?

Thanks!

Hi,

Thank you for submitting this patch.
Can you please provide a commit message that explains this change.
For example questions that immediately arise:

  1. What "newly exposed RSS hash key API" you are talking about (link to the commits that added this API)?
  2. Why it is ok to remove the #ifdef RSS?
  3. Why do you also remove the #ifdef RSS in ena_datapath.c?
  4. How did you test the change?

Thanks!

Sorry, I wish I was better at reviews of patch series. This is not my favorite review tool.

This is one of many patches, starting with https://reviews.freebsd.org/D53089 and ending with https://reviews.freebsd.org/D53104. The goal is to achieve consistent hashing for TCP ingress/egress by exposing the hashing parts of RSS to drivers, so that all NICs use the same hash key and algo.

Testing was done with netflix traffic on mlx5, ixl and ix using https://reviews.freebsd.org/D53105

Looking at ena_datapath, it looks like I also need to unifdef the check for toeplitz being enabled.

Update patch to unifdef check for adapter using toeplitz hashing

I built and installed the latest kernel with this patchset in AWS and ran a network sanity check with iperf and all looks good.

turned on net.inet.tcp.input_verify_hash with sysctl net.inet.tcp.input_verify_hash=1

ran traffic

lookede at

sysctl net.inet.tcp.input_nohash
sysctl net.inet.tcp.input_badhash

and both were 0

no prints to dmesg

commit lgtm.

This revision is now accepted and ready to land.Fri, Oct 17, 8:45 PM

I built and installed the latest kernel with this patchset in AWS and ran a network sanity check with iperf and all looks good.

turned on net.inet.tcp.input_verify_hash with sysctl net.inet.tcp.input_verify_hash=1

ran traffic

lookede at

sysctl net.inet.tcp.input_nohash
sysctl net.inet.tcp.input_badhash

and both were 0

no prints to dmesg

commit lgtm.

Thank you so much for quick and complete testing. Much appreciated!

I built and installed the latest kernel with this patchset in AWS and ran a network sanity check with iperf and all looks good.

turned on net.inet.tcp.input_verify_hash with sysctl net.inet.tcp.input_verify_hash=1

ran traffic

lookede at

sysctl net.inet.tcp.input_nohash
sysctl net.inet.tcp.input_badhash

and both were 0

no prints to dmesg

commit lgtm.

Thank you so much for quick and complete testing. Much appreciated!

Sure :) happy to help with testing.