]> 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)
commitf1127366160e6af4850b00d68e3a7a35d9689f29
treed6ba89db328ec09b2140a84dcdf1bd8ca5cbeaa4
parent997467620a9e43da0e7b19629dd0b39365c80a95
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