For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap-linux.c | 13 +
net/tap-solaris.c | 5 +
net/tap-stub.c| 5 +
net/tap.c
ation requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 3 +
hw/net/virtio-net.c| 115 -
include/hw/virtio/virtio-net.h | 4 ++
net/vhost-vdpa.c | 2 +
4 files ch
This set of patches introduces the usage of eBPF for packet steering
and RSS hash calculation:
* RSS(Receive Side Scaling) is used to distribute network packets to
guest virtqueues by calculating packet hash
* Additionally adding support for the usage of RSS with vhost
The eBPF works on kernels 5.
Additional code that will be used for eBPF setting steering routine.
Signed-off-by: Andrew Melnychenko
---
net/tap-linux.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 2f36d100fc..1d06fe0de6 100644
--- a/net/tap-linux.h
+++ b/net/tap-linux.h
From: Andrew
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
MAINTAINERS | 8
1 file changed, 8 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 58f342108e..e05a9fd9f6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3311,6 +3311,14 @@ F: include/hw
enditovich
Signed-off-by: Andrew Melnychenko
---
tools/ebpf/Makefile.ebpf | 22 ++
tools/ebpf/rss.bpf.c | 569 +++
2 files changed, 591 insertions(+)
create mode 100755 tools/ebpf/Makefile.ebpf
create mode 100644 tools/ebpf/rss.bpf.c
diff --git a/
: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
configure | 8 +-
ebpf/ebpf_rss-stub.c| 40
ebpf/ebpf_rss.c | 165 +++
ebpf/ebpf_rss.h | 44
ebpf/meson.build| 1 +
ebpf/rss.bpf.skeleton.h | 431
From: Andrew
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
docs/devel/ebpf_rss.rst | 125
docs/devel/index.rst| 1 +
2 files changed, 126 insertions(+)
create mode 100644 docs/devel/ebpf_rss.rst
diff --git a/docs/devel
hash population requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 3 +
hw/net/virtio-net.c| 115 -
include/hw/virtio/virtio-net.h | 4 ++
net/vhost-vdpa.c
From: Andrew
For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap-linux.c | 13 +
net/tap-solaris.c | 5 +
net/tap-stub.c| 5
From: Andrew
Additional code that will be used for eBPF setting steering routine.
Signed-off-by: Andrew Melnychenko
---
net/tap-linux.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 2f36d100fc..1d06fe0de6 100644
--- a/net/tap-linux.h
+++ b/net/tap
This set of patches introduces the usage of eBPF for packet steering
and RSS hash calculation:
* RSS(Receive Side Scaling) is used to distribute network packets to
guest virtqueues by calculating packet hash
* Additionally adding support for the usage of RSS with vhost
The eBPF works on kernels 5.
ebian, libbpf is pressent but doesn't
resolved as dependency by meson(may be pkg-config issues?).
On those systems qemu will be build without eBPF RSS steering.
The patch privedes changes for containers that able to build qemu
with libbpf: Alpine, Centos8 and Fedora.
Andrew Melnychenko (1):
Ad
The series of patches for eBPF RSS adds libbpf dependency for qemu.
https://lists.gnu.org/archive/html/qemu-devel/2021-03/msg08887.html
With this patch, libbpf added:
Alpine - added libbpf-dev
Centos 8 - added libbpf-devel
Fedora - added libbpf-devel
Signed-off-by: Andrew Melnychenko
: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
configure | 8 +-
ebpf/ebpf_rss-stub.c| 40
ebpf/ebpf_rss.c | 165
ebpf/ebpf_rss.h | 44 +
ebpf/meson.build| 1 +
ebpf/rss.bpf.skeleton.h | 423
From: Andrew
For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap-linux.c | 13 +
net/tap-solaris.c | 5 +
net/tap-stub.c| 5
From: Andrew
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
docs/devel/ebpf_rss.rst | 125
docs/devel/index.rst| 1 +
2 files changed, 126 insertions(+)
create mode 100644 docs/devel/ebpf_rss.rst
diff --git a/docs/devel
This set of patches introduces the usage of eBPF for packet steering
and RSS hash calculation:
* RSS(Receive Side Scaling) is used to distribute network packets to
guest virtqueues by calculating packet hash
* Additionally adding support for the usage of RSS with vhost
The eBPF works on kernels 5.
From: Andrew
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
MAINTAINERS | 8
1 file changed, 8 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5e4be6b667..0f74778ed7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3304,6 +3304,14 @@ F: include/hw
hash population requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 3 +
hw/net/virtio-net.c| 115 -
include/hw/virtio/virtio-net.h | 4 ++
net/vhost-vdpa.c
enditovich
Signed-off-by: Andrew Melnychenko
---
tools/ebpf/Makefile.ebpf | 22 ++
tools/ebpf/rss.bpf.c | 552 +++
2 files changed, 574 insertions(+)
create mode 100755 tools/ebpf/Makefile.ebpf
create mode 100644 tools/ebpf/rss.bpf.c
diff --git a/
From: Andrew
Additional code that will be used for eBPF setting steering routine.
Signed-off-by: Andrew Melnychenko
---
net/tap-linux.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 2f36d100fc..1d06fe0de6 100644
--- a/net/tap-linux.h
+++ b/net/tap
enditovich
Signed-off-by: Andrew Melnychenko
---
tools/ebpf/Makefile.ebpf | 33 +++
tools/ebpf/rss.bpf.c | 505 +++
2 files changed, 538 insertions(+)
create mode 100755 tools/ebpf/Makefile.ebpf
create mode 100644 tools/ebpf/rss.bpf.c
diff --git a/
: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
configure | 30 +++
ebpf/ebpf_rss-stub.c| 40
ebpf/ebpf_rss.c | 165 +
ebpf/ebpf_rss.h | 44 +
ebpf/meson.build| 1 +
ebpf/rss.bpf.skeleton.h | 397
From: Andrew
For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap-linux.c | 13 +
net/tap-solaris.c | 5 +
net/tap-stub.c| 5
From: Andrew
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
docs/ebpf_rss.rst | 125 ++
1 file changed, 125 insertions(+)
create mode 100644 docs/ebpf_rss.rst
diff --git a/docs/ebpf_rss.rst b/docs/ebpf_rss.rst
new file mode
From: Andrew
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
MAINTAINERS | 8
1 file changed, 8 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 00626941f1..5ca9e8f304 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3194,6 +3194,14 @@ S: Maintained
F
hash population requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 2 +
hw/net/virtio-net.c| 129 -
include/hw/virtio/virtio-net.h | 4 +
net/vhost-vdpa.c | 2
This set of patches introduces the usage of eBPF for packet steering
and RSS hash calculation:
* RSS(Receive Side Scaling) is used to distribute network packets to
guest virtqueues by calculating packet hash
* Additionally adding support for the usage of RSS with vhost
The eBPF works on kernels 5.
From: Andrew
Additional code that will be used for eBPF setting steering routine.
Signed-off-by: Andrew Melnychenko
---
net/tap-linux.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 2f36d100fc..1d06fe0de6 100644
--- a/net/tap-linux.h
+++ b/net/tap
hash population requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 2 +
hw/net/virtio-net.c| 125 +++--
include/hw/virtio/virtio-net.h | 4 ++
net/vhost-vdpa.c
: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
configure | 33
ebpf/ebpf_rss-stub.c| 40
ebpf/ebpf_rss.c | 165 +
ebpf/ebpf_rss.h | 44 +
ebpf/meson.build| 1 +
ebpf/rss.bpf.skeleton.h | 397
This set of patches introduces the usage of eBPF for packet steering
and RSS hash calculation:
* RSS(Receive Side Scaling) is used to distribute network packets to
guest virtqueues by calculating packet hash
* Additionally adding support for the usage of RSS with vhost
The eBPF works on kernels 5.
enditovich
Signed-off-by: Andrew Melnychenko
---
tools/ebpf/Makefile.ebpf | 33 +++
tools/ebpf/rss.bpf.c | 505 +++
2 files changed, 538 insertions(+)
create mode 100755 tools/ebpf/Makefile.ebpf
create mode 100644 tools/ebpf/rss.bpf.c
diff --git a/
From: Andrew
Also, added maintainers information.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
MAINTAINERS | 8 +++
docs/ebpf_rss.rst | 125 ++
2 files changed, 133 insertions(+)
create mode 100644 docs
From: Andrew
For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap-linux.c | 13 +
net/tap-solaris.c | 5 +
net/tap-stub.c| 5
From: Andrew
Additional code that will be used for eBPF setting steering routine.
Signed-off-by: Andrew Melnychenko
---
net/tap-linux.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 2f36d100fc..1d06fe0de6 100644
--- a/net/tap-linux.h
+++ b/net/tap
From: Andrew
Added AER capability for virtio-pci devices.
Also added property for devices, by default AER is disabled.
Signed-off-by: Andrew Melnychenko
---
hw/virtio/virtio-pci.c | 16
hw/virtio/virtio-pci.h | 4
2 files changed, 20 insertions(+)
diff --git a/hw
Main motivation:
According to Microsoft driver\device certification requirements
for next version of Window Server, PCIe device must support AER.
"Windows Server PCI Express devices are required to support
Advanced Error Reporting [AER] as defined in
PCI Express Base Specification version 2.1."
AE
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1707441
Added ICR clearing if there is IMS bit - according to the note by
section 13.3.27 of the 8257X developers manual.
Signed-off-by: Andrew Melnychenko
---
hw/net/e1000e_core.c | 10 ++
hw/net/trace-events | 1 +
2 files changed
From: Andrew
Removed hardcoded offset for ats. Added cap offset counter
for future capabilities like AER.
Signed-off-by: Andrew Melnychenko
---
hw/virtio/virtio-pci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index
From: Andrew
Also, added maintainers information.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
MAINTAINERS | 7 +++
docs/ebpf_rss.rst | 133 ++
2 files changed, 140 insertions(+)
create mode 100644 docs
: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
configure| 33
ebpf/ebpf_rss-stub.c | 40 +
ebpf/ebpf_rss.c | 187 +++
ebpf/ebpf_rss.h | 44 ++
ebpf/meson.build | 1 +
ebpf/trace-events| 4
hash population requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 2 +
hw/net/virtio-net.c| 120 +++--
include/hw/virtio/virtio-net.h | 4 ++
net/vhost-vdpa.c
This set of patches introduces the usage of eBPF for packet steering
and RSS hash calculation:
* RSS(Receive Side Scaling) is used to distribute network packets to
guest virtqueues by calculating packet hash
* Additionally adding support for the usage of RSS with vhost
The eBPF works on kernels 5.
From: Andrew
For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap-linux.c | 13 +
net/tap-linux.h | 1 +
net/tap-solaris.c | 5
work.
It's similar to ELF's relocation table section routine.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
ebpf/ebpf.c | 107 ++
ebpf/ebpf.h | 35 +++
ebpf/trace-events | 4 ++
ebpf/trace.h
From: Andrew
Added function that loads RSS eBPF program.
Added stub functions for RSS eBPF.
Added meson and configuration options.
Signed-off-by: Sameeh Jubran
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
configure| 36 ++
ebpf/ebpf-stub.c | 28
From: Andrew
Also, added maintainers information.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
MAINTAINERS | 6 +++
docs/ebpf.rst | 29 +++
docs/ebpf_rss.rst | 129 ++
3 files changed, 164 insertions
ned-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
ebpf/EbpfElf_to_C.py| 67 +
ebpf/Makefile.ebpf | 38 +++
ebpf/rss.bpf.c | 470 +
ebpf/tun_rss_steering.h | 556
4 files changed, 1131
From: Andrew
For now, that method supported only by Linux TAP.
Linux TAP uses TUNSETSTEERINGEBPF ioctl.
TUNSETSTEERINGBPF was added 3 years ago.
Qemu checks if it was defined before using.
Signed-off-by: Andrew Melnychenko
---
include/net/net.h | 2 ++
net/tap-bsd.c | 5 +
net/tap
hash population requested by the guest.
Signed-off-by: Yuri Benditovich
Signed-off-by: Andrew Melnychenko
---
hw/net/vhost_net.c | 2 +
hw/net/virtio-net.c| 120 +++--
include/hw/virtio/virtio-net.h | 4 ++
net/vhost-vdpa.c
Basic idea is to use eBPF to calculate and steer packets in TAP.
RSS(Receive Side Scaling) is used to distribute network packets to guest
virtqueues
by calculating packet hash.
eBPF RSS allows us to use RSS with vhost TAP.
This set of patches introduces the usage of eBPF for packet steering
and R
101 - 153 of 153 matches
Mail list logo