xen/riscv: make Zihintpause no longer a required extension

Zihintpause is in required_extensions[] so Xen panics when it is missing,
while it does not strictly require hardware support for it.

The PAUSE hint (Zihintpause extension) is encoded as FENCE W, 0
(0x0100000F). In accordance with the RISC-V Unprivileged ISA, HINTs are
encoded in the space of valid standard instructions. On platforms without
Zihintpause support, executing 0x0100000F is treated as a standard FENCE
with an empty successor set, which acts as a NOP and never generates an
illegal instruction trap.

Zihintpause is therefore purely an optimization hint. Drop it from
required_extensions[] so Xen can still boot on systems that don't advertise
it, and print a warning in that case.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
This commit is contained in:
Baptiste Le Duc authored and Jan Beulich committed 2026-09-30 15:00:48 +02:00
1 parent 1043866f84
commit 861e44a3ba
2 files changed
+11 -4

No files matched your search

-3
View File
@@ -19,9 +19,6 @@ them is missing from the riscv,isa property of the CPU nodes:
a very simple sequence.
The similar issue occurs with other __builtin_<bitop>, so it is needed to
provide a generic version of bitops in RISC-V bitops.h
- Zihintpause:
On a system that doesn't have this extension, cpu_relax() should be
implemented properly.
- Svpbmt:
Mandatory to enable changing the memory attributes of a page.
For platforms that do not support Svpbmt, it is necessary to introduce a
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.