Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Today's minutes (and last week)

...

Minute takers according to this page 


Weekly meeting, week of December 2, 2019

Participants

  • Gunnar Andersson
  • Eugen Friedrich, ADIT
  • Michael Doering,  Bosch
  • Artem Mygaiev (until 10:45)
  • Kai Lampka
  • Adam Lackorzynski
  • Matti Moell
  • Philippe Robin (part)

Apologies/Absent

  • Michele
  • Dmitry


Agenda

  • Memory/buffer sharing standards for graphics applications (with Eugen Friedrich)
  • AVPS completion work


Discussing graphics/memory buffer sharing.

libvirgilenderer implements the API, including reference implementation of VULKAN API
In practice there will be only one implementation.  It might make sense to require using libvirgilrenderer quite simply.

The driver is part of MESA project. 
Non-virtual operating systems?   QNX apparently ported both driver & renderer part.
Integrity?    MESA driver is a user space library - creates a command stream - should be easily portable (paravirtualization assumed).

Eugen: There was a proprietary API for memory sharing proposed in...
...Other APIs just give you a handle, and you don’t really control what happens below.
...Should there be a defined way how memory can be represented in a generic way?
Matti: VIRTIO basically is this in fact.   The scatter-gather lists are providing this.  Managing the lifecycle of the buffers is the challenge.    Gerd Hoffman / RedHat has proposed a standard - see virtio list. (https://lists.oasis-open.org/archives/virtio-dev/201911/msg00149.html)

Need to build in handling of the particular characteristics of the hardware.  E.g. special alignment or size restrictions. Usually VIRTIO has per-device handling today (GPU, block-device, … ) because of this. 

Intel created a proposal to require host to allocate and give to the guest.  Memory accounting troubles follow. This was not accepted in the community.  

recent proposal VIRTIO-GPU resource attachment.  patches to qemu to get a DMA buffer from a guest target buffer.   udma (in qemu). This could be applied to embedded HVs.

create_memfd - filedescriptor.  udma driver - ioctls to control it.   See DMAbuf in Linux source. drivers/dmabuf/udmabuf.  Note memfds are not part of POSIX standard.

Gunnar: These are Linux specific APIs then. Any different consideration for non-Linux OS (in a virtualization environment).

Matti: Should even be easier to implement in simpler OSes (since user space code may be more privileged to access the details).

Matti: One answer is that the GPU 2D specification already allows sharing buffers.  You have to keep into account some details about the memory model of the HV.  
VMs can tell the HV environment about buffers they would like to show, including giving this buffer to another VM.

Some kind of global compositor and it is given the buffers, e.g. that compositor might be within one VM, but it could be a hardware display device...

How to handle the lifecycle of the buffers?

Matti: VIRTIO specifies a low level way to communicate between VMs with virtqueues.  The other is the description of the device implementation.  How to handle the scatter gather lists of buffers.

Gunnar: The discussion involves different standards, in addition to standard Linux/Wayland, there is for example the Android graphics stack, potentially others...

Wayland can display a DMA-buf so if only you can get a handle to that, it's one way.


AVPS completion work

  • Went through more comments.  Some parts have been proposed as resolved after rewriting the section (Gunnar)
  • Matti Technical writer input, can the document be freely changed?
  • Agreed to welcome technical writer changes, but with some track-changes capability so we can see if any part was changed in a way that makes it misleading.
  • Gunnar:  ...it sometimes happens when unclear explanations are clarified that they end up to say the wrong thing instead.


...

Weekly meeting, week of November 18, 2019

  • Stephen Lawrence, Renesas
  • Gaurav Sinha (Micron)
  • Michael Doering,  Bosch
  • Adam Lackorzynski
  • Dmitry Sepp
  • Philippe Robin (part)
  • Gunnar Andersson


Minutes

Intro and discussion with Gaurav.   AVPS work - documented in the google doc itself.


...


Weekly meeting, week of November 18, 2019

Participants

...

  • Introduction and welcome to new participants
  • Review current work topics and purpose with new participants
  • We went through the status of the the Virtual Platform definition work, updating the table and some few changes in spec text


Weekly meeting, week of October 9, 2019

...

...

Dmitry: I have written 2D and 3D graphics requirements on the Specification draft page.

Reviewing Dmitrys input...

...