[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFqt6zajWBwA227SAYdp6X+o43kBuxqGX5Vzy-Ey5vVeEvaz3w@mail.gmail.com>
Date: Thu, 24 May 2018 09:05:15 +0530
From: Souptick Joarder <jrdr.linux@...il.com>
To: l.stach@...gutronix.de, linux+etnaviv@...linux.org.uk,
Christian Gmeiner <christian.gmeiner@...il.com>,
airlied@...ux.ie, Matthew Wilcox <willy@...radead.org>,
Daniel Vetter <daniel.vetter@...ll.ch>
Cc: etnaviv@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] gpu: drm: etnaviv: Change return type to vm_fault_t
> A non-fatal signal being delivered to a task which is
> in the middle of a page fault may well end up in an
> infinite loop, attempting to handle the page fault and
> failing forever.
>
> On seeing NOPAGE, the fault handler believes the PTE
> is in the page table, so does nothing before it returns
> to arch code. It will end up returning to userspace if
> the signal is non-fatal, at which point it'll go right
> back into the page fault handler, and mutex_lock_interruptible()
> will immediately fail. So we've converted a sleeping lock
> into the most expensive spinlock.
>
> I don't think the graphics drivers really want to be
> interrupted by any signal. I think they want to be
> interruptible by fatal signals and should use the
> mutex_lock_killable / fatal_signal_pending family of
> functions. So mutex_lock_interruptible() is replaced
> by mutex_lock_killable()
>
Matthew, are we going to fix similar issues in all drivers
as part of this clean up ?
Powered by blists - more mailing lists