Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upGeneralize GUI daemon's xc_map_foreign_pages() #2619
Comments
rootkovska
added
C: gui-virtualization
C: xen
enhancement
P: major
security
labels
Feb 2, 2017
rootkovska
added this to the Release 4.1 milestone
Feb 2, 2017
rootkovska
changed the title from
Allow to use guid in true GuiDom (with GPU pass-through)
to
Generalize GUID's xc_map_foreign_pages()
Feb 16, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rootkovska
Feb 16, 2017
Member
While touching the GUID and reworking the xc_map_forgein_pages() for work with GUI domain, we should also make an effort to generalize this call to allow for future architectures not based on Xen. Ideally not even based on shared-memory-based hardware architectures.
Here the primary observation is that our GUI protocol already comprises two channels:
- The metadata channel (e.g. MSG_CONFIGURE, etc) about configuration and positioning of windows, damage notifications, human input.
- The actual data (i.e. pixels) channel, currently realized by xc_map_foreign_page as zero-copy memory sharing between the AppVM and Dom0, aided by the MSG_MFNDUMP messages flying over the meta channel.
So, the generalized version of the protocol should allow for providing independent implementations of this data channel (e.g. over network).
|
While touching the GUID and reworking the xc_map_forgein_pages() for work with GUI domain, we should also make an effort to generalize this call to allow for future architectures not based on Xen. Ideally not even based on shared-memory-based hardware architectures. Here the primary observation is that our GUI protocol already comprises two channels:
So, the generalized version of the protocol should allow for providing independent implementations of this data channel (e.g. over network). |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Feb 16, 2017
Member
Can you use full "GUI daemon" name? GUID means "globally unique identifier".
|
Can you use full "GUI daemon" name? GUID means "globally unique identifier". |
rootkovska
changed the title from
Generalize GUID's xc_map_foreign_pages()
to
Generalize GUI deamon's xc_map_foreign_pages()
Feb 16, 2017
rootkovska
changed the title from
Generalize GUI deamon's xc_map_foreign_pages()
to
Generalize GUI daemon's xc_map_foreign_pages()
Feb 16, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Mar 19, 2018
Member
For the record, this is implemented in:
QubesOS/qubes-gui-daemon#21
QubesOS/qubes-gui-common#2
QubesOS/qubes-gui-agent-linux#34
(missing qubes-gui-agent-xen-hvm-stubdom)
|
For the record, this is implemented in: |
rootkovska commentedFeb 2, 2017
A few changes will be needed to allow to run gui-daemon in non-Dom0 VM when used in "true GuiDom" mode.
Some of these changes (especially with regards connection establishing between other AppVMs and GuiDom) should be resolved as part of #833. However, completing of #833 will likely not solve the problem with guid relying on the Xen's
xc_map_foreign_pages(see https://github.com/QubesOS/qubes-gui-daemon/blob/v3.2.8/shmoverride/shmoverride.c#L76), which we need to solve for use with true GuiDom implementation.