mbox series

[v2,0/5] Fix lazy mmu mode

Message ID 20250303141542.3371656-1-ryan.roberts@arm.com (mailing list archive)
Headers show
Series Fix lazy mmu mode | expand

Message

Ryan Roberts March 3, 2025, 2:15 p.m. UTC
Hi All,

I'm planning to implement lazy mmu mode for arm64 to optimize vmalloc. As part
of that, I will extend lazy mmu mode to cover kernel mappings in vmalloc table
walkers. While lazy mmu mode is already used for kernel mappings in a few
places, this will extend it's use significantly.

Having reviewed the existing lazy mmu implementations in powerpc, sparc and x86,
it looks like there are a bunch of bugs, some of which may be more likely to
trigger once I extend the use of lazy mmu. So this series attempts to clarify
the requirements and fix all the bugs in advance of that series. See patch #1
commit log for all the details.

Note that I have only been able to compile test these changes but I think they
are in good enough shape for some linux-next testing.

Applies on Friday's mm-unstable (5f089a9aa987), as I assume this would be
preferred via that tree.

Changes since v1
================
  - split v1 patch #1 into v2 patch #1 and #2; per David
  - Added Acked-by tags from David and Andreas; Thanks!
  - Refined the patches which are truely fixes and added to stable to cc

Thanks,
Ryan

Ryan Roberts (5):
  mm: Fix lazy mmu docs and usage
  fs/proc/task_mmu: Reduce scope of lazy mmu region
  sparc/mm: Disable preemption in lazy mmu mode
  sparc/mm: Avoid calling arch_enter/leave_lazy_mmu() in set_ptes
  Revert "x86/xen: allow nesting of same lazy mode"

 arch/sparc/include/asm/pgtable_64.h   |  2 --
 arch/sparc/mm/tlb.c                   |  5 ++++-
 arch/x86/include/asm/xen/hypervisor.h | 15 ++-------------
 arch/x86/xen/enlighten_pv.c           |  1 -
 fs/proc/task_mmu.c                    | 11 ++++-------
 include/linux/pgtable.h               | 14 ++++++++------
 6 files changed, 18 insertions(+), 30 deletions(-)

--
2.43.0

Comments

Jürgen Groß March 3, 2025, 2:36 p.m. UTC | #1
On 03.03.25 15:15, Ryan Roberts wrote:
> Hi All,
> 
> I'm planning to implement lazy mmu mode for arm64 to optimize vmalloc. As part
> of that, I will extend lazy mmu mode to cover kernel mappings in vmalloc table
> walkers. While lazy mmu mode is already used for kernel mappings in a few
> places, this will extend it's use significantly.
> 
> Having reviewed the existing lazy mmu implementations in powerpc, sparc and x86,
> it looks like there are a bunch of bugs, some of which may be more likely to
> trigger once I extend the use of lazy mmu. So this series attempts to clarify
> the requirements and fix all the bugs in advance of that series. See patch #1
> commit log for all the details.
> 
> Note that I have only been able to compile test these changes but I think they
> are in good enough shape for some linux-next testing.
> 
> Applies on Friday's mm-unstable (5f089a9aa987), as I assume this would be
> preferred via that tree.
> 
> Changes since v1
> ================
>    - split v1 patch #1 into v2 patch #1 and #2; per David
>    - Added Acked-by tags from David and Andreas; Thanks!
>    - Refined the patches which are truely fixes and added to stable to cc
> 
> Thanks,
> Ryan
> 
> Ryan Roberts (5):
>    mm: Fix lazy mmu docs and usage
>    fs/proc/task_mmu: Reduce scope of lazy mmu region
>    sparc/mm: Disable preemption in lazy mmu mode
>    sparc/mm: Avoid calling arch_enter/leave_lazy_mmu() in set_ptes
>    Revert "x86/xen: allow nesting of same lazy mode"
> 
>   arch/sparc/include/asm/pgtable_64.h   |  2 --
>   arch/sparc/mm/tlb.c                   |  5 ++++-
>   arch/x86/include/asm/xen/hypervisor.h | 15 ++-------------
>   arch/x86/xen/enlighten_pv.c           |  1 -
>   fs/proc/task_mmu.c                    | 11 ++++-------
>   include/linux/pgtable.h               | 14 ++++++++------
>   6 files changed, 18 insertions(+), 30 deletions(-)

For the series:

Acked-by: Juergen Gross <jgross@suse.com>


Juergen