[libvirt] [RFC PATCH 02/12] domain_conf: add support for cpu device configuration in XML
Peter Krempa
pkrempa at redhat.com
Wed Jan 21 09:03:34 UTC 2015
On Wed, Jan 21, 2015 at 16:00:54 +0800, Zhu Guihua wrote:
> This patch adds configuration support for the cpu device.
>
> Signed-off-by: Zhu Guihua <zhugh.fnst at cn.fujitsu.com>
> ---
> src/conf/domain_conf.c | 14 ++++++++++++++
> src/conf/domain_conf.h | 19 +++++++++++++++++++
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_driver.c | 6 ++++++
> src/qemu/qemu_hotplug.c | 1 +
> 5 files changed, 41 insertions(+)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 1631421..e036d75 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -2857,6 +2861,12 @@ virDomainDeviceInfoIterateInternal(virDomainDefPtr def,
> if (cb(def, &device, &def->consoles[i]->info, opaque) < 0)
> return -1;
> }
> + device.type = VIR_DOMAIN_DEVICE_CPU;
> + for (i = 0; i < def->ncpus; i++) {
> + device.data.cpu = def->cpus[i];
> + if (cb(def, &device, &def->cpus[i]->info, opaque) < 0)
> + return -1;
> + }
> device.type = VIR_DOMAIN_DEVICE_INPUT;
> for (i = 0; i < def->ninputs; i++) {
> device.data.input = def->inputs[i];
> @@ -16015,6 +16027,7 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
> case VIR_DOMAIN_DEVICE_NONE:
> case VIR_DOMAIN_DEVICE_SMARTCARD:
> case VIR_DOMAIN_DEVICE_CHR:
> + case VIR_DOMAIN_DEVICE_CPU:
> case VIR_DOMAIN_DEVICE_MEMBALLOON:
> case VIR_DOMAIN_DEVICE_NVRAM:
> case VIR_DOMAIN_DEVICE_LAST:
The ABI stability check code needs to be implemented.
> @@ -21463,6 +21476,7 @@ virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
> case VIR_DOMAIN_DEVICE_PANIC:
> rc = virDomainPanicDefFormat(&buf, src->data.panic);
> break;
> + case VIR_DOMAIN_DEVICE_CPU:
The copy function needs to be impelemnted too (I didn't check next patch
thoug yet)
> case VIR_DOMAIN_DEVICE_NONE:
> case VIR_DOMAIN_DEVICE_SMARTCARD:
> case VIR_DOMAIN_DEVICE_MEMBALLOON:
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 8869d26..618eef3 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -108,6 +108,9 @@ typedef virDomainSmartcardDef *virDomainSmartcardDefPtr;
> typedef struct _virDomainChrDef virDomainChrDef;
> typedef virDomainChrDef *virDomainChrDefPtr;
>
> +typedef struct _virDomainCPUDef virDomainCPUDef;
> +typedef virDomainCPUDef *virDomainCPUDefPtr;
> +
> typedef struct _virDomainMemballoonDef virDomainMemballoonDef;
> typedef virDomainMemballoonDef *virDomainMemballoonDefPtr;
>
@@ -1158,6 +1163,13 @@ struct _virDomainChrDef {
> virSecurityDeviceLabelDefPtr *seclabels;
> };
>
> +struct _virDomainCPUDef {
> + char *driver;
> + int apic_id;
> +
> + virDomainDeviceInfo info;
I've looked through the next patch and you don't parse any device info
for the CPU type. Is it necessary to have it present at all in that
case?
> +};
> +
> typedef enum {
> VIR_DOMAIN_SMARTCARD_TYPE_HOST,
> VIR_DOMAIN_SMARTCARD_TYPE_HOST_CERTIFICATES,
> @@ -2342,6 +2357,7 @@ void virDomainActualNetDefFree(virDomainActualNetDefPtr def);
> void virDomainNetDefFree(virDomainNetDefPtr def);
> void virDomainSmartcardDefFree(virDomainSmartcardDefPtr def);
> void virDomainChrDefFree(virDomainChrDefPtr def);
> +void virDomainCPUDefFree(virDomainCPUDefPtr def);
Function declarations should be along with function definitions.
> void virDomainChrSourceDefFree(virDomainChrSourceDefPtr def);
> int virDomainChrSourceDefCopy(virDomainChrSourceDefPtr src,
> virDomainChrSourceDefPtr dest);
> @@ -2387,6 +2403,8 @@ void virDomainDefFree(virDomainDefPtr vm);
>
> virDomainChrDefPtr virDomainChrDefNew(void);
>
> +virDomainCPUDefPtr virDomainCPUDefNew(void);
> +
Same here
> virDomainDefPtr virDomainDefNew(const char *name,
> const unsigned char *uuid,
> int id);
> @@ -2805,6 +2823,7 @@ VIR_ENUM_DECL(virDomainChrChannelTarget)
> VIR_ENUM_DECL(virDomainChrConsoleTarget)
> VIR_ENUM_DECL(virDomainChrSerialTarget)
> VIR_ENUM_DECL(virDomainSmartcard)
> +VIR_ENUM_DECL(virDomainCPU)
> VIR_ENUM_DECL(virDomainChr)
> VIR_ENUM_DECL(virDomainChrTcpProtocol)
> VIR_ENUM_DECL(virDomainChrSpicevmc)
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index d08e400..9ceff71 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -166,6 +166,7 @@ virDomainChrTcpProtocolTypeFromString;
> virDomainChrTcpProtocolTypeToString;
> virDomainChrTypeFromString;
> virDomainChrTypeToString;
> +virDomainCPUDefFree;
Breaks "make syntax-check" again:
Expected symbol virDomainCPUDefFree is not in ELF library
The symbols entry can be added only when the function is defined.
> virDomainClockBasisTypeToString;
> virDomainClockOffsetTypeFromString;
> virDomainClockOffsetTypeToString;
Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150121/c330ea91/attachment-0001.sig>
More information about the libvir-list
mailing list