understanding virtio-gpu

Enrico Weigelt, metux IT consult lkml at metux.net
Wed Jun 30 09:25:56 UTC 2021


Hello folks,


I'm currently trying to understand how the virtio-gpu driver actually
works and got a few noob questions:

1. virtio_gpu_pci_quirk():

   * what is the explicit framebuffer removal about ?

     Do virtio-gpu devices support several framebuffer types (but only
     one at a time) ? How does it happen that we can have that vga
     framebuffer standing in our way in the first place ?

   * why is it necessary to rename the device with "pci:" prefix ?

     since (IMHO) virtio is an actual bus, that may even exist in HW,
     but there're also several different virtio transports (got word that
     somebody's also working on an socket-based one), it smells very
     strange to me, making it look like a pci device.

     does it only work w/ pci transport ?
     what's the background of this ?

2. features[] array:

   * virgl seems only supported on little endian, and the comment tells
     that's because virgl is sending the command stream in native endian.

   * IMHO, this approach isn't entirely correct, since here we're just
     looking whether the driver/guest side is LE, but looking at the
     host/device side. otoh, it should still work if both sides are BE.

   * shouldn't we add some endianess handshake to the protocol ?
     maybe both should announce what's their native endianess and whether
     they're capable of doing the conversion, so they can aggree on what
     to do exactly ?


I'm currently trying to find ways for using virgl in containers instead
of VMs, so the container workload doesn't need to have any gpu specific
(userland) drivers anymore. Not sure whether I'll need special kernel
support for this at all.


thx,
--mtx

-- 
---
Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert
werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren
GPG/PGP-Schlüssel zu.
---
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
info at metux.net -- +49-151-27565287


More information about the dri-devel mailing list