]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
ena: Implement full RSS reconfiguration
authorArtur Rojek <ar@semihalf.com>
Thu, 12 Aug 2021 08:34:29 +0000 (10:34 +0200)
committerMarcin Wojtas <mw@FreeBSD.org>
Wed, 1 Sep 2021 23:06:53 +0000 (01:06 +0200)
commit6d1ef2abd330fac4057f092abbbdc28a568b4327
treea7a3a8ce2400933b5c723254ab6e8cf737c228a1
parent223c8cb12e951c63807300a0cbdc4a1569520b4b
ena: Implement full RSS reconfiguration

Bind RX/TX queues and MSI-X vectors to matching CPUs based on the RSS
bucket entries.

Introduce sysctls for the following RSS functionality:
- rss.indir_table:      indirection table mapping
- rss.indir_table_size: indirection table size
- rss.key:              RSS hash key (if Toeplitz used)

Said sysctls are only available when compiled without `option RSS`, as
kernel-side RSS support currently doesn't offer RSS reconfiguration.

Migrate the hash algorithm from CRC32 to Toeplitz and change the initial
hash value to 0x0 in order to match the standard Toeplitz implementation.
Provide helpers for hash key inversion required for HW operations.

Obtained from: Semihalf
MFC after: 2 weeks
Sponsored by: Amazon, Inc.
share/man/man4/ena.4
sys/dev/ena/ena.c
sys/dev/ena/ena.h
sys/dev/ena/ena_datapath.c
sys/dev/ena/ena_rss.c
sys/dev/ena/ena_rss.h
sys/dev/ena/ena_sysctl.c