The public review period for the RISC-V Pointer Masking Specification concluded on April 19.
The following feedback has been received, and was addressed in the latest version of the spec (1.0.0-rc2):
* Concerns were raised about the number of extensions introduced by the spec [1] and the complexity of their description [2]. Language was added to explain the rationale behind these extensions and why they are necessary.
* A question was raised whether pointer masking applies to DMA units [3]. The spec already stated that devices are not subject to pointer masking, and a note was added to explicitly clarify that this includes DMA units.
* There was a question about which MXR field is used for determining whether pointer masking applies [4]. The language was updated to clarify this.
* A question was raised about the impact of SPVP on HLV.*/HSV.*, but it was determined that the current spec already defines this behavior [5].
* In response to a question about SFENCE [6], the Architecture Review Committee identified an issue with the current spec that applied pointer masking to the address passed to SFENCE.*, SINVAL.*, etc. Doing so would have created a scenario where supervisor code can map an executable code region by modifying the page table, but is unable to apply an SFENCE to it. Since operating systems are already expected to untag user pointers in software, and since a common use of SFENCE is in page fault handlers (which already have the address untagged), it was determined that SFENCE.*, HFENCE.*, SINVAL.*, or HINVAL.* should *not* apply pointer masking. The spec was updated accordingly.
The latest version of the spec can be found here:
We want to thank everyone who worked on the spec and/or contributed feedback!
Martin Maas and Adam Zabrocki
Chair & Vice-Chair, J Extension TG