Signal handling in a page fault handler

Chris Wilson chris at chris-wilson.co.uk
Tue Apr 3 13:20:43 UTC 2018


Quoting Matthew Wilcox (2018-04-03 14:10:25)
> On Tue, Apr 03, 2018 at 01:33:15PM +0100, Chris Wilson wrote:
> > Quoting Matthew Wilcox (2018-04-02 15:10:58)
> > > I don't think the graphics drivers really want to be interrupted by
> > > any signal.
> > 
> > Assume the worst case and we may block for 10s. Even a 10ms delay may be
> > unacceptable to some signal handlers (one presumes). For the number one
> > ^C usecase, yes that may be reduced to only bother if it's killable, but
> > I wonder if there are not timing loops (e.g. sigitimer in Xorg < 1.19)
> > that want to be able to interrupt random blockages.
> 
> Ah, setitimer / SIGALRM.  So what do we want to have happen if that
> signal handler touches the mmaped device memory?

Burn in a great ball of fire :) Isn't that what usually happens if you
do anything in a signal handler?

Hmm, if SIGBUS has a handler does that count as a killable signal? The
ddx does have code to service SIGBUS emitted when accessing the mmapped
pointer that may result from the page insertion failing with no memory
(or other random error). There we stop accessing via the pointer and
use another indirect method.
-Chris


More information about the dri-devel mailing list