On Thu, Nov 30, 2017 at 01:43:19PM +0100, Peter Zijlstra wrote: > Now the problem is that flush_tlb_kernel_range() is implemented using > either __flush_tlb_all() or __flush_tlb_single(), and it is that last > use that is buggered. > > So at the very least we need the below to cure things, but there is > another inconsistency; do_flush_tlb_all() is used by both > flush_tlb_all() and flush_tlb_kernel_range() and increments NR_TLB_*, > do_kernel_range_flush() OTOH does not increment NR_TLB_*. I'm not fixing > that, but I'll leave a comment around or something, so we can later try > and figure out what exact statistics we want. Alternatively, we'd simply kill the entire invlpg path for flush_tlb_kernel_range() and simply do __flush_tlb_all(). -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>