]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "fs: do not prefault sys_write() user buffer pages"
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 7 Oct 2015 07:32:38 +0000 (08:32 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 7 Oct 2015 07:32:38 +0000 (08:32 +0100)
commitb72571eaeec56af3edb1cd461931e634ef9dd960
treeb9da43e92a99a3e3eb096d88e6ef945b8e3575d5
parentdeab230f4d484e5a73e5c67b1e268a96fb47f615
Revert "fs: do not prefault sys_write() user buffer pages"

This reverts commit 90e7e118984389bb73e7a304e83e3f2af1e9066a.

The commit itself does not appear to be buggy per se, but it is exposing
a bug in ext4 (and Ted thinks ext3 too, but we solved that by getting
rid of it).  It's too late in the release cycle to really worry about
this, even if Dave Hansen has a patch that may actually fix the
underlying ext4 problem.  We can (and should) revisit this for the next
release.

The problem is that moving the prefaulting later now exposes a special
case with partially successful writes that isn't handled correctly.  And
the prefaulting likely isn't normally even that much of a performance
issue - it looks like at least one reason Dave saw this in his
performance tests is that he also ran them on Skylake that now supports
the new SMAP code, which makes the normally very cheap user space
prefaulting noticeably more expensive.

Bisected-and-acked-by: Ted Ts'o <tytso@mit.edu>
Analyzed-and-acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/filemap.c