Re: [PATCH 6.6] membarrier: riscv: Add full memory barrier in switch_mm()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 09, 2024 at 10:57:01AM +0800, WangYuli wrote:
> From: Andrea Parri <parri.andrea@xxxxxxxxx>
> 
> [ Upstream commit d6cfd1770f20392d7009ae1fdb04733794514fa9 ]
> 
> The membarrier system call requires a full memory barrier after storing
> to rq->curr, before going back to user-space.  The barrier is only
> needed when switching between processes: the barrier is implied by
> mmdrop() when switching from kernel to userspace, and it's not needed
> when switching from userspace to kernel.
> 
> Rely on the feature/mechanism ARCH_HAS_MEMBARRIER_CALLBACKS and on the
> primitive membarrier_arch_switch_mm(), already adopted by the PowerPC
> architecture, to insert the required barrier.
> 
> Fixes: fab957c11efe2f ("RISC-V: Atomic and Locking Code")
> Signed-off-by: Andrea Parri <parri.andrea@xxxxxxxxx>
> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
> Link: https://lore.kernel.org/r/20240131144936.29190-2-parri.andrea@xxxxxxxxx
> Signed-off-by: Palmer Dabbelt <palmer@xxxxxxxxxxxx>
> Signed-off-by: WangYuli <wangyuli@xxxxxxxxxxxxx>
> ---
>  MAINTAINERS                         |  2 +-
>  arch/riscv/Kconfig                  |  1 +
>  arch/riscv/include/asm/membarrier.h | 31 +++++++++++++++++++++++++++++
>  arch/riscv/mm/context.c             |  2 ++
>  kernel/sched/core.c                 |  5 +++--
>  5 files changed, 38 insertions(+), 3 deletions(-)
>  create mode 100644 arch/riscv/include/asm/membarrier.h

Now queued up, thanks.

greg k-h




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux