The patch titled Subject: mm-rmap-fix-potential-batched-tlb-flush-race-fix has been added to the -mm tree. Its filename is mm-rmap-fix-potential-batched-tlb-flush-race-fix.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-rmap-fix-potential-batched-tlb-flush-race-fix.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-rmap-fix-potential-batched-tlb-flush-race-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: mm-rmap-fix-potential-batched-tlb-flush-race-fix tweak comments Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Cc: Andy Lutomirski <luto@xxxxxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Cc: "Huang, Ying" <ying.huang@xxxxxxxxx> Cc: Marco Elver <elver@xxxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Cc: Nadav Amit <namit@xxxxxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Cc: Yu Zhao <yuzhao@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/rmap.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) --- a/mm/rmap.c~mm-rmap-fix-potential-batched-tlb-flush-race-fix +++ a/mm/rmap.c @@ -622,8 +622,8 @@ void try_to_unmap_flush_dirty(void) } /* - * The 0-14 bit of mm->tlb_flush_batched records pending generations, - * and the 16-30 bit records flushed generations. + * Bits 0-14 of mm->tlb_flush_batched record pending generations. + * Bits 16-30 of mm->tlb_flush_batched bit record flushed generations. */ #define TLB_FLUSH_BATCH_FLUSHED_SHIFT 16 #define TLB_FLUSH_BATCH_PENDING_MASK \ @@ -648,9 +648,9 @@ static void set_tlb_ubc_flush_pending(st retry: if ((batch & TLB_FLUSH_BATCH_PENDING_MASK) > TLB_FLUSH_BATCH_PENDING_LARGE) { /* - * To avoid ""pending"" to catch up with ""flushed"" - * because of overflow. Reset "pending" and "flushed" - * to be "1" and "0" if "pending" becomes large. + * Prevent `pending' from catching up with `flushed' because of + * overflow. Reset `pending' and `flushed' to be 1 and 0 if + * `pending' becomes large. */ nbatch = atomic_cmpxchg(&mm->tlb_flush_batched, batch, 1); if (nbatch != batch) { @@ -713,9 +713,8 @@ void flush_tlb_batched_pending(struct mm if (pending != flushed) { flush_tlb_mm(mm); /* - * If the new TLB flushing is pended during flushing, - * leave mm->tlb_flush_batched as is, to avoid to lose - * flushing. + * If the new TLB flushing is pending during flushing, leave + * mm->tlb_flush_batched as is, to avoid losing flushing. */ atomic_cmpxchg(&mm->tlb_flush_batched, batch, pending | (pending << TLB_FLUSH_BATCH_FLUSHED_SHIFT)); _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are mm-bdi-initialize-bdi_min_ratio-when-bdi-unregister-fix.patch shmem-fix-a-race-between-shmem_unused_huge_shrink-and-shmem_evict_inode-checkpatch-fixes.patch kthread-add-the-helper-function-kthread_run_on_cpu-fix.patch mm.patch kmemleak-fix-kmemleak-false-positive-report-with-hw-tag-based-kasan-enable-fix.patch mm-remove-redundant-check-about-fault_flag_allow_retry-bit-checkpatch-fixes.patch mm-page-table-check-fix.patch mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt-fix.patch mm-memcg-percpu-account-extra-objcg-space-to-memory-cgroups-fix.patch mm-rmap-fix-potential-batched-tlb-flush-race-fix.patch proc-make-the-proc_create-stubs-static-inlines-fix.patch panic-use-error_report_end-tracepoint-on-warnings-fix.patch sysctl-move-some-boundary-constants-from-sysctlc-to-sysctl_vals-fix.patch firmware_loader-move-firmware-sysctl-to-its-own-files-fix.patch firmware_loader-move-firmware-sysctl-to-its-own-files-fix-fix.patch sysctl-add-helper-to-register-a-sysctl-mount-point-fix.patch kernel-forkc-export-kernel_thread-to-modules.patch