From: Oleg Strikov Date: Tue, 11 Feb 2014 15:51:41 +0000 (+0400) Subject: qemu: Implement a stub cpuArchDriver.baseline() handler for aarch64 X-Git-Tag: v1.2.2-rc1~129 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69fba97f631c26a322bf9f2949d05c4b7c60c58a;p=thirdparty%2Flibvirt.git qemu: Implement a stub cpuArchDriver.baseline() handler for aarch64 Openstack Nova calls virConnectBaselineCPU() during initialization of the instance to get a full list of CPU features. This patch adds a stub to aarch64-specific code to handle this request (no actual work is done). That's enough to have this stub with limited functionality because qemu/kvm backend supports only 'host-passthrough' cpu mode on aarch64. Signed-off-by: Oleg Strikov --- diff --git a/src/cpu/cpu_aarch64.c b/src/cpu/cpu_aarch64.c index f674bff156..3c3e749f7c 100644 --- a/src/cpu/cpu_aarch64.c +++ b/src/cpu/cpu_aarch64.c @@ -85,6 +85,29 @@ AArch64GuestData(virCPUDefPtr host ATTRIBUTE_UNUSED, return VIR_CPU_COMPARE_IDENTICAL; } +static virCPUDefPtr +AArch64Baseline(virCPUDefPtr *cpus, + unsigned int ncpus ATTRIBUTE_UNUSED, + const char **models ATTRIBUTE_UNUSED, + unsigned int nmodels ATTRIBUTE_UNUSED, + unsigned int flags) +{ + virCPUDefPtr cpu = NULL; + + virCheckFlags(VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, NULL); + + if (VIR_ALLOC(cpu) < 0 || + VIR_STRDUP(cpu->model, cpus[0]->model) < 0) { + virCPUDefFree(cpu); + return NULL; + } + + cpu->type = VIR_CPU_TYPE_GUEST; + cpu->match = VIR_CPU_MATCH_EXACT; + + return cpu; +} + struct cpuArchDriver cpuDriverAARCH64 = { .name = "aarch64", .arch = archs, @@ -95,7 +118,7 @@ struct cpuArchDriver cpuDriverAARCH64 = { .free = AArch64DataFree, .nodeData = AArch64NodeData, .guestData = AArch64GuestData, - .baseline = NULL, + .baseline = AArch64Baseline, .update = AArch64Update, .hasFeature = NULL, };