Re: [RFC][CFT][PATCHSET v1] uaccess unification

From: Al Viro
Date: Thu Mar 30 2017 - 14:49:02 EST


On Thu, Mar 30, 2017 at 10:18:23AM -0700, Linus Torvalds wrote:

> This is all going in the wrong direction entirely.

This is not going into the tree - it's just a "let's check your
theory about might_fault() overhead being the source of slowdown
you are seeing" quick-and-dirty patch.

Speaking of the checks in there - if anything, might_fault() in those
suckers belongs outside of the loop; note that even on the kmap_atomic()
side of copy_page_to_iter_iovec() we do stuff like fault_in_pages_writeable().

BTW, ..._inatomic is a very unfortunate name, IMO - it's *not* safe
to use in atomic contexts as-is, to start with; the caller needs to take
care of pagefault_disable(). If anything, __copy_from_user_nofault() would
probably be better...

I really wonder about the low dispersion in those tests - IME on amd64
boxen it tends to be ~5% or so; what's normal for arm?