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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>