From f7d38bc10b11abadbcd9b12b1784d7108f0a5d7e Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Thu, 10 Jun 2021 10:47:03 +0200 Subject: [qemu] Implement passthrough of NVIDIA GPUs The implementation adds specified PCI devics of a NVIDIA GPU on the host system to the final Libvirt domain XML configuration for a NVIDIA GPU passthrough. In addition to that, the implementation adds support for the Looking Glass Client to display the framebuffer of the NVIDIA GPU on the host system through a shared memory device. --- .../TransformationSpecificQemuArchitecture.java | 27 ++++++++-------------- 1 file changed, 9 insertions(+), 18 deletions(-) (limited to 'core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitecture.java') diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitecture.java b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitecture.java index f507237d..a51c829d 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitecture.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitecture.java @@ -29,14 +29,6 @@ public class TransformationSpecificQemuArchitecture */ private static final String NAME = "QEMU Architecture [CPU architecture, machine type, ...]"; - /** - * Capabilities of the Libvirt/QEMU hypervisor. - * - * @implNote This field is used as an instance of a singelton. Please always use - * {@link #getCapabilities()} to retrieve the {@code capabilities} instance. - */ - private Capabilities capabilities = null; - /** * Creates a new architecture transformation for Libvirt/QEMU virtualization configurations. * @@ -70,18 +62,17 @@ public class TransformationSpecificQemuArchitecture */ protected Capabilities getCapabilities() throws TransformationException { - // retrieve capabilities from QEMU hypervisor only once - if ( this.capabilities == null ) { - try { - this.capabilities = this.getVirtualizer().getCapabilites(); - } catch ( LibvirtHypervisorException e ) { - final String errorMsg = new String( - "Failed to get host capabilities from QEMU virtualizer: " + e.getLocalizedMessage() ); - throw new TransformationException( errorMsg ); - } + final Capabilities capabilities; + + try { + capabilities = this.getVirtualizer().getCapabilites(); + } catch ( LibvirtHypervisorException e ) { + final String errorMsg = new String( + "Failed to retrieve host capabilities from QEMU virtualizer: " + e.getLocalizedMessage() ); + throw new TransformationException( errorMsg ); } - return this.capabilities; + return capabilities; } /** -- cgit v1.2.3-55-g7522