Add missing feature bits in EPYC-Milan model

Bug #2019968 reported by Markus Schade
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Confirmed
Undecided
Unassigned
Jammy
Confirmed
Undecided
Unassigned
Kinetic
Won't Fix
Undecided
Unassigned
Lunar
Won't Fix
Undecided
Unassigned
Mantic
Confirmed
Undecided
Unassigned
qemu (Ubuntu)
New
Undecided
Sergio Durigan Junior
Jammy
New
Undecided
Unassigned
Kinetic
Won't Fix
Undecided
Unassigned
Lunar
New
Undecided
Unassigned
Mantic
New
Undecided
Sergio Durigan Junior

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://<email address hidden>/

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

Tags: server-todo
description: updated
description: updated
description: updated
Lena Voytek (lvoytek)
tags: added: server-triage-discuss
Robie Basak (racb)
Changed in qemu (Ubuntu Mantic):
assignee: nobody → Sergio Durigan Junior (sergiodj)
tags: added: server-todo
removed: server-triage-discuss
Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

As far as I have researched, the Linux patches pointed by Markus haven't been backported to any of our kernels yet. As such, I am adding a Linux task to this bug so that the kernel team can chime in and provide some feedback as to whether these patches will be backported.

@Kernel team, could you please take a look and let us know? TIA.

Revision history for this message
Utkarsh Gupta (utkarsh) wrote :

Ubuntu 22.10 (Kinetic Kudu) has reached end of life, so this bug will not be fixed for that specific release.

Changed in linux (Ubuntu Kinetic):
status: New → Won't Fix
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 2019968

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu Jammy):
status: New → Incomplete
Changed in linux (Ubuntu Lunar):
status: New → Incomplete
Changed in linux (Ubuntu Jammy):
status: Incomplete → New
Changed in linux (Ubuntu Lunar):
status: Incomplete → New
Changed in linux (Ubuntu Mantic):
status: Incomplete → New
Changed in qemu (Ubuntu Kinetic):
status: New → Won't Fix
Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu Jammy):
status: New → Incomplete
Changed in linux (Ubuntu Lunar):
status: New → Incomplete
Changed in linux (Ubuntu Jammy):
status: Incomplete → Confirmed
Changed in linux (Ubuntu Lunar):
status: Incomplete → Confirmed
Changed in linux (Ubuntu Mantic):
status: Incomplete → Confirmed
Revision history for this message
Brian Murray (brian-murray) wrote :

Ubuntu 23.04 (Lunar Lobster) has reached end of life, so this bug will not be fixed for that specific release.

Changed in linux (Ubuntu Lunar):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.