drm/xen-front Xen para-virtualized frontend driver¶
This frontend driver implements Xen para-virtualized displayaccording to the display protocol described atinclude/xen/interface/io/displif.h
Driver modes of operation in terms of display buffers used¶
Depending on the requirements for the para-virtualized environment, namelyrequirements dictated by the accompanying DRM/(v)GPU drivers running in bothhost and guest environments, display buffers can be allocated by eitherfrontend driver or backend.
Buffers allocated by the frontend driver¶
In this mode of operation driver allocates buffers from system memory.
Note! If used with accompanying DRM/(v)GPU drivers this mode of operationmay require IOMMU support on the platform, so accompanying DRM/vGPUhardware can still reach display buffer memory while importing PRIMEbuffers from the frontend driver.
Buffers allocated by the backend¶
This mode of operation is run-time configured via guest domain configurationthrough XenStore entries.
For systems which do not provide IOMMU support, but having specificrequirements for display buffers it is possible to allocate such buffersat backend side and share those with the frontend.For example, if host domain is 1:1 mapped and has DRM/GPU hardware expectingphysically contiguous memory, this allows implementing zero-copyinguse-cases.
Note, while using this scenario the following should be considered:
If guest domain dies then pages/grants received from the backendcannot be claimed back
Misbehaving guest may send too many requests to thebackend exhausting its grant references and memory(consider this from security POV)
Driver limitations¶
Only primary plane without additional properties is supported.
Only one video mode per connector supported which is configuredvia XenStore.
All CRTCs operate at fixed frequency of 60Hz.