From: "Michael S. Tsirkin" <mst@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>
Cc: "Cindy Lu" <lulu@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
"Eugenio Pérez" <eperezma@redhat.com>,
"Eli Cohen" <elic@nvidia.com>,
"Gautam Dawar" <gautam.dawar@xilinx.com>
Subject: Re: [PATCH 0/4] virtio_net: vdpa: update MAC address when it is generated by virtio-net
Date: Sun, 22 Jan 2023 05:23:44 -0500 [thread overview]
Message-ID: <20230122052211-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230122100526.2302556-1-lvivier@redhat.com>
On Sun, Jan 22, 2023 at 11:05:22AM +0100, Laurent Vivier wrote:
> When the MAC address is not provided by the vdpa device virtio_net
> driver assigns a random one without notifying the device.
> The consequence, in the case of mlx5_vdpa, is the internal routing
> tables of the device are not updated and this can block the
> communication between two namespaces.
>
> To fix this problem, use virtnet_send_command(VIRTIO_NET_CTRL_MAC)
> to set the address from virtnet_probe() when the MAC address is
> randomly assigned from virtio_net.
>
> While I was testing this change I found 3 other bugs in vdpa_sim_net:
>
> - vdpa_sim_net sets the VIRTIO_NET_F_MAC even if no MAC address is
> provided. So virtio_net doesn't generate a random MAC address and
> the MAC address appears to be 00:00:00:00:00:00
>
> - vdpa_sim_net never processes the command and virtnet_send_command()
> hangs in an infinite loop. To avoid a kernel crash add a timeout
> in the loop.
>
> - To allow vdpa_sim_net to process the command, replace the cpu_relax()
> in the loop by a schedule(). vdpa_sim_net uses a workqueue to process
> the queue, and if we don't allow the kernel to schedule, the queue
> is not processed and the loop is infinite.
I'd split these things out as opposed to a series unless there's
a dependency I missed.
All this reminds me of
https://lore.kernel.org/r/20221226074908.8154-5-jasowang%40redhat.com
how is this patch different/better?
Pls also CC people involved in that original discussion.
Thanks!
> Laurent Vivier (4):
> virtio_net: notify MAC address change on device initialization
> virtio_net: add a timeout in virtnet_send_command()
> vdpa_sim_net: don't always set VIRTIO_NET_F_MAC
> virtio_net: fix virtnet_send_command() with vdpa_sim_net
>
> drivers/net/virtio_net.c | 21 +++++++++++++++++++--
> drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 6 ++++++
> 2 files changed, 25 insertions(+), 2 deletions(-)
>
> --
> 2.39.0
>
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>
Cc: linux-kernel@vger.kernel.org, "Parav Pandit" <parav@nvidia.com>,
virtualization@lists.linux-foundation.org,
netdev@vger.kernel.org, "Eli Cohen" <elic@nvidia.com>,
"Jason Wang" <jasowang@redhat.com>,
"Gautam Dawar" <gautam.dawar@xilinx.com>,
"Cindy Lu" <lulu@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
"Eugenio Pérez" <eperezma@redhat.com>
Subject: Re: [PATCH 0/4] virtio_net: vdpa: update MAC address when it is generated by virtio-net
Date: Sun, 22 Jan 2023 05:23:44 -0500 [thread overview]
Message-ID: <20230122052211-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230122100526.2302556-1-lvivier@redhat.com>
On Sun, Jan 22, 2023 at 11:05:22AM +0100, Laurent Vivier wrote:
> When the MAC address is not provided by the vdpa device virtio_net
> driver assigns a random one without notifying the device.
> The consequence, in the case of mlx5_vdpa, is the internal routing
> tables of the device are not updated and this can block the
> communication between two namespaces.
>
> To fix this problem, use virtnet_send_command(VIRTIO_NET_CTRL_MAC)
> to set the address from virtnet_probe() when the MAC address is
> randomly assigned from virtio_net.
>
> While I was testing this change I found 3 other bugs in vdpa_sim_net:
>
> - vdpa_sim_net sets the VIRTIO_NET_F_MAC even if no MAC address is
> provided. So virtio_net doesn't generate a random MAC address and
> the MAC address appears to be 00:00:00:00:00:00
>
> - vdpa_sim_net never processes the command and virtnet_send_command()
> hangs in an infinite loop. To avoid a kernel crash add a timeout
> in the loop.
>
> - To allow vdpa_sim_net to process the command, replace the cpu_relax()
> in the loop by a schedule(). vdpa_sim_net uses a workqueue to process
> the queue, and if we don't allow the kernel to schedule, the queue
> is not processed and the loop is infinite.
I'd split these things out as opposed to a series unless there's
a dependency I missed.
All this reminds me of
https://lore.kernel.org/r/20221226074908.8154-5-jasowang%40redhat.com
how is this patch different/better?
Pls also CC people involved in that original discussion.
Thanks!
> Laurent Vivier (4):
> virtio_net: notify MAC address change on device initialization
> virtio_net: add a timeout in virtnet_send_command()
> vdpa_sim_net: don't always set VIRTIO_NET_F_MAC
> virtio_net: fix virtnet_send_command() with vdpa_sim_net
>
> drivers/net/virtio_net.c | 21 +++++++++++++++++++--
> drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 6 ++++++
> 2 files changed, 25 insertions(+), 2 deletions(-)
>
> --
> 2.39.0
>
next prev parent reply other threads:[~2023-01-22 10:23 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-22 10:05 [PATCH 0/4] virtio_net: vdpa: update MAC address when it is generated by virtio-net Laurent Vivier
2023-01-22 10:05 ` Laurent Vivier
2023-01-22 10:05 ` [PATCH 1/4] virtio_net: notify MAC address change on device initialization Laurent Vivier
2023-01-22 10:05 ` Laurent Vivier
2023-01-22 13:47 ` Eli Cohen
2023-01-23 9:52 ` Laurent Vivier
2023-01-23 9:52 ` Laurent Vivier
2023-01-23 10:05 ` Eli Cohen
2023-01-24 3:31 ` Jakub Kicinski
2023-01-24 7:19 ` Laurent Vivier
2023-01-24 7:19 ` Laurent Vivier
2023-01-22 10:05 ` [PATCH 2/4] virtio_net: add a timeout in virtnet_send_command() Laurent Vivier
2023-01-22 10:05 ` Laurent Vivier
2023-01-22 10:05 ` [PATCH 3/4] vdpa_sim_net: don't always set VIRTIO_NET_F_MAC Laurent Vivier
2023-01-22 10:05 ` Laurent Vivier
2023-01-22 10:05 ` [PATCH 4/4] virtio_net: fix virtnet_send_command() with vdpa_sim_net Laurent Vivier
2023-01-22 10:05 ` Laurent Vivier
2023-01-22 10:23 ` Michael S. Tsirkin [this message]
2023-01-22 10:23 ` [PATCH 0/4] virtio_net: vdpa: update MAC address when it is generated by virtio-net Michael S. Tsirkin
2023-01-23 9:25 ` Laurent Vivier
2023-01-23 9:25 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230122052211-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=davem@davemloft.net \
--cc=elic@nvidia.com \
--cc=eperezma@redhat.com \
--cc=gautam.dawar@xilinx.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lulu@redhat.com \
--cc=lvivier@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.