[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v10 1/1] xen/riscv: probe the A/D update scheme if the DT advertises neither





On 10/28/26 2:05 PM, Baptiste Le Duc wrote:
p2m_set_pte_flags() presets the A/D bits of G-stage PTEs only when
RISCV_ISA_EXT_svade is set, which is correct only if the device tree is.

The privileged spec allows exactly two schemes for updating the PTE A and D
bits: hardware sets them on access and on write, or accessing a page whose
A and/or D bit is clear raises a page fault so that software can set them
(ratified as Svade). Every implementation uses one of them, but platforms
designed before Svade and Svadu were ratified, such as the HiFive Premier
P550, may advertise neither.

Trust the device tree when it advertises Svade and/or Svadu, as for any
other extension. When it advertises neither, probe the scheme in effect
and record the matching extension in riscv_isa, so that such device trees
can be used as-is, and warn naming the extension to add to "riscv,isa".

Introduce probe_hw_ad_update(): alias the first page of the Xen image
read-only through the FIX_MISC fixmap slot with its A and D bits clear,
then load from it under an exception table fixup. Hardware updating is in
effect if the load completes and the A bit is then set. The probe fails
otherwise, whether the load faults or completes leaving the A bit clear.
The A bit being set by a speculative access still implies Svadu, as Svade
only allows A to be set by software.

Add Svadu to the known ISA extensions so it can be told apart from Svade.
The comment above the enum asks for new extensions to go at the bottom to
avoid shuffling, a leftover from Linux where the IDs were macros with
explicit values. Nothing depends on the enum values, so have the comment
say that multi-letter extensions follow the order of riscv_isa_ext[].

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Baptiste Le Duc <baptiste.le-duc@xxxxxxxxxx>
---
Changes since v9:

Nit: something wrong with version numbering. (in the case of v11 would be nice to fix).

Changes itself LGTM:

Reviewed-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>

Thanks!

~ Oleksii



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.