Re: [LKP] [lkp] [xfs] 68a9f5e700: aim7.jobs-per-min -13.6% regression

From: Al Viro
Date: Thu Aug 11 2016 - 18:16:49 EST


On Thu, Aug 11, 2016 at 01:35:00PM -0700, Linus Torvalds wrote:

> The thing is, iov_iter_copy_from_user_atomic() doesn't itself enforce
> non-blocking user accesses, it depends on the caller blocking page
> faults.

Huh? The very first thing it does is
char *kaddr = kmap_atomic(page), *p = kaddr + offset;

If _that_ does not disable pagefaults, we are very deep in shit. AFAICS,
all instances of that sucker do disable those, including the non-highmem
default (it's
static inline void *kmap_atomic(struct page *page)
{
preempt_disable();
pagefault_disable();
return page_address(page);
}
)