Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1702568

Re: [PATCH v6 0/7] fixes of TLB batching races

From Minchan Kim <minchan@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH v6 0/7] fixes of TLB batching races
Date 2017-08-03 01:30 +0200
Message-ID <uabfs-8iN-31@gated-at.bofh.it> (permalink)
References <u9Wq6-6U6-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Aug 01, 2017 at 05:08:11PM -0700, Nadav Amit wrote:
> It turns out that Linux TLB batching mechanism suffers from various races.
> Races that are caused due to batching during reclamation were recently
> handled by Mel and this patch-set deals with others. The more fundamental
> issue is that concurrent updates of the page-tables allow for TLB flushes
> to be batched on one core, while another core changes the page-tables.
> This other core may assume a PTE change does not require a flush based on
> the updated PTE value, while it is unaware that TLB flushes are still
> pending.
> 
> This behavior affects KSM (which may result in memory corruption) and
> MADV_FREE and MADV_DONTNEED (which may result in incorrect behavior). A
> proof-of-concept can easily produce the wrong behavior of MADV_DONTNEED.
> Memory corruption in KSM is harder to produce in practice, but was observed
> by hacking the kernel and adding a delay before flushing and replacing the
> KSM page.
> 
> Finally, there is also one memory barrier missing, which may affect
> architectures with weak memory model.
> 
> v5 -> v6:
> * Combining with Minchan Kim's patch set, adding ack's (Andrew)
> * Minor: missing header, typos (Nadav)
> * Renaming arch_generic_tlb_finish_mmu (Mel)

Thanks for intergrating/correction, Nadav.

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH v6 0/7] fixes of TLB batching races Nadav Amit <namit@vmware.com> - 2017-08-02 09:40 +0200
  [PATCH v6 5/7] mm: make tlb_flush_pending global Nadav Amit <namit@vmware.com> - 2017-08-02 09:40 +0200
    Re: [PATCH v6 5/7] mm: make tlb_flush_pending global Minchan Kim <minchan@kernel.org> - 2017-08-03 01:30 +0200
    Re: [PATCH v6 5/7] mm: make tlb_flush_pending global Andrew Morton <akpm@linux-foundation.org> - 2017-08-03 01:30 +0200
      Re: [PATCH v6 5/7] mm: make tlb_flush_pending global Minchan Kim <minchan@kernel.org> - 2017-08-03 01:40 +0200
    Re: [PATCH v6 5/7] mm: make tlb_flush_pending global kbuild test robot <lkp@intel.com> - 2017-08-03 18:50 +0200
  [PATCH v6 4/7] mm: refactoring TLB gathering API Nadav Amit <namit@vmware.com> - 2017-08-02 09:40 +0200
    Re: [PATCH v6 4/7] mm: refactoring TLB gathering API Peter Zijlstra <peterz@infradead.org> - 2017-08-11 11:30 +0200
      Re: [PATCH v6 4/7] mm: refactoring TLB gathering API Nadav Amit <nadav.amit@gmail.com> - 2017-08-11 19:20 +0200
  Re: [PATCH v6 0/7] fixes of TLB batching races Minchan Kim <minchan@kernel.org> - 2017-08-03 01:30 +0200

csiph-web