Hi Christian and Lukas, For qemu, I can confirm that the patch works as expected:
# qemu-system-x86_64 -cpu ? | grep Milan x86 EPYC-Milan (alias configured by machine type) x86 EPYC-Milan-v1 AMD EPYC-Milan Processor x86 EPYC-Milan-v2 AMD EPYC-Milan-v2 Processor Since the linux-image-generic kernel (5.15.0-131-generic) lacks the CPU patches for the model, the new model doesn't work there, yet. # qemu-system-x86_64 -enable-kvm -cpu EPYC-Milan-v2,enforce=on qemu: module ui-ui-gtk not found, do you want to install qemu-system-gui package? qemu: module ui-ui-sdl not found, do you want to install qemu-system-gui package? qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000008H:EBX.amd-psfd [bit 28] qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000021H:EAX.no-nested-data-bp [bit 0] qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000021H:EAX.lfence-always-serializing [bit 2] qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000021H:EAX.null-sel-clr-base [bit 6] qemu-system-x86_64: Host doesn't support requested features But using the linux-image-generic-hwe-22.04 kernel (6.8.0-52-generic) yields the expected results: # qemu-system-x86_64 -enable-kvm -cpu EPYC-Milan-v2,enforce=on qemu: module ui-ui-gtk not found, do you want to install qemu-system-gui package? qemu: module ui-ui-sdl not found, do you want to install qemu-system-gui package? VNC server running on 127.0.0.1:5900 Accordingly in a noble VM, we gain "vaes" and "vpclmulqdq": model name : AMD EPYC-Milan-v2 Processor flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr wbnoinvd arat npt nrip_save umip pku ospke vaes vpclmulqdq rdpid fsrm -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/2019968 Title: Add missing feature bits in EPYC-Milan model Status in linux package in Ubuntu: Confirmed Status in qemu package in Ubuntu: Fix Released Status in linux source package in Jammy: Confirmed Status in qemu source package in Jammy: Fix Committed Status in linux source package in Kinetic: Won't Fix Status in qemu source package in Kinetic: Won't Fix Status in linux source package in Lunar: Won't Fix Status in qemu source package in Lunar: Won't Fix Status in linux source package in Mantic: Won't Fix Status in qemu source package in Mantic: Won't Fix Bug description: [Impact] Add the following feature bits for EPYC-Milan model and bump the version. vaes : Vector VAES(ENC|DEC), VAES(ENC|DEC)LAST instruction support vpclmulqdq : Vector VPCLMULQDQ instruction support stibp-always-on : Single Thread Indirect Branch Prediction Mode has enhanced performance and may be left Always on amd-psfd : Predictive Store Forward Disable no-nested-data-bp : Processor ignores nested data breakpoints lfence-always-serializing : LFENCE instruction is always serializing null-sel-clr-base : Null Selector Clears Base. When this bit is set, a null segment load clears the segment base [Test Plan] * First of all we'll (and have in advance) run general regression tests * Qemu shall show to be aware of the new types # qemu-system-x86_64 -cpu ? | grep EPYC-Milan x86 EPYC-Milan (alias configured by machine type) x86 EPYC-Milan-v1 AMD EPYC-Milan Processor x86 EPYC-Milan-v2 AMD EPYC-Milan Processor [Where problems could occur] * There are two areas to look at a) compat behavior on old systems - e.g. libvirt would now detect IBRS on such AMD chips and one might wonder about the change. E.g. compatibility would exist between old-code/new-code/old->new code; but any action (e.g. suspend resume) from new to old code might run into trouble (not supported that way but worth to mention for awareness) b) Migrations between systems - this should be covered by chip versioning but still is worth to mention. Versioning will recognize a formerly started system as v1 and continue to handle it that way. Only new started guests would become v2 and behave the new and improved way. [Other Info] * n/a --- https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg02082.html https://github.com/qemu/qemu/commit/27f03be6f59d04bd5673ba1e1628b2b490f9a9ff.patch This patch depends on the definitions that were added as part of the EPYC-Milan patch: amd-psfd, stibp-always-on: * https://github.com/qemu/qemu/commit/bb039a230e6a7920d71d21fa9afee2653a678c48.patch Add feature bits for CPUID_Fn80000021_EAX: * https://github.com/qemu/qemu/commit/b70eec312b185197d639bff689007727e596afd1.patch Kernel patches: https://lkml.kernel.org/lkml/20230124163319.2277355-1-kim.phill...@amd.com/ kvm: Add support for CPUID_80000021_EAX * https://github.com/torvalds/linux/commit/8415a74852d7c24795007ee9862d25feb519007c.patch kvm: Add the NO_NESTED_DATA_BP feature * https://github.com/torvalds/linux/commit/a9dc9ec5a1fafc3d2fe7a7b594eefaeaccf89a6b.patch kvm: Move X86_FEATURE_LFENCE_RDTSC to its native leaf * https://github.com/torvalds/linux/commit/84168ae786f8a15a7eb0f79d34f20b8d261ce2f5.patch kvm: Add the Null Selector Clears Base feature * https://github.com/torvalds/linux/commit/5b909d4ae59aedc711b7a432da021be0e82c95a0.patch kvm: Add the SMM_CTL MSR not present feature https://github.com/torvalds/linux/commit/faabfcb194a8d0686396e3fff6a5b42911f65191.patch And probably this one as well: KVM: Add common feature flag for AMD's PSFD https://github.com/torvalds/linux/commit/3d8f61bf8bcd69bcd397276d53aa18f7ca8347f9.patch To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2019968/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp