[pve-devel] applied-series: [PATCH qemu-server 1/3] Make hv-tlbflush and hv-evmcs optional and merge flag list

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Jul 23 18:27:53 CEST 2019


On 7/23/19 1:41 PM, Stefan Reiter wrote:
> Both flags were causing issues and have been made into optional flags to
> be manually selected by the user if needed.
> 
> The supported flags have been merged into a single list for convenience.
> 
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> ---
> 
> I tested live migration from a machine without the patch (i.e. a VM that's
> running with hv_tlbflush enabled, in a setup where it doesn't crash) to one with
> the patch applied, and there were no issues.
> Tracing KVM showed that the VM was still using hv_tlbflush until the next
> reboot (after migration), so it seems that the CPU flag is only checked on guest
> boot.

great, much thanks for this detailed and good test!

Applied, and rest of series too.

> 
> Bluescreens with hv-tlbflush have been reported multiple times:
> https://forum.proxmox.com/threads/windows-guest-bluescreen-with-proxmox-6.56053/
> 
>  PVE/QemuServer.pm | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 4bde3a7..e1dc14f 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -167,7 +167,20 @@ my $cpu_vendor_list = {
>      max => 'default',
>  };
>  
> -my $cpu_flag = qr/[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear)/;
> +my @supported_cpu_flags = (
> +    'pcid',
> +    'spec-ctrl',
> +    'ibpb',
> +    'ssbd',
> +    'virt-ssbd',
> +    'amd-ssbd',
> +    'amd-no-ssb',
> +    'pdpe1gb',
> +    'md-clear',
> +    'hv-tlbflush',
> +    'hv-evmcs'
> +);
> +my $cpu_flag = qr/[+-](@{[join('|', @supported_cpu_flags)]})/;
>  
>  my $cpu_fmt = {
>      cputype => {
> @@ -193,7 +206,7 @@ my $cpu_fmt = {
>      flags => {
>  	description => "List of additional CPU flags separated by ';'."
>  		     . " Use '+FLAG' to enable, '-FLAG' to disable a flag."
> -		     . " Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb', 'md-clear'.",
> +		     . " Currently supported flags: @{[join(', ', @supported_cpu_flags)]}.",
>  	format_description => '+FLAG[;-FLAG...]',
>  	type => 'string',
>  	pattern => qr/$cpu_flag(;$cpu_flag)*/,
> @@ -7237,10 +7250,7 @@ sub add_hyperv_enlightenments {
>  	}
>  
>  	if (qemu_machine_feature_enabled ($machine_type, $kvmver, 3, 1)) {
> -	    push @$cpuFlags , 'hv_tlbflush';
>  	    push @$cpuFlags , 'hv_ipi';
> -	    # FIXME: AMD does not supports this currently, only add with special flag??
> -	    #push @$cpuFlags , 'hv_evmcs';
>  	}
>      }
>  }
> 





More information about the pve-devel mailing list