From 852e0ce0728a396cbe5a9a41541a3a1780036d5c Mon Sep 17 00:00:00 2001 From: jiangcuo Date: Fri, 17 Jan 2025 19:56:36 +0800 Subject: [PATCH] bump qemu-server to 8.3.3+port3 --- .../010-bump-version-to-8.3.3+port2.patch | 2 +- ..._64-cpu-for-compatible-with-x86-host.patch | 278 ++++++++++++++++++ packages/qemu-server/series | 1 + 3 files changed, 280 insertions(+), 1 deletion(-) create mode 100644 packages/qemu-server/patches/011-Add-x86_64-cpu-for-compatible-with-x86-host.patch diff --git a/packages/qemu-server/patches/010-bump-version-to-8.3.3+port2.patch b/packages/qemu-server/patches/010-bump-version-to-8.3.3+port2.patch index bd79c61..6fb57e8 100644 --- a/packages/qemu-server/patches/010-bump-version-to-8.3.3+port2.patch +++ b/packages/qemu-server/patches/010-bump-version-to-8.3.3+port2.patch @@ -7,7 +7,7 @@ index 87012a2a..caf93620 100644 + + * Add 'gicversion' param. + -+ -- Jiangcuo Thu, 26 Dec 2024 12:28:33 +0800 ++ -- Jiangcuo Thu, 26 Dec 2024 12:13:33 +0800 + qemu-server (8.3.3+port) bookworm; urgency=medium diff --git a/packages/qemu-server/patches/011-Add-x86_64-cpu-for-compatible-with-x86-host.patch b/packages/qemu-server/patches/011-Add-x86_64-cpu-for-compatible-with-x86-host.patch new file mode 100644 index 0000000..6cf3c15 --- /dev/null +++ b/packages/qemu-server/patches/011-Add-x86_64-cpu-for-compatible-with-x86-host.patch @@ -0,0 +1,278 @@ +diff --git a/PVE/QemuServer/CPUConfig.pm b/PVE/QemuServer/CPUConfig.pm +index f5344716..df8ea459 100644 +--- a/PVE/QemuServer/CPUConfig.pm ++++ b/PVE/QemuServer/CPUConfig.pm +@@ -39,22 +39,22 @@ sub load_custom_model_conf { + + #builtin models : reported-model is mandatory + my $builtin_models = { +- # 'x86-64-v2' => { +- # 'reported-model' => 'qemu64', +- # flags => "+popcnt;+pni;+sse4.1;+sse4.2;+ssse3", +- # }, +- # 'x86-64-v2-AES' => { +- # 'reported-model' => 'qemu64', +- # flags => "+aes;+popcnt;+pni;+sse4.1;+sse4.2;+ssse3", +- # }, +- # 'x86-64-v3' => { +- # 'reported-model' => 'qemu64', +- # flags => "+aes;+popcnt;+pni;+sse4.1;+sse4.2;+ssse3;+avx;+avx2;+bmi1;+bmi2;+f16c;+fma;+abm;+movbe;+xsave", +- # }, +- # 'x86-64-v4' => { +- # 'reported-model' => 'qemu64', +- # flags => "+aes;+popcnt;+pni;+sse4.1;+sse4.2;+ssse3;+avx;+avx2;+bmi1;+bmi2;+f16c;+fma;+abm;+movbe;+xsave;+avx512f;+avx512bw;+avx512cd;+avx512dq;+avx512vl", +- # }, ++ 'x86-64-v2' => { ++ 'reported-model' => 'qemu64', ++ flags => "+popcnt;+pni;+sse4.1;+sse4.2;+ssse3", ++ }, ++ 'x86-64-v2-AES' => { ++ 'reported-model' => 'qemu64', ++ flags => "+aes;+popcnt;+pni;+sse4.1;+sse4.2;+ssse3", ++ }, ++ 'x86-64-v3' => { ++ 'reported-model' => 'qemu64', ++ flags => "+aes;+popcnt;+pni;+sse4.1;+sse4.2;+ssse3;+avx;+avx2;+bmi1;+bmi2;+f16c;+fma;+abm;+movbe;+xsave", ++ }, ++ 'x86-64-v4' => { ++ 'reported-model' => 'qemu64', ++ flags => "+aes;+popcnt;+pni;+sse4.1;+sse4.2;+ssse3;+avx;+avx2;+bmi1;+bmi2;+f16c;+fma;+abm;+movbe;+xsave;+avx512f;+avx512bw;+avx512cd;+avx512dq;+avx512vl", ++ }, + }; + + my $depreacated_cpu_map = { +@@ -76,99 +76,99 @@ my $cputypes_32bit = { + + my $cpu_vendor_list = { + # Intel CPUs +- # 486 => 'GenuineIntel', +- # pentium => 'GenuineIntel', +- # pentium2 => 'GenuineIntel', +- # pentium3 => 'GenuineIntel', +- # coreduo => 'GenuineIntel', +- # core2duo => 'GenuineIntel', +- # Conroe => 'GenuineIntel', +- # Penryn => 'GenuineIntel', +- # Nehalem => 'GenuineIntel', +- # 'Nehalem-IBRS' => 'GenuineIntel', +- # Westmere => 'GenuineIntel', +- # 'Westmere-IBRS' => 'GenuineIntel', +- # SandyBridge => 'GenuineIntel', +- # 'SandyBridge-IBRS' => 'GenuineIntel', +- # IvyBridge => 'GenuineIntel', +- # 'IvyBridge-IBRS' => 'GenuineIntel', +- # Haswell => 'GenuineIntel', +- # 'Haswell-IBRS' => 'GenuineIntel', +- # 'Haswell-noTSX' => 'GenuineIntel', +- # 'Haswell-noTSX-IBRS' => 'GenuineIntel', +- # Broadwell => 'GenuineIntel', +- # 'Broadwell-IBRS' => 'GenuineIntel', +- # 'Broadwell-noTSX' => 'GenuineIntel', +- # 'Broadwell-noTSX-IBRS' => 'GenuineIntel', +- # 'Skylake-Client' => 'GenuineIntel', +- # 'Skylake-Client-IBRS' => 'GenuineIntel', +- # 'Skylake-Client-noTSX-IBRS' => 'GenuineIntel', +- # 'Skylake-Client-v4' => 'GenuineIntel', +- # 'Skylake-Server' => 'GenuineIntel', +- # 'Skylake-Server-IBRS' => 'GenuineIntel', +- # 'Skylake-Server-noTSX-IBRS' => 'GenuineIntel', +- # 'Skylake-Server-v4' => 'GenuineIntel', +- # 'Skylake-Server-v5' => 'GenuineIntel', +- # 'Cascadelake-Server' => 'GenuineIntel', +- # 'Cascadelake-Server-v2' => 'GenuineIntel', +- # 'Cascadelake-Server-noTSX' => 'GenuineIntel', +- # 'Cascadelake-Server-v4' => 'GenuineIntel', +- # 'Cascadelake-Server-v5' => 'GenuineIntel', +- # 'Cooperlake' => 'GenuineIntel', +- # 'Cooperlake-v2' => 'GenuineIntel', +- # KnightsMill => 'GenuineIntel', +- # 'Icelake-Client' => 'GenuineIntel', # depreacated, removed with QEMU 7.1 +- # 'Icelake-Client-noTSX' => 'GenuineIntel', # depreacated, removed with QEMU 7.1 +- # 'Icelake-Server' => 'GenuineIntel', +- # 'Icelake-Server-noTSX' => 'GenuineIntel', +- # 'Icelake-Server-v3' => 'GenuineIntel', +- # 'Icelake-Server-v4' => 'GenuineIntel', +- # 'Icelake-Server-v5' => 'GenuineIntel', +- # 'Icelake-Server-v6' => 'GenuineIntel', +- # 'SapphireRapids' => 'GenuineIntel', +- +- # # AMD CPUs +- # athlon => 'AuthenticAMD', +- # phenom => 'AuthenticAMD', +- # Opteron_G1 => 'AuthenticAMD', +- # Opteron_G2 => 'AuthenticAMD', +- # Opteron_G3 => 'AuthenticAMD', +- # Opteron_G4 => 'AuthenticAMD', +- # Opteron_G5 => 'AuthenticAMD', +- # EPYC => 'AuthenticAMD', +- # 'EPYC-IBPB' => 'AuthenticAMD', +- # 'EPYC-v3' => 'AuthenticAMD', +- #'EPYC-v4' => 'AuthenticAMD', +- # 'EPYC-Rome' => 'AuthenticAMD', +- # 'EPYC-Rome-v2' => 'AuthenticAMD', +- #'EPYC-Rome-v3' => 'AuthenticAMD', +- #'EPYC-Rome-v4' => 'AuthenticAMD', +- #'EPYC-Milan' => 'AuthenticAMD', +- #'EPYC-Milan-v2' => 'AuthenticAMD', +- #'EPYC-Genoa' => 'AuthenticAMD', ++ 486 => 'GenuineIntel', ++ pentium => 'GenuineIntel', ++ pentium2 => 'GenuineIntel', ++ pentium3 => 'GenuineIntel', ++ coreduo => 'GenuineIntel', ++ core2duo => 'GenuineIntel', ++ Conroe => 'GenuineIntel', ++ Penryn => 'GenuineIntel', ++ Nehalem => 'GenuineIntel', ++ 'Nehalem-IBRS' => 'GenuineIntel', ++ Westmere => 'GenuineIntel', ++ 'Westmere-IBRS' => 'GenuineIntel', ++ SandyBridge => 'GenuineIntel', ++ 'SandyBridge-IBRS' => 'GenuineIntel', ++ IvyBridge => 'GenuineIntel', ++ 'IvyBridge-IBRS' => 'GenuineIntel', ++ Haswell => 'GenuineIntel', ++ 'Haswell-IBRS' => 'GenuineIntel', ++ 'Haswell-noTSX' => 'GenuineIntel', ++ 'Haswell-noTSX-IBRS' => 'GenuineIntel', ++ Broadwell => 'GenuineIntel', ++ 'Broadwell-IBRS' => 'GenuineIntel', ++ 'Broadwell-noTSX' => 'GenuineIntel', ++ 'Broadwell-noTSX-IBRS' => 'GenuineIntel', ++ 'Skylake-Client' => 'GenuineIntel', ++ 'Skylake-Client-IBRS' => 'GenuineIntel', ++ 'Skylake-Client-noTSX-IBRS' => 'GenuineIntel', ++ 'Skylake-Client-v4' => 'GenuineIntel', ++ 'Skylake-Server' => 'GenuineIntel', ++ 'Skylake-Server-IBRS' => 'GenuineIntel', ++ 'Skylake-Server-noTSX-IBRS' => 'GenuineIntel', ++ 'Skylake-Server-v4' => 'GenuineIntel', ++ 'Skylake-Server-v5' => 'GenuineIntel', ++ 'Cascadelake-Server' => 'GenuineIntel', ++ 'Cascadelake-Server-v2' => 'GenuineIntel', ++ 'Cascadelake-Server-noTSX' => 'GenuineIntel', ++ 'Cascadelake-Server-v4' => 'GenuineIntel', ++ 'Cascadelake-Server-v5' => 'GenuineIntel', ++ 'Cooperlake' => 'GenuineIntel', ++ 'Cooperlake-v2' => 'GenuineIntel', ++ KnightsMill => 'GenuineIntel', ++ 'Icelake-Client' => 'GenuineIntel', # depreacated, removed with QEMU 7.1 ++ 'Icelake-Client-noTSX' => 'GenuineIntel', # depreacated, removed with QEMU 7.1 ++ 'Icelake-Server' => 'GenuineIntel', ++ 'Icelake-Server-noTSX' => 'GenuineIntel', ++ 'Icelake-Server-v3' => 'GenuineIntel', ++ 'Icelake-Server-v4' => 'GenuineIntel', ++ 'Icelake-Server-v5' => 'GenuineIntel', ++ 'Icelake-Server-v6' => 'GenuineIntel', ++ 'SapphireRapids' => 'GenuineIntel', ++ ++ # AMD CPUs ++ athlon => 'AuthenticAMD', ++ phenom => 'AuthenticAMD', ++ Opteron_G1 => 'AuthenticAMD', ++ Opteron_G2 => 'AuthenticAMD', ++ Opteron_G3 => 'AuthenticAMD', ++ Opteron_G4 => 'AuthenticAMD', ++ Opteron_G5 => 'AuthenticAMD', ++ EPYC => 'AuthenticAMD', ++ 'EPYC-IBPB' => 'AuthenticAMD', ++ 'EPYC-v3' => 'AuthenticAMD', ++ 'EPYC-v4' => 'AuthenticAMD', ++ 'EPYC-Rome' => 'AuthenticAMD', ++ 'EPYC-Rome-v2' => 'AuthenticAMD', ++ 'EPYC-Rome-v3' => 'AuthenticAMD', ++ 'EPYC-Rome-v4' => 'AuthenticAMD', ++ 'EPYC-Milan' => 'AuthenticAMD', ++ 'EPYC-Milan-v2' => 'AuthenticAMD', ++ 'EPYC-Genoa' => 'AuthenticAMD', + + # # generic types, use vendor from host node + # host => 'default', +- # kvm32 => 'default', +- # kvm64 => 'default', +- # qemu32 => 'default', +- # qemu64 => 'default', ++ kvm32 => 'default', ++ kvm64 => 'default', ++ qemu32 => 'default', ++ qemu64 => 'default', + # max => 'default', + # virt arm64 cpus + 'host' => 'default', +- 'cortex-a35' => 'default', +- 'cortex-a53' => 'default', +- 'cortex-a55' => 'default', +- 'cortex-a57' => 'default', +- 'cortex-a72' => 'default', +- 'cortex-a76' => 'default', +- 'neoverse-n1' => 'default', ++ 'cortex-a35' => 'ARM', ++ 'cortex-a53' => 'ARM', ++ 'cortex-a55' => 'ARM', ++ 'cortex-a57' => 'ARM', ++ 'cortex-a72' => 'ARM', ++ 'cortex-a76' => 'ARM', ++ 'neoverse-n1' => 'ARM', + 'max' => 'default', +- 'la464_loongarch_cpu' => 'default', +- 'rv64' => 'default', +- 'la464' => 'default', +- 'la132' => 'default', +- 'Kunpeng-920' => 'default', ++ 'la464_loongarch_cpu' => 'LoongARCH', ++ 'rv64' => 'RISCV', ++ 'la464' => 'LoongARCH', ++ 'la132' => 'LoongARCH', ++ 'Kunpeng-920' => 'ARM', + }; + + my @supported_cpu_flags = ( +@@ -635,15 +635,12 @@ sub get_cpu_options { + + # $cputype is the "reported-model" for custom types, so we can just look up + # the vendor in the default list +- my $cpu_vendor = $cpu_vendor_list->{$cputype}; ++ my $cpu_vendor = $cpu_vendor_list->{$cputype} if $arch eq 'x86_64'; + if ($cpu_vendor) { +- $pve_forced_flags->{'vendor'} = { +- value => $cpu_vendor, +- } if $cpu_vendor ne 'default'; +- } elsif ($arch ne 'loongarch64') { +- die "internal error"; # should not happen +- } +- ++ $pve_forced_flags->{'vendor'} = { ++ value => $cpu_vendor, ++ } if $cpu_vendor ne 'default'; ++ } + my $cpu_str = $cputype; + + # will be resolved in parameter order +@@ -781,6 +778,7 @@ sub get_default_cpu_type { + $cputype = 'host' if $arch eq 'arm'; + $cputype = 'rv64' if $arch eq 'riscv64'; + $cputype = 'max' if $arch eq 'loongarch64'; ++ $cputype = 'host' if $arch eq 'x86_64'; + + return $cputype; + } +diff --git a/debian/changelog b/debian/changelog +index caf93620..7b1cf9c2 100644 +--- a/debian/changelog ++++ b/debian/changelog +@@ -1,8 +1,14 @@ ++qemu-server (8.3.3+port3) bookworm; urgency=medium ++ ++ * Add x86_64 cpu for compatible with x86 host ++ ++ -- Jiangcuo Fri, 17 Jan 2025 11:57:51 +0800 ++ + qemu-server (8.3.3+port2) bookworm; urgency=medium + + * Add 'gicversion' param. + +- -- Jiangcuo Thu, 26 Dec 2024 12:13:33 +0800 ++ -- Jiangcuo Thu, 26 Dec 2024 12:14:33 +0800 + + qemu-server (8.3.3+port) bookworm; urgency=medium + diff --git a/packages/qemu-server/series b/packages/qemu-server/series index 19258c5..47487fa 100644 --- a/packages/qemu-server/series +++ b/packages/qemu-server/series @@ -7,3 +7,4 @@ patches/006-bump-qemu-server-to-8.3.2+port.patch patches/007-bump-version-to-8.3.3+port.patch patches/009-add-gicversion-param.patch patches/010-bump-version-to-8.3.3+port2.patch +patches/011-Add-x86_64-cpu-for-compatible-with-x86-host.patch