drm/xen-front Xen 半虛擬化前端驅動程式

此前端驅動程式根據 include/xen/interface/io/displif.h 中描述的顯示協議實現 Xen 半虛擬化顯示。

根據使用的顯示緩衝區來劃分的驅動程式執行模式

根據半虛擬化環境的需求,即主機和客戶機環境中執行的配套 DRM/(v)GPU 驅動程式的需求,顯示緩衝區可以由前端驅動程式或後端驅動程式分配。

由前端驅動程式分配的緩衝區

在這種執行模式下,驅動程式從系統記憶體中分配緩衝區。

注意!如果與配套的 DRM/(v)GPU 驅動程式一起使用,此執行模式可能需要在平臺上支援 IOMMU,以便配套的 DRM/vGPU 硬體仍然可以在從前端驅動程式匯入 PRIME 緩衝區時訪問顯示緩衝區記憶體。

由後端分配的緩衝區

此執行模式透過 XenStore 條目在客戶機域配置中進行執行時配置。

對於不提供 IOMMU 支援,但對顯示緩衝區有特定要求的系統,可以在後端分配此類緩衝區並與前端共享。 例如,如果主機域是 1:1 對映,並且具有期望物理上連續記憶體的 DRM/GPU 硬體,則這允許實現零複製用例。

注意,在使用此方案時應考慮以下事項:

  1. 如果客戶機域死亡,則無法收回從後端接收的頁面/授權

  2. 行為不端的客戶機可能會向後端傳送過多的請求,耗盡其授權引用和記憶體(從安全的角度考慮)

驅動程式限制

  1. 僅支援沒有附加屬性的主平面。

  2. 每個聯結器僅支援一種影片模式,該模式透過 XenStore 配置。

  3. 所有 CRTC 都以 60Hz 的固定頻率執行。