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 <config.h>
|
||||||
|
|
||||||
#include "qemu_extdevice.h"
|
#include "qemu_extdevice.h"
|
||||||
|
#include "qemu_vhost_user_gpu.h"
|
||||||
#include "qemu_domain.h"
|
#include "qemu_domain.h"
|
||||||
#include "qemu_tpm.h"
|
#include "qemu_tpm.h"
|
||||||
#include "qemu_slirp.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:
|
* qemuExtDevicesPrepareHost:
|
||||||
*
|
*
|
||||||
|
@ -30,6 +30,11 @@ int qemuExtDeviceLogCommand(virQEMUDriverPtr driver,
|
|||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4)
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4)
|
||||||
ATTRIBUTE_RETURN_CHECK;
|
ATTRIBUTE_RETURN_CHECK;
|
||||||
|
|
||||||
|
int qemuExtDevicesPrepareDomain(virQEMUDriverPtr driver,
|
||||||
|
virDomainObjPtr vm)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
|
||||||
|
ATTRIBUTE_RETURN_CHECK;
|
||||||
|
|
||||||
int qemuExtDevicesPrepareHost(virQEMUDriverPtr driver,
|
int qemuExtDevicesPrepareHost(virQEMUDriverPtr driver,
|
||||||
virDomainObjPtr vm)
|
virDomainObjPtr vm)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
|
||||||
|
@ -6367,6 +6367,10 @@ qemuProcessPrepareDomain(virQEMUDriverPtr driver,
|
|||||||
if (qemuFirmwareFillDomain(driver, vm, flags) < 0)
|
if (qemuFirmwareFillDomain(driver, vm, flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
VIR_DEBUG("Preparing external devices");
|
||||||
|
if (qemuExtDevicesPrepareDomain(driver, vm) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
for (i = 0; i < vm->def->nchannels; i++) {
|
for (i = 0; i < vm->def->nchannels; i++) {
|
||||||
if (qemuDomainPrepareChannel(vm->def->channels[i],
|
if (qemuDomainPrepareChannel(vm->def->channels[i],
|
||||||
priv->channelTargetDir) < 0)
|
priv->channelTargetDir) < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user