[libvirt] [PATCH V1 1/2] cpu: Handle only high order 16 bits of PVR for IBM Power processors
Pradipta Kumar Banerjee
bpradip at in.ibm.com
Wed Aug 20 03:50:58 UTC 2014
On 08/20/2014 09:02 AM, Martin Kletzander wrote:
> On Tue, Aug 19, 2014 at 11:00:12PM +0530, Pradipta Kr. Banerjee wrote:
>> IBM Power processors encode PVR as CPU family in higher 16 bits and a CPU
>> version in lower 16 bits. Since there is no significant change in behavior
>> between versions, there is no point to add every single CPU version in
>> cpu_map.xml and check for the same in cpu_powerpc.c
>>
>
> Just an idea, but what if we select the model based on the whole pvr
> and only in case none is found, we will fallback to the first one that
> has the same high 16 bits? When we have already power8_v1.0 and
> you're adding power8, we will never select the second one in the way
> you have implemented it.
Actually none of the model_vX.X are required. Only base processor versions are
required. Should I send a V2 with those changes ?
Additionally PowerKVM doesn't support specifying cpu model for guests (qemu
cmdline: -cpu <MODEL>). The only way possible is to use qemu compat mode (qemu
cmdline: -cpu host,compat=model) support of which is yet to be added in libvirt.
The only supported models in compat modes are power6,power7,power8.
There was an RFC posted on the same -
https://www.redhat.com/archives/libvir-list/2014-June/msg01338.html
Please let me know your thoughts.
>
>> Signed-off-by: Pradipta Kr. Banerjee <bpradip at in.ibm.com>
>> ---
>> src/cpu/cpu_powerpc.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/cpu/cpu_powerpc.c b/src/cpu/cpu_powerpc.c
>> index 67cb9ff..18dbc99 100644
>> --- a/src/cpu/cpu_powerpc.c
>> +++ b/src/cpu/cpu_powerpc.c
>> @@ -93,7 +93,12 @@ ppcModelFindPVR(const struct ppc_map *map,
>>
>> model = map->models;
>> while (model != NULL) {
>> - if (model->data.pvr == pvr)
>> + /*IBM PowerPC processors encode PVR as CPU family in higher 16 bits and
>> + *a CPU version in lower 16 bits. Since there is no significant change
>> + *in behavior between versions, there is no point to add every single
>> + *CPU version in cpu_map.xml
>> + */
>> + if ((model->data.pvr & 0xFFFF0000) == (pvr & 0xFFFF0000))
>> return model;
>>
>> model = model->next;
>> --
>> 1.9.3
>>
>> --
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
>
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>
--
Regards,
Pradipta Kumar B(bpradip at in.ibm.com)
IBM Systems & Technology Labs,
India.
More information about the libvir-list
mailing list