mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
The C1-Pro SME DVMSync workaround currently samples mm_cpumask() from
arch_tlbbatch_add_pending(). It requires a DSB after every batched TLBI
so that the mask read is ordered after the hardware DVMSync, defeating
much of the reclaim batching benefit.
Introduce the sme_active_cpus mask tracking which CPUs run in user-space
with SME enabled and use it for batch flushing instead of accumulating
the mm_cpumask() of the unmapped pages.
Fixes: 0baba94a97 ("arm64: errata: Work around early CME DVMSync acknowledgement")
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Tested-by: Joshua Liu <josliu@google.com>
Signed-off-by: Will Deacon <will@kernel.org>
13 lines
285 B
C
13 lines
285 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _ARCH_ARM64_TLBBATCH_H
|
|
#define _ARCH_ARM64_TLBBATCH_H
|
|
|
|
struct arch_tlbflush_unmap_batch {
|
|
/*
|
|
* For arm64, HW can do TLB shootdown, so we don't need to record a
|
|
* cpumask for sending IPIs.
|
|
*/
|
|
};
|
|
|
|
#endif /* _ARCH_ARM64_TLBBATCH_H */
|