mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: prepare domain for vhost-user GPU
Call qemuExtVhostUserGPUPrepareDomain() to fill the domain with the location of the vhost-user binary to start. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
06049e9f73
commit
638f066b73
@ -21,6 +21,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "qemu_extdevice.h"
|
||||
#include "qemu_vhost_user_gpu.h"
|
||||
#include "qemu_domain.h"
|
||||
#include "qemu_tpm.h"
|
||||
#include "qemu_slirp.h"
|
||||
@ -78,6 +79,34 @@ qemuExtDevicesInitPaths(virQEMUDriverPtr driver,
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* qemuExtDevicesPrepareDomain:
|
||||
*
|
||||
* @driver: QEMU driver
|
||||
* @vm: domain
|
||||
*
|
||||
* Code that modifies live XML of a domain which is about to start.
|
||||
*/
|
||||
int
|
||||
qemuExtDevicesPrepareDomain(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
int ret = 0;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < vm->def->nvideos; i++) {
|
||||
virDomainVideoDefPtr video = vm->def->videos[i];
|
||||
|
||||
if (video->backend == VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER) {
|
||||
if ((ret = qemuExtVhostUserGPUPrepareDomain(driver, video)) < 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* qemuExtDevicesPrepareHost:
|
||||
*
|
||||
|
@ -30,6 +30,11 @@ int qemuExtDeviceLogCommand(virQEMUDriverPtr driver,
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4)
|
||||
ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
int qemuExtDevicesPrepareDomain(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr vm)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
|
||||
ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
int qemuExtDevicesPrepareHost(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr vm)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
|
||||
|
@ -6367,6 +6367,10 @@ qemuProcessPrepareDomain(virQEMUDriverPtr driver,
|
||||
if (qemuFirmwareFillDomain(driver, vm, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
VIR_DEBUG("Preparing external devices");
|
||||
if (qemuExtDevicesPrepareDomain(driver, vm) < 0)
|
||||
goto cleanup;
|
||||
|
||||
for (i = 0; i < vm->def->nchannels; i++) {
|
||||
if (qemuDomainPrepareChannel(vm->def->channels[i],
|
||||
priv->channelTargetDir) < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user