]> git.baikalelectronics.ru Git - kernel.git/commit
mm: defer flush of writable TLB entries
authorMel Gorman <mgorman@suse.de>
Fri, 4 Sep 2015 22:47:35 +0000 (15:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 4 Sep 2015 23:54:41 +0000 (16:54 -0700)
commitd1367578731ff7dd77695a957fb2c0f5c60f1664
treed6ba89db328ec09b2140a84dcdf1bd8ca5cbeaa4
parent31678b1079ffa50725c6c799c2c963b9979fdf10
mm: defer flush of writable TLB entries

If a PTE is unmapped and it's dirty then it was writable recently.  Due to
deferred TLB flushing, it's best to assume a writable TLB cache entry
exists.  With that assumption, the TLB must be flushed before any IO can
start or the page is freed to avoid lost writes or data corruption.  This
patch defers flushing of potentially writable TLBs as long as possible.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Reviewed-by: Rik van Riel <riel@redhat.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/sched.h
mm/internal.h
mm/rmap.c
mm/vmscan.c