Commit 0388f9c7 authored by Will Deacon's avatar Will Deacon
Browse files

arm64: mm: Implement arch_wants_old_prefaulted_pte()



On CPUs with hardware AF/DBM, initialising prefaulted PTEs as 'old'
improves vmscan behaviour and does not appear to introduce any overhead
elsewhere.

Implement arch_wants_old_prefaulted_pte() to return 'true' if we detect
hardware access flag support at runtime. This can be extended in future
based on MIDR matching if necessary.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 46bdb427
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -982,6 +982,16 @@ static inline bool arch_faults_on_old_pte(void)
}
#define arch_faults_on_old_pte		arch_faults_on_old_pte

/*
 * Experimentally, it's cheap to set the access flag in hardware and we
 * benefit from prefaulting mappings as 'old' to start with.
 */
static inline bool arch_wants_old_prefaulted_pte(void)
{
	return !arch_faults_on_old_pte();
}
#define arch_wants_old_prefaulted_pte	arch_wants_old_prefaulted_pte

#endif /* !__ASSEMBLY__ */

#endif /* __ASM_PGTABLE_H */