um: Optimize Flush TLB for force/fork case
authorAnton Ivanov <anton.ivanov@cambridgegreys.com>
Fri, 7 Dec 2018 09:05:53 +0000 (09:05 +0000)
committerRichard Weinberger <richard@nod.at>
Thu, 27 Dec 2018 21:48:34 +0000 (22:48 +0100)
commit742f3c8193a3cb3e444887211214ef0721e3ef8d
treec74eb64a5d8b02cca48b7b5ab7e97b415fc957bf
parent8892d8545f2d0342b9c550defbfb165db237044b
um: Optimize Flush TLB for force/fork case

When UML handles a fork the page tables need to be brought up
to date. That was done using brute force - full tlb flush.

This is actually unnecessary, because the mapped-in mappings are
all correct and the only mappings which need to be updated
after a flush are any unmaps (so that paging works) as well as
any pending protection changes.

This optimization squeezes out up to 3% from a full kernel rebuild
time under memory pressure.

Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/kernel/tlb.c