Re: MSI-X vector limits and reserving a virtio device ID

Stefan Hajnoczi <[email protected]> Thu, 28 May 2026 09:36:33 -0400
Newsgroups dev.linux.lists.virtio-comment
Message-ID <20260528133633.GB40266@fedora>
--GIkM2LLcpkUHVxTN
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, May 28, 2026 at 08:47:25AM +0300, Manos Pitsidianakis wrote:
> On Thu, May 28, 2026 at 8:22=E2=80=AFAM Parav Pandit <[email protected]> w=
rote:
> >
> >
> > > From: Demi Marie Obenour <[email protected]>
> > > Sent: 28 May 2026 05:23 AM
> > > To: [email protected]
> > > Subject: MSI-X vector limits and reserving a virtio device ID
> > >
> > > I'd like to reserve a virtio device ID for virtio vhost-guest,
> > > formally virtio vhost-user.  Would this be possible?
> > >
> > Vhost user is an implementation of the device.
> > I believe it stays as implementation and not a new device type.
>=20
> This exactly.
>=20
> Furthermore, we already have a mechanism for "providing" an arbitrary
> virtio device; it's called a transport.
>=20
> Demi, I suggest you look into virtio-msg transport, which would allow
> you to do what you want.

I think the "virtio vhost-guest" device is a continuation of the
virtio-vhost-user device work:
https://wiki.qemu.org/Features/VirtioVhostUser

It is a VIRTIO device type, not a transport.

The idea is that a driver VM runs a normal VIRTIO driver (e.g.
virtio-net-pci) and a second device VM runs the virtio-net device
implementation. It's similar to running a vhost-user-net device on the
host, except now the device implementation runs inside a VM instead of a
process on the host. The virtio-vhost-user device is what the device VM
sees and uses to provide the virtio-net device to the driver VM.

Stefan

>=20
> >
> > > Also, I'd like to know which systems have a small limit on the number
> > > of MSI-X vectors.
> > I didn=E2=80=99t follow the question. Typically, Intel cpu has a limit =
of 256 vectors per core.
> >
> > > The vhost-guest device uses lots of MSI-X vectors.
> > > Typical implementations will use 256 * 3 + 7 =3D 775 of them!  That c=
an,
> > > of course, be reduced by sharing vectors, but this is undesirable
> > > as it comes at a performance cost.
> > Did you get a chance to measure the performance, for which device type?
> > Interrupts are generally moderated.
> > In other devices (scalable functions of mlx5) I have measured perf of 8=
 to 16 queues sharing a vectors has < 4% perf drop.
> >
> > > --
> > > Sincerely,
> > > Demi Marie Obenour (she/her/hers)
>=20
> --=20
> Manos Pitsidianakis
> Emulation and Virtualization Engineer at Linaro Ltd
>=20

--GIkM2LLcpkUHVxTN
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmoYROEACgkQnKSrs4Gr
c8iY7gf+OFlvve9iwwDpHhFNW2SxEEC73JkyDY90aaFjDgEXlMBk7OvdERn93sQg
3bdPwe2+C0ncYmiaLhvU6C9TcsgjVF5uWfFl7h1NliDN4LA9cGEOj13SyUMKSYHI
JeFZgZefhTOua4XILjmWeTJSXgNngY5XhnRyiyTd3a6vJn8s0zb8TY8CaEg/kfEL
Er7rNGYHLTrxZFqpTk88HSo5BMNFZtFoeT//hz5S4ojvnGyaHGDccJaKFgGs+p2B
ub4gGoCbuA99qtH+7giNKlttXWblCWVULMUclf6qwNuuXohCH3WYHnU5MfJf/y16
pYFou3RX2g2Vvr2Fo9SKoSr2UklVnQ==
=wcFT
-----END PGP SIGNATURE-----

--GIkM2LLcpkUHVxTN--