um: implement flush_cache_vmap/flush_cache_vunmap
authorJohannes Berg <johannes.berg@intel.com>
Mon, 15 Mar 2021 22:38:04 +0000 (23:38 +0100)
committerRichard Weinberger <richard@nod.at>
Thu, 17 Jun 2021 20:04:40 +0000 (22:04 +0200)
commit80f849bf541ef9b633a9c08ac208f9c9afd14eb9
tree4da4171a7d84405ecdbecfc246301eb9e176f9da
parentdd3035a21ba7ccaa883d7107d357ad06320d78fc
um: implement flush_cache_vmap/flush_cache_vunmap

vmalloc() heavy workloads in UML are extremely slow, due to
flushing the entire kernel VM space (flush_tlb_kernel_vm())
on the first segfault.

Implement flush_cache_vmap() to avoid that, and while at it
also add flush_cache_vunmap() since it's trivial.

This speeds up my vmalloc() heavy test of copying files out
from /sys/kernel/debug/gcov/ by 30x (from 30s to 1s.)

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/include/asm/cacheflush.h [new file with mode: 0644]
arch/um/include/asm/tlb.h