From: Ben Cheatham <Benjamin.Cheatham@amd.com>
To: <pbonzini@redhat.com>, <zhao1.liu@intel.com>
Cc: <qemu-devel@nongnu.org>, Ben Cheatham <Benjamin.Cheatham@amd.com>
Subject: [PATCH 0/4] Update TSA mitigations for Zen3+
Date: Fri, 13 Nov 2026 11:49:22 -0600 [thread overview]
Message-ID: <20261113174926.1861-1-Benjamin.Cheatham@amd.com> (raw)
This set adds new model versions for Zen3 (EPYC-Milan) through Zen5
(EPYC-Turin) to bring TSA mitigations up to date. This is done in two
parts:
1. Add a definition for the new TSA-FILL variant (Patch 1)
Only Zen5 is vulnerable to this TSA variant. QEMU invocations for
Zen3 and Zen4 may add "+tsa-fill-no" to the "-cpu" argument to
set this feature bit.
This bit is not set by default because it's not supported
by SEV firmware on Zen3 and Zen4. If you try to start a SEV-SNP
VM with this bit set the guest will fail to boot due to the
firmware rejecting the modified CPUID page.
2. Set the "verw-clear" feature bit for Zen3 through Zen5
(Patches 2, 3, and 4)
This bit is used to mitigate the TSA-L1 and TSA-SQ vectors on
Zen3 and Zen4, and the TSA-FILL variant on Zen5. The definition
for verw-clear was already in place, but unused. This set
rectifies that by setting the verw-clear bit in an updated model
for Zen3, 4, and 5.
Updated microcode is required for Zen5. Any revision later than
0xb002175 for Turin Classic or 0x0B101066 for Turin Dense will
work. Updated microcode is available in the latest PI release
or from linux-firmware.
Updated microcode has been available for Zen3 & Zen4 for a
while, but there is a revision check performed by the Linux
kernel. If QEMU is complaining about the "verw-clear" bit being
missing, please update to the latest PI release or microcode in
linux-firmware.
Linux kernel support for these changes was just merged, see [1].
Quick note: This set conflicts with the Venice & Turin v3 model I sent out
a few weeks ago[2]. The only conflicting portion is the Turin model patch,
either that patch's number can be bumped to v4 or the two patches can be
merged if both sets are picked up at the same time.
[1]:
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cf27412f19c9cc5909b9107cd1b3f4ab7608e362
[2]:
Link: https://lore.kernel.org/qemu-devel/20261029195623.2209-1-Benjamin.Cheatham@amd.com/
Thanks,
Ben
Ben Cheatham (4):
target/i386: Add TSA attack variant TSA-FILL
target/i386: Add EPYC-Milan-v5 Model
target/i386: Add EPYC-Genoa-v4 Model
target/i386: Add EPYC-Turin-v3 Model
target/i386/cpu.c | 32 +++++++++++++++++++++++++++++++-
target/i386/cpu.h | 2 ++
2 files changed, 33 insertions(+), 1 deletion(-)
base-commit: fd7ab698c921
--
2.53.0
next reply other threads:[~2026-11-13 19:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-13 17:49 Ben Cheatham [this message]
2026-11-13 17:49 ` [PATCH 1/4] target/i386: Add TSA variant TSA-FILL Ben Cheatham
2026-11-13 17:49 ` [PATCH 2/4] target/i386: Add EPYC-Milan-v5 Model Ben Cheatham
2026-11-13 17:49 ` [PATCH 3/4] target/i386: Add EPYC-Genoa-v4 Model Ben Cheatham
2026-11-13 17:49 ` [PATCH 4/4] target/i386: Add EPYC-Turin-v3 Model Ben Cheatham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261113174926.1861-1-Benjamin.Cheatham@amd.com \
--to=benjamin.cheatham@amd.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.