-
- Downloads
membarrier: riscv: Provide core serializing command
RISC-V uses xRET instructions on return from interrupt and to go back to user-space; the xRET instruction is not core serializing. Use FENCE.I for providing core serialization as follows: - by calling sync_core_before_usermode() on return from interrupt (cf. ipi_sync_core()), - via switch_mm() and sync_core_before_usermode() (respectively, for uthread->uthread and kthread->uthread transitions) before returning to user-space. On RISC-V, the serialization in switch_mm() is activated by resetting the icache_stale_mask of the mm at prepare_sync_core_cmd(). Suggested-by:Palmer Dabbelt <palmer@dabbelt.com> Signed-off-by:
Andrea Parri <parri.andrea@gmail.com> Reviewed-by:
Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://lore.kernel.org/r/20240131144936.29190-5-parri.andrea@gmail.com Signed-off-by:
Palmer Dabbelt <palmer@rivosinc.com>
Showing
- Documentation/features/sched/membarrier-sync-core/arch-support.txt 17 additions, 1 deletion...tion/features/sched/membarrier-sync-core/arch-support.txt
- MAINTAINERS 1 addition, 0 deletionsMAINTAINERS
- arch/riscv/Kconfig 3 additions, 0 deletionsarch/riscv/Kconfig
- arch/riscv/include/asm/membarrier.h 19 additions, 0 deletionsarch/riscv/include/asm/membarrier.h
- arch/riscv/include/asm/sync_core.h 29 additions, 0 deletionsarch/riscv/include/asm/sync_core.h
- kernel/sched/core.c 4 additions, 0 deletionskernel/sched/core.c
- kernel/sched/membarrier.c 4 additions, 0 deletionskernel/sched/membarrier.c
Loading
Please register or sign in to comment