[libvirt] [PATCH v2 4/7] qemu: get arch name from <cpu> element

Jiri Denemark jdenemar at redhat.com
Fri Jan 27 14:44:34 UTC 2012


On Fri, Jan 27, 2012 at 14:49:49 +0100, Paolo Bonzini wrote:
> The qemu32 CPU model is chosen based on the <os arch=...> name when
> creating the QEMU command line for a 64-bit host.  For the opposite
> transformation we can test the guest CPU model for the "lm" feature.
> If it is absent, def->os.arch needs to be corrected.
> 
> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ---
>  src/qemu/qemu_command.c |   18 ++++++++++++++++++
>  1 files changed, 18 insertions(+), 0 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index fc337f7..7fe8c48 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -6830,6 +6830,24 @@ qemuParseCommandLineCPU(virDomainDefPtr dom,
>          }
>      } while ((p = next));
>  
> +    if (STREQ(dom->os.arch, "x86_64")) {
> +        bool is_32bit = false;
> +        union cpuData *cpuData = NULL;
> +        int ret;
> +
> +        ret = cpuEncode("x86_64", cpu, NULL, &cpuData,
> +                        NULL, NULL, NULL, NULL);
> +        if (ret < 0)
> +            goto error;
> +
> +        is_32bit = (cpuHasFeature("x86_64", cpuData, "lm") != 1);
> +        cpuDataFree("x86_64", cpuData);

OK, this proves I still didn't embed the arch into cpu so that we don't have
to pass it to all cpu* APIs. Perhaps I'll find some time for this soon.

Anyway, you're patch is good, ACK.

Jirka




More information about the libvir-list mailing list