* [PATCH 0/2] virtio-net: Fix RSS
@ 2024-03-26 10:06 Akihiko Odaki
2024-03-26 10:06 ` [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS Akihiko Odaki
2024-03-26 10:06 ` [PATCH 2/2] ebpf: Fix indirections table setting Akihiko Odaki
0 siblings, 2 replies; 5+ messages in thread
From: Akihiko Odaki @ 2024-03-26 10:06 UTC (permalink / raw)
To: Michael S. Tsirkin, Jason Wang, Andrew Melnychenko,
Yuri Benditovich
Cc: qemu-devel, Akihiko Odaki
Some recent changes made RSS unfunctional so here are fixes.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
Akihiko Odaki (2):
virtio-net: Fix vhost virtqueue notifiers for RSS
ebpf: Fix indirections table setting
ebpf/ebpf_rss.h | 2 +-
ebpf/ebpf_rss.c | 5 +++--
hw/net/virtio-net.c | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)
---
base-commit: ba49d760eb04630e7b15f423ebecf6c871b8f77b
change-id: 20240324-vhost-5e26c8a2da5a
Best regards,
--
Akihiko Odaki <akihiko.odaki@daynix.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS
2024-03-26 10:06 [PATCH 0/2] virtio-net: Fix RSS Akihiko Odaki
@ 2024-03-26 10:06 ` Akihiko Odaki
2024-04-08 10:13 ` Michael S. Tsirkin
2024-03-26 10:06 ` [PATCH 2/2] ebpf: Fix indirections table setting Akihiko Odaki
1 sibling, 1 reply; 5+ messages in thread
From: Akihiko Odaki @ 2024-03-26 10:06 UTC (permalink / raw)
To: Michael S. Tsirkin, Jason Wang, Andrew Melnychenko,
Yuri Benditovich
Cc: qemu-devel, Akihiko Odaki
virtio_net_guest_notifier_pending() and virtio_net_guest_notifier_mask()
checked VIRTIO_NET_F_MQ to know there are multiple queues, but
VIRTIO_NET_F_RSS also enables multiple queues. Refer to n->multiqueue,
which is set to true either of VIRTIO_NET_F_MQ or VIRTIO_NET_F_RSS is
enabled.
Fixes: 68b0a6395f36 ("virtio-net: align ctrl_vq index for non-mq guest for vhost_vdpa")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
hw/net/virtio-net.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 9959f1932b1b..a6ff000cd9d3 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3426,7 +3426,7 @@ static bool virtio_net_guest_notifier_pending(VirtIODevice *vdev, int idx)
VirtIONet *n = VIRTIO_NET(vdev);
NetClientState *nc;
assert(n->vhost_started);
- if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_MQ) && idx == 2) {
+ if (!n->multiqueue && idx == 2) {
/* Must guard against invalid features and bogus queue index
* from being set by malicious guest, or penetrated through
* buggy migration stream.
@@ -3458,7 +3458,7 @@ static void virtio_net_guest_notifier_mask(VirtIODevice *vdev, int idx,
VirtIONet *n = VIRTIO_NET(vdev);
NetClientState *nc;
assert(n->vhost_started);
- if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_MQ) && idx == 2) {
+ if (!n->multiqueue && idx == 2) {
/* Must guard against invalid features and bogus queue index
* from being set by malicious guest, or penetrated through
* buggy migration stream.
--
2.44.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] ebpf: Fix indirections table setting
2024-03-26 10:06 [PATCH 0/2] virtio-net: Fix RSS Akihiko Odaki
2024-03-26 10:06 ` [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS Akihiko Odaki
@ 2024-03-26 10:06 ` Akihiko Odaki
1 sibling, 0 replies; 5+ messages in thread
From: Akihiko Odaki @ 2024-03-26 10:06 UTC (permalink / raw)
To: Michael S. Tsirkin, Jason Wang, Andrew Melnychenko,
Yuri Benditovich
Cc: qemu-devel, Akihiko Odaki
The kernel documentation says:
> The value stored can be of any size, however, all array elements are
> aligned to 8 bytes.
https://www.kernel.org/doc/html/v6.8/bpf/map_array.html
Fixes: 333b3e5fab75 ("ebpf: Added eBPF map update through mmap.")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
| 2 +-
| 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
--git a/ebpf/ebpf_rss.h b/ebpf/ebpf_rss.h
index 239242b0d26e..7d15b600bf5b 100644
--- a/ebpf/ebpf_rss.h
+++ b/ebpf/ebpf_rss.h
@@ -26,7 +26,7 @@ struct EBPFRSSContext {
/* mapped eBPF maps for direct access to omit bpf_map_update_elem() */
void *mmap_configuration;
void *mmap_toeplitz_key;
- void *mmap_indirections_table;
+ uint64_t *mmap_indirections_table;
};
struct EBPFRSSConfig {
--git a/ebpf/ebpf_rss.c b/ebpf/ebpf_rss.c
index 2e506f974357..e0f300febb77 100644
--- a/ebpf/ebpf_rss.c
+++ b/ebpf/ebpf_rss.c
@@ -190,8 +190,9 @@ static bool ebpf_rss_set_indirections_table(struct EBPFRSSContext *ctx,
return false;
}
- memcpy(ctx->mmap_indirections_table, indirections_table,
- sizeof(*indirections_table) * len);
+ for (size_t i = 0; i < len; i++) {
+ ctx->mmap_indirections_table[i] = indirections_table[i];
+ }
return true;
}
--
2.44.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS
2024-03-26 10:06 ` [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS Akihiko Odaki
@ 2024-04-08 10:13 ` Michael S. Tsirkin
2024-04-09 3:40 ` Jason Wang
0 siblings, 1 reply; 5+ messages in thread
From: Michael S. Tsirkin @ 2024-04-08 10:13 UTC (permalink / raw)
To: Akihiko Odaki
Cc: Jason Wang, Andrew Melnychenko, Yuri Benditovich, qemu-devel
On Tue, Mar 26, 2024 at 07:06:29PM +0900, Akihiko Odaki wrote:
> virtio_net_guest_notifier_pending() and virtio_net_guest_notifier_mask()
> checked VIRTIO_NET_F_MQ to know there are multiple queues, but
> VIRTIO_NET_F_RSS also enables multiple queues. Refer to n->multiqueue,
> which is set to true either of VIRTIO_NET_F_MQ or VIRTIO_NET_F_RSS is
> enabled.
>
> Fixes: 68b0a6395f36 ("virtio-net: align ctrl_vq index for non-mq guest for vhost_vdpa")
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Jason, are you merging this?
> ---
> hw/net/virtio-net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index 9959f1932b1b..a6ff000cd9d3 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -3426,7 +3426,7 @@ static bool virtio_net_guest_notifier_pending(VirtIODevice *vdev, int idx)
> VirtIONet *n = VIRTIO_NET(vdev);
> NetClientState *nc;
> assert(n->vhost_started);
> - if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_MQ) && idx == 2) {
> + if (!n->multiqueue && idx == 2) {
> /* Must guard against invalid features and bogus queue index
> * from being set by malicious guest, or penetrated through
> * buggy migration stream.
> @@ -3458,7 +3458,7 @@ static void virtio_net_guest_notifier_mask(VirtIODevice *vdev, int idx,
> VirtIONet *n = VIRTIO_NET(vdev);
> NetClientState *nc;
> assert(n->vhost_started);
> - if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_MQ) && idx == 2) {
> + if (!n->multiqueue && idx == 2) {
> /* Must guard against invalid features and bogus queue index
> * from being set by malicious guest, or penetrated through
> * buggy migration stream.
>
> --
> 2.44.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS
2024-04-08 10:13 ` Michael S. Tsirkin
@ 2024-04-09 3:40 ` Jason Wang
0 siblings, 0 replies; 5+ messages in thread
From: Jason Wang @ 2024-04-09 3:40 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Akihiko Odaki, Andrew Melnychenko, Yuri Benditovich, qemu-devel
On Mon, Apr 8, 2024 at 6:13 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Tue, Mar 26, 2024 at 07:06:29PM +0900, Akihiko Odaki wrote:
> > virtio_net_guest_notifier_pending() and virtio_net_guest_notifier_mask()
> > checked VIRTIO_NET_F_MQ to know there are multiple queues, but
> > VIRTIO_NET_F_RSS also enables multiple queues. Refer to n->multiqueue,
> > which is set to true either of VIRTIO_NET_F_MQ or VIRTIO_NET_F_RSS is
> > enabled.
> >
> > Fixes: 68b0a6395f36 ("virtio-net: align ctrl_vq index for non-mq guest for vhost_vdpa")
> > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
>
> Jason, are you merging this?
It has been merged:
https://gitlab.com/qemu-project/qemu/-/commit/ba6bb2ec953f10751f174b6f7da8fe7e5f008c08
Thanks
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-04-09 3:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-26 10:06 [PATCH 0/2] virtio-net: Fix RSS Akihiko Odaki
2024-03-26 10:06 ` [PATCH 1/2] virtio-net: Fix vhost virtqueue notifiers for RSS Akihiko Odaki
2024-04-08 10:13 ` Michael S. Tsirkin
2024-04-09 3:40 ` Jason Wang
2024-03-26 10:06 ` [PATCH 2/2] ebpf: Fix indirections table setting Akihiko Odaki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).