This an update of version 1 which can be found here: https://lore.kernel.org/mm/20230523135902.517032811@xxxxxxxxxxxxx Following up to the discussion about excessive TLB flushes https://lore.kernel.org/all/87a5y5a6kj.ffs@tglx this series addresses the following issues: 1) Prevent the stale TLB problem related to fully utilized vmap blocks 2) Avoid the double per CPU list walk in _vm_unmap_aliases() 3) Avoid flushing dirty space over and over 4) Add a lockless quickcheck in vb_alloc() and add missing READ/WRITE_ONCE() annotations 5) Prevent overeager purging of usable vmap_blocks if not under memory/address space pressure. Changes vs. version 1: - Coding style issues - Remove unneccesary force_purge arguments - Amend changelog of 1/6 - Pick up Reviewed-by tags where applicable Thanks, tglx