[pve-devel] [PATCH 3/3] kvm: introduce qemuver and set machine flag based on qemuver

Stefan Priebe s.priebe at profihost.ag
Wed May 29 23:57:55 CEST 2013


i sent a first implementation approach using your patch idea.

With the title: "add a forcemachine parameter to force a specific qemu 
machine version"

Am 29.05.2013 22:01, schrieb Stefan Priebe:
> Am 29.05.2013 06:45, schrieb Dietmar Maurer:
>>>>> But the qemu version might have change since you started the VM. So
>>>>> if you query the version on doing the snapshot it might not be the
>>>>> version actually running. This also affects migrations.
>>>>
>>>> So you need to query the 'machine' type qemu is actually using (not a
>>>> 'version')?
>>>
>>> I only found a way to query the available machine types (including
>>> default
>>> type):
>>>
>>>    my $cmd = { execute => 'query-machines', arguments => {} };
>>>    my $res = PVE::QemuServer::vm_qmp_command($vmid, $cmd);
>>>
>>> But I this also changes on updates.
>>>
>>> Maybe we can change that to include the currently used machine type?
>>>
>>
>> So maybe the following would help?
>>
>> Index: new/qapi-schema.json
>> ===================================================================
>> --- new.orig/qapi-schema.json    2013-05-29 06:32:28.000000000 +0200
>> +++ new/qapi-schema.json    2013-05-29 06:35:27.000000000 +0200
>> @@ -2947,11 +2947,13 @@
>>   #
>>   # @default: #optional whether the machine is default
>>   #
>> +# @current: #optional whether this machine is currently used
>> +#
>>   # Since: 1.2.0
>>   ##
>>   { 'type': 'MachineInfo',
>>     'data': { 'name': 'str', '*alias': 'str',
>> -            '*is-default': 'bool' } }
>> +            '*is-default': 'bool', '*is-current': 'bool', } }
>>
>>   ##
>>   # @query-machines:
>> Index: new/vl.c
>> ===================================================================
>> --- new.orig/vl.c    2013-05-29 06:32:28.000000000 +0200
>> +++ new/vl.c    2013-05-29 06:39:13.000000000 +0200
>> @@ -1579,6 +1579,11 @@
>>
>>           info->name = g_strdup(m->name);
>>
>> +        if (strcmp(m->name, current_machine->name) == 0) {
>> +            info->has_is_current = true;
>> +            info->is_current = true;
>> +        }
>> +
>>           entry = g_malloc0(sizeof(*entry));
>>           entry->value = info;
>>           entry->next = mach_list;
>>
>
> Great! this one works fine! will post new patches based upon this / our
> kvm patch.
>
> Stefan
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel



More information about the pve-devel mailing list