Based-on: <20230524064704.47711-1-akihiko.od...@daynix.com> ("[PATCH 0/2] net: Update MemReentrancyGuard for NIC")
This series contains fixes and improvements for virtio-net RSS and hash reporting feature. V6 -> V7: Dropped patch "virtio-net: Do not clear VIRTIO_NET_F_HASH_REPORT". Dropped the changes to remove packet flags. Re-introduced tap_receive() and changed it to call tap_receive_iov(). Removed tap_get_vnet_hdr_len(). Fixed tap initialization not to call tap_fd_set_vnet_hdr_len() for tap without virtio-net header. Changed to call error_report() instead of warn_report() for programming errors. V5 -> V6: Corrected the message for patch "virtio-net: Return an error when vhost cannot enable RSS". Removed changes to introduce asserts from "virtio-net: Return an error when vhost cannot enable RSS". Reorganized patches "virtio-net: Return an error when vhost cannot enable RSS" and "virtio-net: Do not clear VIRTIO_NET_F_RSS". This version now contains patches "virtio-net: Return an error when vhost cannot enable RSS" and "virtio-net: Enable software RSS". Rebased. V4 -> V5: Added patch "virtio-net: Do not write hashes to peer buffer". V3 -> V4: Extract patches "tap: Remove tap_receive()" and "net: Remove flag propagation" from "net: Remove receive_raw()". Added patch "virtio-net: Always set populate_hash". Added patch "virtio-net: Do not clear VIRTIO_NET_F_HASH_REPORT". Added patch "ebpf: Use standard section name". Added patch "ebpf: Simplify error handling". Added patch "ebpf: Return 0 when configuration fails". Added patch "ebpf: Refactor tun_rss_steering_prog()". Added patch "ebpf: Add a separate target for skeleton". V2 -> V3: Added patch "tap: Remove tap_probe_vnet_hdr_len()". Added patch "tap: Remove qemu_using_vnet_hdr()". Added patch "net: Move virtio-net header length assertion". Added patch "net: Remove receive_raw()". Added patch "tap: Shrink zeroed virtio-net header". Dropped patch "tap: Fix virtio-net header buffer size". V1 -> V2: Added patch "ebpf: Fix RSS error handling". Akihiko Odaki (19): tap: Remove tap_probe_vnet_hdr_len() tap: Remove qemu_using_vnet_hdr() net: Move virtio-net header length assertion net: Remove receive_raw() tap: Call tap_receive_iov() from tap_receive() tap: Shrink zeroed virtio-net header virtio-net: Copy header only when necessary virtio-net: Disable RSS on reset virtio-net: Unify the logic to update NIC state for RSS virtio-net: Return an error when vhost cannot enable RSS virtio-net: Report RSS warning at device realization virtio-net: Always set populate_hash virtio-net: Do not write hashes to peer buffer ebpf: Fix RSS error handling ebpf: Use standard section name ebpf: Simplify error handling ebpf: Return 0 when configuration fails ebpf: Refactor tun_rss_steering_prog() ebpf: Add a separate target for skeleton ebpf/rss.bpf.skeleton.h | 1557 +++++++++++++++++++------------------- include/net/net.h | 8 - net/tap_int.h | 1 - ebpf/ebpf_rss.c | 12 +- hw/net/e1000e.c | 1 - hw/net/igb.c | 1 - hw/net/net_tx_pkt.c | 4 +- hw/net/virtio-net.c | 308 ++++---- hw/net/vmxnet3.c | 2 - net/dump.c | 4 +- net/net.c | 47 +- net/netmap.c | 5 - net/tap-bsd.c | 5 - net/tap-linux.c | 20 - net/tap-solaris.c | 5 - net/tap-stub.c | 5 - net/tap.c | 77 +- tools/ebpf/rss.bpf.c | 46 +- tools/ebpf/Makefile.ebpf | 15 +- 19 files changed, 986 insertions(+), 1137 deletions(-) -- 2.42.1