Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1628892. The problem is that we didn't put the DRI device into the namespace for QEMU to access, but that was only a part of the issue. The other part of the issue is that QEMU doesn't support specifying 'rendernode' for egl-headless yet (patches are already merged upstream for 3.1) Instead, QEMU's been autoselecting the DRI device on its own. There's no compelling reason for libvirt not doing that instead and thus prevent any permission-related issues. Since v1: - updated capabilities to 3.1.0-rc2 containing the necessary QEMU patches - provided more test cases as requested - added a new XML sub-element <gl> for egl-headless graphics type Erik Skultety (13): util: Introduce virHostGetDRMRenderNode helper conf: Introduce virDomainGraphics-related helpers qemu: process: spice: Pick the first available DRM render node qemu: command: Introduce qemuBuildGraphicsEGLHeadlessCommandLine helper qemu: caps: Introduce QEMU_EGL_HEADLESS_RENDERNODE capability squash into rendernode capability patch conf: gfx: Add egl-headless as a member to virDomainGraphicsDef struct conf: gfx: egl-headless: Introduce a new <gl> subelement qemu: process: gfx: egl-headless: Pick the first available DRM node qemu: domain: egl-headless: Add the DRI device into the namespace qemu: cgroup: gfx: egl-headless: Add the DRI device into the cgroup list security: dac: gfx: egl-headless: Relabel the DRI device qemu: command: gfx: egl-headless: Add 'rendernode' option to the cmdline docs/formatdomain.html.in | 11 +- docs/schemas/domaincommon.rng | 17 +- src/conf/domain_conf.c | 84 + src/conf/domain_conf.h | 12 + src/libvirt_private.syms | 4 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_cgroup.c | 10 +- src/qemu/qemu_command.c | 39 +- src/qemu/qemu_domain.c | 9 +- src/qemu/qemu_process.c | 21 + src/security/security_dac.c | 15 +- src/util/virutil.c | 53 + src/util/virutil.h | 2 + .../caps_3.1.0.x86_64.replies | 22911 ++++++++++++++++ .../caps_3.1.0.x86_64.xml | 1376 + tests/qemucapabilitiestest.c | 1 + ...graphics-egl-headless-rendernode-auto.args | 26 + .../graphics-egl-headless-rendernode-auto.xml | 1 + .../graphics-egl-headless-rendernode.xml | 33 + .../graphics-egl-headless.args | 2 +- .../graphics-spice-egl-headless.args | 2 +- .../graphics-spice-gl-no-rendernode.args | 25 + .../graphics-spice-gl-no-rendernode.xml | 24 + .../graphics-vnc-egl-headless.args | 2 +- ...play-spice-egl-headless.x86_64-latest.args | 2 +- ...isplay-vnc-egl-headless.x86_64-latest.args | 2 +- tests/qemuxml2argvmock.c | 9 + tests/qemuxml2argvtest.c | 7 + .../graphics-egl-headless-rendernode.xml | 41 + tests/qemuxml2xmltest.c | 2 + 31 files changed, 24711 insertions(+), 35 deletions(-) create mode 100644 tests/qemucapabilitiesdata/caps_3.1.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml create mode 100644 tests/qemuxml2argvdata/graphics-egl-headless-rendernode-auto.args create mode 120000 tests/qemuxml2argvdata/graphics-egl-headless-rendernode-auto.xml create mode 100644 tests/qemuxml2argvdata/graphics-egl-headless-rendernode.xml create mode 100644 tests/qemuxml2argvdata/graphics-spice-gl-no-rendernode.args create mode 100644 tests/qemuxml2argvdata/graphics-spice-gl-no-rendernode.xml create mode 100644 tests/qemuxml2xmloutdata/graphics-egl-headless-rendernode.xml -- 2.19.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list