[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250416170857.2e46a3be@kernel.org>
Date: Wed, 16 Apr 2025 17:08:57 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Jason Wang <jasowang@...hat.com>
Cc: Bui Quang Minh <minhquangbui99@...il.com>,
virtualization@...ts.linux.dev, "Michael S . Tsirkin" <mst@...hat.com>,
Xuan Zhuo <xuanzhuo@...ux.alibaba.com>, Andrew Lunn
<andrew+netdev@...n.ch>, Eric Dumazet <edumazet@...gle.com>, Paolo Abeni
<pabeni@...hat.com>, Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann
<daniel@...earbox.net>, Jesper Dangaard Brouer <hawk@...nel.org>, John
Fastabend <john.fastabend@...il.com>, Eugenio Pérez
<eperezma@...hat.com>, "David S . Miller" <davem@...emloft.net>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org, bpf@...r.kernel.org
Subject: Re: [PATCH v3 3/3] selftests: net: add a virtio_net deadlock
selftest
On Wed, 16 Apr 2025 15:46:42 +0800 Jason Wang wrote:
> On Wed, Apr 16, 2025 at 2:54 PM Bui Quang Minh <minhquangbui99@...il.com> wrote:
> > On 4/16/25 11:27, Jakub Kicinski wrote:
> > > Unfortunately this doesn't work on a basic QEMU setup:
> > >
> > > # ethtool -G eth0 rx 128
> > > [ 15.680655][ T287] virtio_net virtio2 eth0: resize rx fail: rx queue index: 0 err: -2
> > > netlink error: No such file or directory
> > >
> > > Is there a way to enable more capable virtio_net with QEMU?
>
> What's the qemu command line and version?
>
> Resize depends on queue_reset which should be supported from Qemu 7.2
I'm using virtme-ng with --net loop and:
QEMU emulator version 9.1.3 (qemu-9.1.3-2.fc41)
--net loop resolves to:
-device virtio-net-device,netdev=n0 \
-netdev hubport,id=n0,hubid=0 \
-device virtio-net-device,netdev=n1 \
-netdev hubport,id=n1,hubid=0
> > I guess that virtio-pci-legacy is used in your setup.
>
> Note that modern devices are used by default.
>
> >
> > Here is how I setup virtio-net with Qemu
> >
> > -netdev tap,id=hostnet1,vhost=on,script=$NETWORK_SCRIPT,downscript=no \
> > -device
> > virtio-net-pci,netdev=hostnet1,iommu_platform=on,disable-legacy=on \
That works! I rejigged the CI, for posterity I used two times:
-device virtio-net-pci,netdev=n0,iommu_platform=on,disable-legacy=on,mq=on,vectors=18
-netdev tap,id=n0,ifname=tap4,vhost=on,script=no,downscript=no,queues=8
and then manually bridged the taps together on the hypervisor side.
> > The iommu_platform=on is necessary to make vring use dma API which is a
> > requirement to enable xsk_pool in virtio-net (XDP socket will be in
> > zerocopy mode for this case). Otherwise, the XDP socket will fallback to
> > copy mode, xsk_pool is not enabled in virtio-net that makes the
> > probability to reproduce bug to be very small. Currently, when you don't
> > have iommu_platform=on, you can pass the test even before the fix, so I
> > think I will try to harden the selftest to make it return skip in this case.
>
> I would like to keep the resize test as it doesn't require iommu_platform.
Sounds good but lets just add them to the drivers/net/hw directory.
I don't think there's anything virtio specific in the test itself?
Right now drivers/net/virtio_net has a test which expects to see
both netdevs in the VM, while drivers / Python based tests expect
to have the env prepared where only one end is on the local machine,
and the other is accessible over SSH or in another netns. So it's a bit
painful to marry the two kinds of tests in the CI. At least our netdev
CI does not know how to figure this out :( It preps the env and then
runs the whole kselftest TARGET in the same setup.
Powered by blists - more mailing lists