lkml.org 
[lkml]   [2017]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v6 6/7] mm: fix MADV_[FREE|DONTNEED] TLB flush miss problem
On Tue, Aug 01, 2017 at 05:08:17PM -0700, Nadav Amit wrote:
> void tlb_finish_mmu(struct mmu_gather *tlb,
> unsigned long start, unsigned long end)
> {
> - arch_tlb_finish_mmu(tlb, start, end);
> + /*
> + * If there are parallel threads are doing PTE changes on same range
> + * under non-exclusive lock(e.g., mmap_sem read-side) but defer TLB
> + * flush by batching, a thread has stable TLB entry can fail to flush
> + * the TLB by observing pte_none|!pte_dirty, for example so flush TLB
> + * forcefully if we detect parallel PTE batching threads.
> + */
> + bool force = mm_tlb_flush_nested(tlb->mm);
> +
> + arch_tlb_finish_mmu(tlb, start, end, force);
> }

I don't understand the comment nor the ordering. What guarantees we see
the increment if we need to?

\
 
 \ /
  Last update: 2017-08-11 15:32    [W:0.303 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site