diff --git a/mm/memory.c b/mm/memory.c index 60967daa0a63..daf2b1a081f3 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4914,6 +4914,10 @@ static inline void mm_account_fault(struct pt_regs *regs, else perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); } + +static void lru_gen_enter_fault(struct vm_area_struct *vma); +static void lru_gen_exit_fault(void); + #ifdef CONFIG_SPECULATIVE_PAGE_FAULT #ifndef CONFIG_ARCH_HAS_PTE_SPECIAL @@ -5106,7 +5110,9 @@ static vm_fault_t ___handle_speculative_fault(struct mm_struct *mm, } mem_cgroup_enter_user_fault(); + lru_gen_enter_fault(vmf.vma); ret = handle_pte_fault(&vmf); + lru_gen_exit_fault(); mem_cgroup_exit_user_fault(); if (ret != VM_FAULT_RETRY) {