[libvirt] [PATCH 1/4] parallels: set cpu mode when applying xml configuration

Michal Privoznik mprivozn at redhat.com
Tue Mar 17 14:51:11 UTC 2015


On 13.03.2015 16:40, Maxim Nestratov wrote:
> From: Mikhail Feoktistov <mfeoktistov at parallels.com>
> 
> Otherwise exporting existing domain config and defining a new one like this:
> virsh -c parallels:///system dumpxml instance01 > my.xml
> virsh -c parallels:///system define my.xml
> leads to an error because PCS default x64 mode turns to x32.
> Thus, we need to set correct cpuMode in prlsdkDoApplyConfig() explicitly.
> 
> Signed-off-by: Mikhail Feoktistov <mfeoktistov at parallels.com>
> Signed-off-by: Maxim Nestratov <mnestratov at parallels.com>
> ---
>  src/parallels/parallels_sdk.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
> 
> diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
> index 4c90a18..b6026fd 100644
> --- a/src/parallels/parallels_sdk.c
> +++ b/src/parallels/parallels_sdk.c
> @@ -2957,6 +2957,19 @@ prlsdkDoApplyConfig(virConnectPtr conn,
>      prlsdkCheckRetGoto(pret, error);
>      VIR_FREE(mask);
>  
> +    switch (def->os.arch) {
> +        case VIR_ARCH_X86_64:
> +            pret = PrlVmCfg_SetCpuMode(sdkdom, PCM_CPU_MODE_64);
> +            break;
> +        case VIR_ARCH_I686:
> +            pret = PrlVmCfg_SetCpuMode(sdkdom, PCM_CPU_MODE_32);
> +            break;
> +        default:
> +            virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown CPU mode: %X"), def->os.arch);

We can use virArchToString() to report human readable cpu arch.

> +            goto error;
> +    }
> +    prlsdkCheckRetGoto(pret, error);
> +
>      if (prlsdkClearDevices(sdkdom) < 0)
>          goto error;
>  
> 

ACK with this squashed in:

diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
index ec3372f..3a7efe3 100644
--- a/src/parallels/parallels_sdk.c
+++ b/src/parallels/parallels_sdk.c
@@ -2894,7 +2894,9 @@ prlsdkDoApplyConfig(PRL_HANDLE sdkdom,
             pret = PrlVmCfg_SetCpuMode(sdkdom, PCM_CPU_MODE_32);
             break;
         default:
-            virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown CPU mode: %X"), def->os.arch);
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("Unknown CPU mode: %s"),
+                           virArchToString(def->os.arch));
             goto error;
     }
     prlsdkCheckRetGoto(pret, error);


Michal




More information about the libvir-list mailing list