[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