Use the new batched user accesses in generic user string handling
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 17 Dec 2015 18:05:19 +0000 (10:05 -0800)
committerAlex Shi <alex.shi@linaro.org>
Sat, 27 Aug 2016 03:23:38 +0000 (11:23 +0800)
commitea2e77f49015ae941d7c98fbe066d387dec8fa55
treef4c0c4a4d22786046ad2e3e322cddb70d2364fa3
parent798522d907ede95418a20e7153101b4659151e32
Use the new batched user accesses in generic user string handling

This converts the generic user string functions to use the batched user
access functions.

It makes a big difference on Skylake, which is the first x86
microarchitecture to implement SMAP.  The STAC/CLAC instructions are not
very fast, and doing them for each access inside the loop that copies
strings from user space (which is what the pathname handling does for
every pathname the kernel uses, for example) is very inefficient.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 9fd4470ff4974c41b1db43c3b355b9085af9c12a)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
lib/strncpy_from_user.c
lib/strnlen_user.c