On Tue, Feb 20, 2024 at 11:02 AM Suren Baghdasaryan <surenb@xxxxxxxxxx> wrote: > > The change [1] missed ARM architecture when fixing major fault accounting > for page fault retry under per-VMA lock. > > The user-visible effects is that it restores correct major fault > accounting that was broken after [2] was merged in 6.7 kernel. The > more detailed description is in [3] and this patch simply adds the > same fix to ARM architecture which I missed in [3]. > > Add missing code to fix ARM architecture fault accounting. > > [1] 46e714c729c8 ("arch/mm/fault: fix major fault accounting when retrying under per-VMA lock") > [2] https://lore.kernel.org/all/20231006195318.4087158-6-willy@xxxxxxxxxxxxx/ > [3] https://lore.kernel.org/all/20231226214610.109282-1-surenb@xxxxxxxxxx/ > > Link: https://lkml.kernel.org/r/20240123064305.2829244-1-surenb@xxxxxxxxxx > Fixes: 12214eba1992 ("mm: handle read faults under the VMA lock") > Reported-by: Russell King (Oracle) <rmk+kernel@xxxxxxxxxxxxxxx> > Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx> > Cc: Alexander Gordeev <agordeev@xxxxxxxxxxxxx> > Cc: Andy Lutomirski <luto@xxxxxxxxxx> > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > Cc: Christophe Leroy <christophe.leroy@xxxxxxxxxx> > Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > Cc: Gerald Schaefer <gerald.schaefer@xxxxxxxxxxxxx> > Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > Cc: Will Deacon <will@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Sorry, missed the prerequisite patch. Please ignore this one and see the next patchset I sent with 2 patches in it: https://lore.kernel.org/all/20240220190351.39815-1-surenb@xxxxxxxxxx/ https://lore.kernel.org/all/20240220190351.39815-2-surenb@xxxxxxxxxx/ Thanks, Suren. > --- > arch/arm/mm/fault.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c > index e96fb40b9cc3..07565b593ed6 100644 > --- a/arch/arm/mm/fault.c > +++ b/arch/arm/mm/fault.c > @@ -298,6 +298,8 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) > goto done; > } > count_vm_vma_lock_event(VMA_LOCK_RETRY); > + if (fault & VM_FAULT_MAJOR) > + flags |= FAULT_FLAG_TRIED; > > /* Quick path to respond to signals */ > if (fault_signal_pending(fault, regs)) { > -- > 2.44.0.rc0.258.g7320e95886-goog >