假设我已经准备一套新的页表,最后一步就只需要设置一下 satp 了。但 sfence.vma 和 设置 satp ,到底谁先谁后?想来想去都有点绕进去了,或者最保险的是: 设置 satp 的前后,都有一句 sfence.vma 。示例如下:
sfence.vma
csrw CSR_SATP, a0
sfence.vma
![]() |
2
amiwrong123 OP @LeeEnzo #1
有点没理解,看他那个意思,设置了 satp 后,不需要 sfence.vma 。 比如我在 S 模式下,已经是把 satp 设置为 sv48 模式了,也就是已经启动了一套页表。 然后我想切换另一套页表,那我又要设置 stap 了,设置了 satp 后,我觉得必须要 sfence.vma 呀。不然 TLB 里面是旧的映射。 |
![]() |
3
amiwrong123 OP |