[pve-devel] cpuflag: pcid needed in guest for good performance after meltdown

Stefan Priebe - Profihost AG s.priebe at profihost.ag
Tue Jan 9 14:39:48 CET 2018


Am 09.01.2018 um 14:36 schrieb Alexandre DERUMIER:
>>> i've the first customers having impacts. Current badest example: instead
>>> of 12% cpu load 75% cpu load in guest.
> 
> Just curious, what kind of workload ?

MySQL only - small blocks

> I think with ceph and librbd, it'll hurt too for small block.

Yes i'm booting ceph as well with pti=off / have no updated them at all.

> (I think I'll disable the patch cluster/osd side, as it's in a secure network, but client side will be impacted)

So the problem in my case is completely client impacted.

Greets,
Stefan

> 
> ----- Mail original -----
> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag>
> À: "aderumier" <aderumier at odiso.com>
> Cc: "pve-devel" <pve-devel at pve.proxmox.com>
> Envoyé: Mardi 9 Janvier 2018 14:32:27
> Objet: Re: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown
> 
> Am 09.01.2018 um 14:24 schrieb Alexandre DERUMIER: 
>> ok thanks ! 
> 
> i've the first customers having impacts. Current badest example: instead 
> of 12% cpu load 75% cpu load in guest. 
> 
>> ----- Mail original ----- 
>> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag> 
>> À: "aderumier" <aderumier at odiso.com> 
>> Cc: "pve-devel" <pve-devel at pve.proxmox.com> 
>> Envoyé: Mardi 9 Janvier 2018 14:10:27 
>> Objet: Re: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown 
>>
>> Am 09.01.2018 um 13:02 schrieb Alexandre DERUMIER: 
>>>>> You mean: 
>>>>> -cpu qemu64,+pcid 
>>>
>>> yes. 
>>>
>>> (don't known the perf difference between qemu64 (without pcid), and intel cpu model (without pcid too) ? ) 
>>
>> The results are nearly the same. 
>>
>> Same VM as before now model qemu64,+pcid: 
>> real 0m13.870s 
>> user 0m7.128s 
>> sys 0m6.697s 
>>
>> qemu64: 
>> real 0m25.214s 
>> user 0m16.923s 
>> sys 0m8.956s 
>>
>> Stefan 
>>>
>>> ----- Mail original ----- 
>>> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag> 
>>> À: "aderumier" <aderumier at odiso.com> 
>>> Cc: "pve-devel" <pve-devel at pve.proxmox.com> 
>>> Envoyé: Mardi 9 Janvier 2018 12:57:30 
>>> Objet: Re: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown 
>>>
>>> Am 09.01.2018 um 12:55 schrieb Alexandre DERUMIER: 
>>>>>> Yes - see an example which does a lot of syscalls: 
>>>>
>>>> and for qemu64 ? (is it possible to sent +pcid too ?) 
>>>
>>> You mean: 
>>> -cpu qemu64,+pcid 
>>> ? 
>>>
>>> Stefan 
>>>
>>>> ----- Mail original ----- 
>>>> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag> 
>>>> À: "aderumier" <aderumier at odiso.com> 
>>>> Cc: "pve-devel" <pve-devel at pve.proxmox.com> 
>>>> Envoyé: Mardi 9 Janvier 2018 12:20:04 
>>>> Objet: Re: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown 
>>>>
>>>> Am 09.01.2018 um 10:43 schrieb Alexandre DERUMIER: 
>>>>>>> That's bad as pcid is very important to performance for meltdown fixes 
>>>>>>> in the linux kernel. 
>>>>>
>>>>> I wonder the difference of performance for 
>>>>>
>>>>> - qemu64|kvm64 cpu model 
>>>>> - intel cpu model 
>>>>> - intel + pcid cpu model ? 
>>>>>
>>>>> (currently I'm running mainly qemu64 because I don't need advanced cpu flag) 
>>>>>
>>>>> Do you have already done some benchmarks ? 
>>>>
>>>>
>>>> Yes - see an example which does a lot of syscalls: 
>>>>
>>>> no tasks running other than du: 
>>>>
>>>> no pcid: 
>>>> # time for i in $(seq 1 1 50); do du -sx /; done 
>>>> ... 
>>>> real 0m26.614s 
>>>> user 0m17.548s 
>>>> sys 0m9.056s 
>>>>
>>>>
>>>> kvm started with +pcid: 
>>>> # time for i in $(seq 1 1 50); do du -sx /; done 
>>>> ... 
>>>> real 0m14.734s 
>>>> user 0m7.755s 
>>>> sys 0m6.973s 
>>>>
>>>> Greets, 
>>>> Stefan 
>>>>
>>>>>
>>>>> ----- Mail original ----- 
>>>>> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag> 
>>>>> À: "aderumier" <aderumier at odiso.com> 
>>>>> Cc: "pve-devel" <pve-devel at pve.proxmox.com> 
>>>>> Envoyé: Mardi 9 Janvier 2018 10:20:39 
>>>>> Objet: Re: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown 
>>>>>
>>>>> Am 09.01.2018 um 09:18 schrieb Alexandre DERUMIER: 
>>>>>> they are a discussion on qemu mailing currently about pcid 
>>>>>>
>>>>>>
>>>>>> From paolo bonzini: 
>>>>>>
>>>>>> " 
>>>>>> Note that PCID is still not supported for guests without EPT, so 
>>>>>> this would break ept=0 with recent "-cpu" models. I'm not sure of 
>>>>>> a way to fix it; probably it just has to be documented." 
>>>>>
>>>>> That's bad as pcid is very important to performance for meltdown fixes 
>>>>> in the linux kernel. 
>>>>>
>>>>> Stefan 
>>>>>
>>>>>>
>>>>>> ----- Mail original ----- 
>>>>>> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag> 
>>>>>> À: "pve-devel" <pve-devel at pve.proxmox.com>, "aderumier" <aderumier at odiso.com> 
>>>>>> Envoyé: Mardi 9 Janvier 2018 08:35:00 
>>>>>> Objet: Re: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown 
>>>>>>
>>>>>> Am 08.01.2018 um 23:23 schrieb Alexandre DERUMIER: 
>>>>>>> I think it's not exposed in current cpu model 
>>>>>>>
>>>>>>> it can be enabled with "+pcid" 
>>>>>>>
>>>>>>>
>>>>>>> I don't known what it's the best way to add it in proxmox. 
>>>>>>> We could do it with qemu version upgrade, but qemu 2.10 are not ready. 
>>>>>>
>>>>>> Yes but that was always bad at least to me. We're limiting ourselfes if 
>>>>>> we can only add new qemu features with a new qemu version. 
>>>>>>
>>>>>> What about a version or feature field in the guest config which we only 
>>>>>> update on a fresh vm start. 
>>>>>>
>>>>>> Something like this: 
>>>>>> 123.conf: 
>>>>>> ... 
>>>>>> pve_qemu_version: 2.11-10 
>>>>>> ... 
>>>>>>
>>>>>> This field is ONLY and ALWAYS updated in a fresh start not on migration. 
>>>>>> This can be easily detected. 
>>>>>>
>>>>>> Than we can do stuff like 
>>>>>> if (version_cmp($conf->{pve_qemu_version}, "2.11-11")) { 
>>>>>> # enable pcid flag 
>>>>>> } 
>>>>>>
>>>>>> Greets 
>>>>>> Stefan 
>>>>>>
>>>>>>> Maybe add new cpumodel with +pcid enabled ? 
>>>>>>> or add code to manage custom cpuflags and add a checkbox in cpu options ? 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ----- Mail original ----- 
>>>>>>> De: "Stefan Priebe, Profihost AG" <s.priebe at profihost.ag> 
>>>>>>> À: "pve-devel" <pve-devel at pve.proxmox.com> 
>>>>>>> Envoyé: Lundi 8 Janvier 2018 21:34:57 
>>>>>>> Objet: [pve-devel] cpuflag: pcid needed in guest for good performance after meltdown 
>>>>>>>
>>>>>>> Hello, 
>>>>>>>
>>>>>>> for meltdown mitigation and performance it's important to have the pcid 
>>>>>>> flag passed down to the guest (f.e. 
>>>>>>> https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU). 
>>>>>>>
>>>>>>> My host shows the flag: 
>>>>>>> # grep ' pcid ' /proc/cpuinfo | wc -l 
>>>>>>> 56 
>>>>>>>
>>>>>>> But the guest does not: 
>>>>>>> # grep pcid /proc/cpuinfo 
>>>>>>> # 
>>>>>>>
>>>>>>> Guest was started with: 
>>>>>>> -cpu IvyBridge,+kvm_pv_unhalt,+kvm_pv_eoi,enforce,vendor=GenuineIntel 
>>>>>>>
>>>>>>> Is this something missing in host kernel or in PVE? 
>>>>>>>
>>>>>>> Greets, 
>>>>>>> Stefan 
>>>>>>> _______________________________________________ 
>>>>>>> pve-devel mailing list 
>>>>>>> pve-devel at pve.proxmox.com 
>>>>>>> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 
>>>>>>>
>>>>>>> _______________________________________________ 
>>>>>>> pve-devel mailing list 
>>>>>>> pve-devel at pve.proxmox.com 
>>>>>>> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
> 



More information about the pve-devel mailing list