Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generalize GUI daemon's xc_map_foreign_pages() #2619

Closed
rootkovska opened this issue Feb 2, 2017 · 5 comments
Closed

Generalize GUI daemon's xc_map_foreign_pages() #2619

rootkovska opened this issue Feb 2, 2017 · 5 comments
Labels
C: gui-virtualization C: Xen P: major Priority: major. Between "default" and "critical" in severity. security This issue pertains to the security of Qubes OS. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.
Milestone

Comments

@rootkovska
Copy link
Member

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.

@rootkovska rootkovska added C: gui-virtualization C: Xen T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. P: major Priority: major. Between "default" and "critical" in severity. security This issue pertains to the security of Qubes OS. labels Feb 2, 2017
@rootkovska rootkovska added this to the Release 4.1 milestone Feb 2, 2017
@rootkovska rootkovska changed the title Allow to use guid in true GuiDom (with GPU pass-through) Generalize GUID's xc_map_foreign_pages() Feb 16, 2017
@rootkovska
Copy link
Member Author

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:

  1. The metadata channel (e.g. MSG_CONFIGURE, etc) about configuration and positioning of windows, damage notifications, human input.
  2. 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).

@marmarek
Copy link
Member

Can you use full "GUI daemon" name? GUID means "globally unique identifier".

@rootkovska rootkovska changed the title Generalize GUID's xc_map_foreign_pages() Generalize GUI deamon's xc_map_foreign_pages() Feb 16, 2017
@rootkovska rootkovska changed the title Generalize GUI deamon's xc_map_foreign_pages() Generalize GUI daemon's xc_map_foreign_pages() Feb 16, 2017
@marmarek
Copy link
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)

@marmarek marmarek mentioned this issue Aug 1, 2018
7 tasks
marmarek added a commit to marmarek/qubes-gui-agent-linux that referenced this issue Mar 9, 2019
GUI agent now links directly with libxengnttab.

QubesOS/qubes-issues#2619
marmarek added a commit to marmarek/qubes-core-agent-linux that referenced this issue Jun 8, 2019
This version will not work with qubes-gui-agent not supporting -d
option.

QubesOS/qubes-issues#2619
@jpouellet
Copy link
Contributor

@marmarek can this be closed since QubesOS/qubes-gui-agent-xen-hvm-stubdom@e341ebd?

@marmarek
Copy link
Member

In theory there is one more component needed to be ported - gui-agent-windows. But it's kind of unmaintained...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: gui-virtualization C: Xen P: major Priority: major. Between "default" and "critical" in severity. security This issue pertains to the security of Qubes OS. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.
Projects
None yet
Development

No branches or pull requests

3 participants