HGATP.MODE=BARE时HS级MXR对VS级仅执行页的权限覆盖问询
RISC-V HS级MXR在HGATP.MODE=BARE时的权限覆盖问题
注:以下引用的文档版本为20211203,日期为2023年10月2日。
RISC-V特权架构规范第9.5节中有如下表述:
vsstatus字段中的MXR(使仅执行页变为可读)仅覆盖VS级页保护。在VS级设置MXR不会覆盖客户物理页保护。但在HS级设置MXR时,会同时覆盖VS级和G级的仅执行权限。(原文英文:
The vsstatus field MXR, which makes execute-only pages readable, only overrides VS-stage page protection. Setting MXR at VS-level does not override guest-physical page protections. Setting MXR at HS-level, however, overrides both VS-stage and G-stage execute-only permissions. ```)
前提条件
- 机器运行在VS模式下
- HS级MXR = 1
- VS级MXR = 0
- VSATP.MODE ≠ BARE
- HGATP.MODE = BARE
问题
当HGATP模式为BARE时,HS级MXR是否仍会将VS级仅执行页设为可读?
解答
从规范的字面表述来看,HS级MXR的权限覆盖作用是独立于HGATP.MODE的——只要HS级MXR=1,就会覆盖VS级的仅执行权限,哪怕HGATP.MODE设为BARE。
不过这个逻辑确实有点反直觉:HGATP.MODE=BARE是V=1时禁用两级分页的唯一方式,但此时HS级MXR依然能修改VS级的页权限,这看起来不太符合常规的权限分层逻辑。
内容的提问来源于stack exchange,提问作者prism1729
相关产品推荐
相关产品推荐

