Re: [RFC 0/2] Reenable might_sleep() checks for might_fault() when atomic
From: David Hildenbrand <hidden>
Date: 2014-11-27 15:19:15
Also in:
linux-arch, lkml
From: David Hildenbrand <hidden>
Date: 2014-11-27 15:19:15
Also in:
linux-arch, lkml
OTOH, there is no reason why we need to disable preemption over that page_fault_disabled() region. There are code pathes which really do not require to disable preemption for that. We have that seperated in preempt-rt for obvious reasons and IIRC Peter Zijlstra tried to distangle it in mainline some time ago. I forgot why that never got merged.
Of course, we can completely separate that in our page fault code by doing pagefault_disabled() checks instead of in_atomic() checks (even in add on patches later).
We tie way too much stuff on the preemption count already, which is a mightmare because we have no clear distinction of protection scopes.
Although it might not be optimal, but keeping a separate counter for pagefault_disable() as part of the preemption counter seems to be the only doable thing right now. I am not sure if a completely separated counter is even possible, increasing the size of thread_info. I am working on a prototype right now. Thanks!
Thanks, tglx