Re: [PATCH] drm/i915: Convert WARNs during userptr revoke to SIGBUS

Chris Wilson
2015-10-09T08:59:27Z

On Fri, Oct 09, 2015 at 10:55:26AM +0200, Daniel Vetter wrote:
> On Fri, Oct 09, 2015 at 09:40:53AM +0100, Chris Wilson wrote:
> > On Fri, Oct 09, 2015 at 09:48:01AM +0200, Daniel Vetter wrote:
> > > On Thu, Oct 08, 2015 at 10:45:47AM +0100, Tvrtko Ursulin wrote:
> > > The concern is that this isn't how SIG_SEGV works, it's a signal the
> > > thread who made the invalid access gets directly. You never get a SIG_SEGV
> > > for bad access someone else has made. So essentially it's new ABI.
> >
> > SIGBUS. For which the answer is yes, you can and do get SIGBUS for
> > actions taken by other processes.
>
> Oh right I always forget that SIGBUS aliases with SIGIO. Anyway if
> userspace wants SIGIO we just need to provide it with a pollable fd and
> then it can use fcntl to make that happen. That's imo a much better api
> than unconditionally throwing around signals. Also we already have the
> reset stats ioctl to tell userspace that its gpu context is toats. If
> anyone wants that to be pollable (or even send SIGIO) I think we should
> extend that, with all the usual "needs userspace&igt" stuff on top.

It's not EIO handling, it is a SIGBUS in the canonical sense that the
backing storage for a mmap just vanished whilst you were using it.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre