[PATCH RFC v4 00/11] virtio-net: Offload hashing without eBPF

Akihiko Odaki posted 11 patches 3 weeks, 4 days ago
docs/devel/ebpf_rss.rst        |  23 ++-
include/hw/qdev-properties.h   |  18 +++
include/hw/virtio/virtio-net.h |   6 +-
include/net/net.h              |  20 +++
net/tap-linux.h                |   2 +
net/tap_int.h                  |   3 +
hw/core/qdev-properties.c      |  67 ++++++++-
hw/net/virtio-net.c            | 331 +++++++++++++++++++++++++++++------------
net/net.c                      |  14 ++
net/tap-bsd.c                  |  10 ++
net/tap-linux.c                |  18 +++
net/tap-solaris.c              |  10 ++
net/tap-stub.c                 |  10 ++
net/tap.c                      |  15 ++
net/vhost-vdpa.c               |  41 ++++-
15 files changed, 478 insertions(+), 110 deletions(-)
[PATCH RFC v4 00/11] virtio-net: Offload hashing without eBPF
Posted by Akihiko Odaki 3 weeks, 4 days ago
I'm proposing to add a feature to offload virtio-net RSS/hash report to
Linux. This series contain patches to utilize the proposed Linux feature.
The patches for Linux are available at:
https://lore.kernel.org/r/20250307-rss-v9-0-df76624025eb@daynix.com/

This work was presented at LPC 2024:
https://lpc.events/event/18/contributions/1963/

Patch "docs/devel/ebpf_rss.rst: Update for peer RSS" provides comparion
of existing RSS mechanism and the new one (called "peer RSS") and
explains how QEMU selects one.

---
Changes in v4:
- Rebased.
- Added a reference to the documentation to the cover letter.
- Link to v3: https://lore.kernel.org/r/20240915-hash-v3-0-79cb08d28647@daynix.com

---
Akihiko Odaki (11):
      qdev-properties: Add DEFINE_PROP_ON_OFF_AUTO_BIT64()
      net/vhost-vdpa: Report hashing capability
      virtio-net: Move virtio_net_get_features() down
      virtio-net: Retrieve peer hashing capability
      net/vhost-vdpa: Remove dummy SetSteeringEBPF
      virtio-net: Add hash type options
      net: Allow configuring virtio hashing
      virtio-net: Use qemu_set_vnet_hash()
      virtio-net: Offload hashing without vhost
      tap: Report virtio-net hashing support on Linux
      docs/devel/ebpf_rss.rst: Update for peer RSS

 docs/devel/ebpf_rss.rst        |  23 ++-
 include/hw/qdev-properties.h   |  18 +++
 include/hw/virtio/virtio-net.h |   6 +-
 include/net/net.h              |  20 +++
 net/tap-linux.h                |   2 +
 net/tap_int.h                  |   3 +
 hw/core/qdev-properties.c      |  67 ++++++++-
 hw/net/virtio-net.c            | 331 +++++++++++++++++++++++++++++------------
 net/net.c                      |  14 ++
 net/tap-bsd.c                  |  10 ++
 net/tap-linux.c                |  18 +++
 net/tap-solaris.c              |  10 ++
 net/tap-stub.c                 |  10 ++
 net/tap.c                      |  15 ++
 net/vhost-vdpa.c               |  41 ++++-
 15 files changed, 478 insertions(+), 110 deletions(-)
---
base-commit: 825b96dbcee23d134b691fc75618b59c5f53da32
change-id: 20240828-hash-628329a45d4d

Best regards,
-- 
Akihiko Odaki <akihiko.odaki@daynix.com>
Re: [PATCH RFC v4 00/11] virtio-net: Offload hashing without eBPF
Posted by Lei Yang 3 weeks ago
QE tested this RFC series of patches with virtio-net regression tests,
everything works fine.

Tested-by: Lei Yang <leiyang@redhat.com>

On Thu, Mar 13, 2025 at 2:56 PM Akihiko Odaki <akihiko.odaki@daynix.com> wrote:
>
> I'm proposing to add a feature to offload virtio-net RSS/hash report to
> Linux. This series contain patches to utilize the proposed Linux feature.
> The patches for Linux are available at:
> https://lore.kernel.org/r/20250307-rss-v9-0-df76624025eb@daynix.com/
>
> This work was presented at LPC 2024:
> https://lpc.events/event/18/contributions/1963/
>
> Patch "docs/devel/ebpf_rss.rst: Update for peer RSS" provides comparion
> of existing RSS mechanism and the new one (called "peer RSS") and
> explains how QEMU selects one.
>
> ---
> Changes in v4:
> - Rebased.
> - Added a reference to the documentation to the cover letter.
> - Link to v3: https://lore.kernel.org/r/20240915-hash-v3-0-79cb08d28647@daynix.com
>
> ---
> Akihiko Odaki (11):
>       qdev-properties: Add DEFINE_PROP_ON_OFF_AUTO_BIT64()
>       net/vhost-vdpa: Report hashing capability
>       virtio-net: Move virtio_net_get_features() down
>       virtio-net: Retrieve peer hashing capability
>       net/vhost-vdpa: Remove dummy SetSteeringEBPF
>       virtio-net: Add hash type options
>       net: Allow configuring virtio hashing
>       virtio-net: Use qemu_set_vnet_hash()
>       virtio-net: Offload hashing without vhost
>       tap: Report virtio-net hashing support on Linux
>       docs/devel/ebpf_rss.rst: Update for peer RSS
>
>  docs/devel/ebpf_rss.rst        |  23 ++-
>  include/hw/qdev-properties.h   |  18 +++
>  include/hw/virtio/virtio-net.h |   6 +-
>  include/net/net.h              |  20 +++
>  net/tap-linux.h                |   2 +
>  net/tap_int.h                  |   3 +
>  hw/core/qdev-properties.c      |  67 ++++++++-
>  hw/net/virtio-net.c            | 331 +++++++++++++++++++++++++++++------------
>  net/net.c                      |  14 ++
>  net/tap-bsd.c                  |  10 ++
>  net/tap-linux.c                |  18 +++
>  net/tap-solaris.c              |  10 ++
>  net/tap-stub.c                 |  10 ++
>  net/tap.c                      |  15 ++
>  net/vhost-vdpa.c               |  41 ++++-
>  15 files changed, 478 insertions(+), 110 deletions(-)
> ---
> base-commit: 825b96dbcee23d134b691fc75618b59c5f53da32
> change-id: 20240828-hash-628329a45d4d
>
> Best regards,
> --
> Akihiko Odaki <akihiko.odaki@daynix.com>
>
>