On 04/02/2014 11:31 AM, Andrea Arcangeli wrote: > On Tue, Apr 01, 2014 at 09:03:57PM -0700, John Stultz wrote: >> Now... once you've chosen SIGBUS semantics, there will be folks who will >> try to exploit the fact that we get SIGBUS on purged page access (at >> least on the user-space side) and will try to access pages that are >> volatile until they are purged and try to then handle the SIGBUS to fix >> things up. Those folks exploiting that will have to be particularly >> careful not to pass volatile data to the kernel, and if they do they'll >> have to be smart enough to handle the EFAULT, etc. That's really all >> their problem, because they're being clever. :) > I'm actually working on feature that would solve the problem for the > syscalls accessing missing volatile pages. So you'd never see a > -EFAULT because all syscalls won't return even if they encounters a > missing page in the volatile range dropped by the VM pressure. > > It's called userfaultfd. You call sys_userfaultfd(flags) and it > connects the current mm to a pseudo filedescriptor. The filedescriptor > works similarly to eventfd but with a different protocol. So yea! I actually think (its been awhile now) I mentioned your work to Taras (or maybe he mentioned it to me?), but it did seem like the userfaltfd would be a better solution for the style of fault handling they were thinking about. (Especially as actually handling SIGBUS and doing something sane in a large threaded application seems very difficult).
That said, explaining volatile ranges as a concept has been difficult enough without mixing in other new concepts :), so I'm hesitant to tie the functionality together in until its clear the userfaultfd approach is likely to land. But maybe I need to take a closer look at it. thanks -john -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/