Messages in this thread | | | Date | Thu, 7 May 2015 12:22:54 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH RFC 01/15] uaccess: count pagefault_disable() levels in pagefault_disabled |
| |
On Wed, May 06, 2015 at 07:50:25PM +0200, David Hildenbrand wrote: > +/* > + * Is the pagefault handler disabled? If so, user access methods will not sleep. > + */ > +#define pagefault_disabled() (current->pagefault_disabled != 0)
So -RT has:
static inline bool pagefault_disabled(void) { return current->pagefault_disabled || in_atomic(); }
AFAICR we did this to avoid having to do both:
preempt_disable(); pagefault_disable();
in a fair number of places -- just like this patch-set does, this is touching two cachelines where one would have been enough.
Also, removing in_atomic() from fault handlers like you did significantly changes semantics for interrupts (soft, hard and NMI).
So while I agree with most of these patches, I'm very hesitant on the above little detail.
| |