All of lore.kernel.org
 help / color / mirror / Atom feed
* virtio "transitional devices"?
@ 2021-09-05 13:47 Alexander von Gluck IV
  2021-09-06  8:59 ` Daniel P. Berrangé
  0 siblings, 1 reply; 2+ messages in thread
From: Alexander von Gluck IV @ 2021-09-05 13:47 UTC (permalink / raw)
  To: qemu-devel

Could someone explain to me what virtio "transitional devices" are?

https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1020002

Are "Transitional devices" pre-1.0 specification?

Haiku's virtio driver (PCI) is looking for PCIID Devices 0x1000-0x103F


I've noticed qemu-6.1.0 has begun to offer PCI DeviceID  0x1040-0x107F to
the operating system breaking our virtio drivers.

Expanding our search range to 0x1040+ seems to solve the issues and gives
us a working virtio driver, but I feel like we should be checking for
other differences.

Has something changed in recent qemu's around virtio?  I don't see anything
documented in the release notes.

 -- Alex


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: virtio "transitional devices"?
  2021-09-05 13:47 virtio "transitional devices"? Alexander von Gluck IV
@ 2021-09-06  8:59 ` Daniel P. Berrangé
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel P. Berrangé @ 2021-09-06  8:59 UTC (permalink / raw)
  To: Alexander von Gluck IV; +Cc: qemu-devel

On Sun, Sep 05, 2021 at 01:47:48PM +0000, Alexander von Gluck IV wrote:
> Could someone explain to me what virtio "transitional devices" are?
> 
> https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1020002
> 
> Are "Transitional devices" pre-1.0 specification?

virtio devices can be exposed in upto three ways

 - Legacy - follows virtio 0.9 specification. always uses PCI
            ID range 0x1000-0x103F
 - Transitional - follows virtio 0.9 specification by default, but
                  can auto-negotiate with guest for 1.0 spce. Always
		  uses PCI ID range 0x1000-0x103F
 - Modern - follows virtio 1.0 specification. always uses PCI
            ID range 0x1040-0x107F

With QEMU, historically devices placed on a PCI bus will always default
to being in transitional mode, while devices placed on a PCI-E bus will
always dfault to being in modern mode.

The params disable_legacy=on|off and disable_modern=on|off can be used
to fine tune things. 

> Haiku's virtio driver (PCI) is looking for PCIID Devices 0x1000-0x103F

Makes sense if you're expecting legacy or transitional devices, only
in 0.9 spec mode. 

> I've noticed qemu-6.1.0 has begun to offer PCI DeviceID  0x1040-0x107F to
> the operating system breaking our virtio drivers.
> 
> Expanding our search range to 0x1040+ seems to solve the issues and gives
> us a working virtio driver, but I feel like we should be checking for
> other differences.

Only use 0x1040-0x107F range if you support virtio 1.0.

> Has something changed in recent qemu's around virtio?  I don't see anything
> documented in the release notes.

There shouldn't be changes in this regard afaik. Are you confident that
you have had no changes in the QEMU command line you are testing with
since previous working versions of QEMU were tested ?


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-09-06  9:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-05 13:47 virtio "transitional devices"? Alexander von Gluck IV
2021-09-06  8:59 ` Daniel P. Berrangé

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.