22title : Integrated GPU passthrough support
33layout : default
44design_doc : true
5- revision : 2
5+ revision : 3
66status : proposed
77---
88
@@ -21,23 +21,38 @@ GPUs.
2121Host Configuration
2222------------------
2323
24- A new PGPU field will be added:
24+ New fields will be added (both read-only) :
2525
2626- ` PGPU.dom0_access enum(enabled|disable_on_reboot|disabled|enable_on_reboot) `
27+ - ` host.display enum(enabled|disable_on_reboot|disabled|enable_on_reboot) `
2728
28- as well as new API calls:
29+ as well as new API calls used to modify the state of these fields :
2930
3031- ` PGPU.enable_dom0_access `
3132- ` PGPU.disable_dom0_access `
33+ - ` host.enable_display `
34+ - ` host.disable_display `
35+
36+ Each of these API calls will return the new state of the field e.g. calling
37+ ` host.disable_display ` on a host with ` display = enabled ` will return
38+ ` disable_on_reboot ` .
3239
3340Disabling dom0 access will modify the xen commandline (using the xen-cmdline
3441tool) such that dom0 will not be able to access the GPU on next boot.
3542
36- A state diagram for the field PGPU.dom0_access is shown below:
43+ Calling host.disable_display will modify the xen and dom0 commandlines such
44+ that neither will attempt to send console output to the system display device.
45+
46+ A state diagram for the fields ` PGPU.dom0_access ` and ` host.display ` is shown
47+ below:
3748
3849![ host.integrated_GPU_passthrough flow diagram] ( integrated-gpu-passthrough.png )
3950
40- Note that when a client enables or disables dom0 access for a PGPU, the change
51+ While it is possible for these two fields to be modified independently, a
52+ client must disable both the host display and dom0 access to the system display
53+ device before that device can be passed through to a guest.
54+
55+ Note that when a client enables or disables either of these fields, the change
4156can be cancelled until the host is rebooted.
4257
4358Handling vga_arbiter
@@ -52,9 +67,17 @@ supported_VGPU_types field will be empty.
5267However, the PGPU's supported_VGPU_types will be populated as normal if:
5368
54691 . dom0 access to the GPU is disabled.
55- 2 . The vendor ID of the device is contained in a whitelist provided by xapi's
70+ 2 . The host's display is disabled.
71+ 3 . The vendor ID of the device is contained in a whitelist provided by xapi's
5672 config file.
5773
74+ A read-only field will be added:
75+
76+ - ` PGPU.is_system_display_device bool `
77+
78+ This will be true for a PGPU iff ` /dev/vga_arbiter ` reports the PGPU as the
79+ system display device for the host on which the PGPU is installed.
80+
5881Interfacing with xenopsd
5982------------------------
6083
0 commit comments