From 12e78dcd95e240609d27df58be31f6b1569c1f20 Mon Sep 17 00:00:00 2001 From: Ved Shanbhogue Date: Mon, 8 Apr 2024 14:28:46 -0500 Subject: integrate Svvptc standard extension --- src/supervisor.adoc | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/supervisor.adoc') diff --git a/src/supervisor.adoc b/src/supervisor.adoc index e9f2855..8575a5e 100644 --- a/src/supervisor.adoc +++ b/src/supervisor.adoc @@ -2067,3 +2067,29 @@ See <> and <> for the definitions of those fields. hardware updating of A/D bits is disabled, the Svade extension, which mandates exceptions when A/D bits need be set, instead takes effect. The Svade extension is also defined in <>. + +[[sec:svvptc]] +== "Svvptc" Standard Extension for Eliding Memory-Management Fences on Making PTEs Valid, Version 1.0 + +When the Svvptc extension is implemented, explicit stores that update the Valid +bit of leaf and/or non-leaf PTEs from 0 to 1 and are visible to a hart will +eventually become visible within a bounded timeframe to subsequent implicit +accesses by that hart to such PTEs. + +[NOTE] +==== +Typically, PTEs are marked as Valid by the operating system following a +page-fault exception or during system calls for memory mapping. In such cases, +the trap handler commonly employs an `SRET` instruction to return from the trap. +When Svvptc is implemented, the stores it executes to change the Valid bit +of the PTEs from 0 to 1 then become visible to implicit references to those PTEs +within a bounded timeframe. This visibility pertains to the instructions like +the one causing the page-fault or those accessing new memory regions. A +memory-management fence can be used to force immediate visibility of these PTE +updates to all implicit references associated with instructions following the +memory-management fence. However, when Svvptc is implemented, visibility (in a +bounded amount of time) is guaranteed and use of a memory-management fence is +not required in these scenarios. While this approach might lead to an occasional +gratuitous page-fault, the performance benefit of omitting the memory-management +fence instructions outweighs the occasional cost of a gratuitous page-fault. +==== -- cgit v1.1