Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Apr 2026 09:54:40 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Michael Tuexen <tuexen@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org,  dev-commits-src-main@freebsd.org,  =?UTF-8?B?VGltbyBWw7Zsa2Vy?= <timo.voelker@fh-muenster.de>
Subject:   Re: git: 0b39d72d0491 - main - virtio: use modern mode for transitional device by default
Message-ID:  <CAJ-Vmo=HG0uqJijd_w49wPC7Yhd=tQjsc_ik8b1POb7GXYBGLg@mail.gmail.com>
In-Reply-To: <69d12614.3d42a.5c3f48a2@gitrepo.freebsd.org>

index | next in thread | previous in thread | raw e-mail

hi!

FWIW, this has broken virtio on qemu ppc64 pseries VMs:

```
vtnet0: <VirtIO Networking Adapter> numa-domain 0 on virtio_pci0
virtio_pci0: virtqueue 1 (vtnet0-tx0) does not exist (size is zero)
virtio_pci0: cannot allocate virtqueue 1: 19
vtnet0: cannot allocate virtqueues
device_attach: vtnet0 attach returned 19
virtio_pci1: <VirtIO PCI (modern) Block adapter> port 0x100-0x17f mem
0x81040000-0x81040fff,0x210000010000-0x210000013fff irq 4611 at device
3.0 numa-domain 0 on pci0
vtblk0: <VirtIO Block Adapter> numa-domain 0 on virtio_pci1
qemu-system-ppc64: wrong value for queue_enable 100
```

Is there any way to detect that we're running in an environment where
the new way won't work?

The snippet in my qemu setup is:

```
        -drive file=ppc64be-1.qcow2,format=qcow2,id=hd0,if=none \
        -device virtio-blk-pci,drive=hd0 \
        -drive file=ppc64be-data.qcow2,format=qcow2,id=hd1,if=none \
        -device virtio-blk-pci,drive=hd1 \
        -netdev tap,id=nd0,ifname=tap1 -device
virtio-net,netdev=nd0,mac=00:08:01:13:00:01
```


-adrian

On Sat, 4 Apr 2026 at 07:54, Michael Tuexen <tuexen@freebsd.org> wrote:
>
> The branch main has been updated by tuexen:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=0b39d72d0491c77e3e9883015b1fac46663c71de
>
> commit 0b39d72d0491c77e3e9883015b1fac46663c71de
> Author:     Timo Völker <timo.voelker@fh-muenster.de>
> AuthorDate: 2026-04-04 14:49:54 +0000
> Commit:     Michael Tuexen <tuexen@FreeBSD.org>
> CommitDate: 2026-04-04 14:49:54 +0000
>
>     virtio: use modern mode for transitional device by default
>
>     This patch changes the default value of the loader tunable
>     hw.virtio.pci.transitional to 1. This means, virtio uses the
>     modern mode for transitional devices by default.
>
>     The return values of vtpci_modern_probe() and vtpci_legacy_probei()
>     were chosen to prefer modern mode, but hw.virtio.pci.transitional=0
>     prevents modern mode.
>     Setting hw.virtio.pci.transitional to 1 by default seems a better fit.
>
>     Reviewed by:            tuexen
>     Differential Revision:  https://reviews.freebsd.org/D55894
> ---
>  share/man/man4/virtio.4                | 2 +-
>  sys/dev/virtio/pci/virtio_pci_modern.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/share/man/man4/virtio.4 b/share/man/man4/virtio.4
> index 8252cc1b7954..6af6300b1cee 100644
> --- a/share/man/man4/virtio.4
> +++ b/share/man/man4/virtio.4
> @@ -114,7 +114,7 @@ use the legacy
>  .Nm
>  driver
>  .Pq 0 .
> -The default value is 0.
> +The default value is 1.
>  .El
>  .Sh SEE ALSO
>  .Xr virtio_balloon 4 ,
> diff --git a/sys/dev/virtio/pci/virtio_pci_modern.c b/sys/dev/virtio/pci/virtio_pci_modern.c
> index 108fd2b5f8e9..baf7c448bb95 100644
> --- a/sys/dev/virtio/pci/virtio_pci_modern.c
> +++ b/sys/dev/virtio/pci/virtio_pci_modern.c
> @@ -191,7 +191,7 @@ static void vtpci_modern_write_device_8(struct vtpci_modern_softc *,
>  /* Tunables. */
>  SYSCTL_DECL(_hw_virtio_pci);
>
> -static int vtpci_modern_transitional = 0;
> +static int vtpci_modern_transitional = 1;
>  SYSCTL_INT(_hw_virtio_pci, OID_AUTO, transitional, CTLFLAG_RDTUN,
>      &vtpci_modern_transitional, 0,
>      "If 0, a transitional VirtIO device is used in legacy mode; otherwise, in modern mode.");
>


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=HG0uqJijd_w49wPC7Yhd=tQjsc_ik8b1POb7GXYBGLg>