Skip to content

Commit d5b7883

Browse files
committed
Merge pull request #79 from johnelse/integrated-gpu-passthrough-revision3
Revision 3 of the integrated GPU passthrough proposal
2 parents 6063519 + 7b88cef commit d5b7883

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

features/futures/integrated-gpu-passthrough.md

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Integrated GPU passthrough support
33
layout: default
44
design_doc: true
5-
revision: 2
5+
revision: 3
66
status: proposed
77
---
88

@@ -21,23 +21,38 @@ GPUs.
2121
Host 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

3340
Disabling dom0 access will modify the xen commandline (using the xen-cmdline
3441
tool) 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
4156
can be cancelled until the host is rebooted.
4257

4358
Handling vga_arbiter
@@ -52,9 +67,17 @@ supported_VGPU_types field will be empty.
5267
However, the PGPU's supported_VGPU_types will be populated as normal if:
5368

5469
1. 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+
5881
Interfacing with xenopsd
5982
------------------------
6083

0 commit comments

Comments
 (0)