[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 14/18] xen/riscv: Implement superpage splitting for p2m mappings
On 17.09.2025 23:55, Oleksii Kurochko wrote: > Add support for down large memory mappings ("superpages") in the RISC-V > p2m mapping so that smaller, more precise mappings ("finer-grained entries") > can be inserted into lower levels of the page table hierarchy. > > To implement that the following is done: > - Introduce p2m_split_superpage(): Recursively shatters a superpage into > smaller page table entries down to the target level, preserving original > permissions and attributes. > - p2m_set_entry() updated to invoke superpage splitting when inserting > entries at lower levels within a superpage-mapped region. > > This implementation is based on the ARM code, with modifications to the part > that follows the BBM (break-before-make) approach, some parts are simplified > as according to RISC-V spec: > It is permitted for multiple address-translation cache entries to co-exist > for the same address. This represents the fact that in a conventional > TLB hierarchy, it is possible for multiple entries to match a single > address if, for example, a page is upgraded to a superpage without first > clearing the original non-leaf PTE’s valid bit and executing an SFENCE.VMA > with rs1=x0, or if multiple TLBs exist in parallel at a given level of the > hierarchy. In this case, just as if an SFENCE.VMA is not executed between > a write to the memory-management tables and subsequent implicit read of the > same address: it is unpredictable whether the old non-leaf PTE or the new > leaf PTE is used, but the behavior is otherwise well defined. > In contrast to the Arm architecture, where BBM is mandatory and failing to > use it in some cases can lead to CPU instability, RISC-V guarantees > stability, and the behavior remains safe — though unpredictable in terms of > which translation will be used. > > Additionally, the page table walk logic has been adjusted, as ARM uses the > opposite level numbering compared to RISC-V. > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |