All of lore.kernel.org
 help / color / mirror / Atom feed
* [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>
---
 ebpf/ebpf_rss.h | 2 +-
 ebpf/ebpf_rss.c | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --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 {
diff --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.