[Intel-gfx] [PATCH 06/18] drm/i915: Defer default hardware context initialisation until first open
Chris Wilson
chris at chris-wilson.co.uk
Tue Mar 31 02:29:33 PDT 2015
On Fri, Mar 27, 2015 at 09:45:27AM +0100, Daniel Vetter wrote:
> On Thu, Mar 26, 2015 at 12:41:13PM -0700, yu.dai at intel.com wrote:
> > From: Dave Gordon <david.s.gordon at intel.com>
> >
> > In order to fully initialise the default contexts, we have to execute
> > batchbuffer commands on the GPU engines. But we can't do that until any
> > required firmware has been loaded, which may not be possible during
> > driver load, because the filesystem(s) containing the firmware may not
> > be mounted until later.
> >
> > Therefore, we now allow the first call to the firmware-loading code to
> > return -EAGAIN to indicate that it's not yet ready, and that it should
> > be retried when the device is first opened from user code, by which
> > time we expect that all required filesystems will have been mounted.
> > The late-retry code will then re-attempt to load the firmware if the
> > early attempt failed.
>
> We've tried a similar approach a while back and it doesn't work well in
> conjunction with rps - the hw tends to fall over if the context state
> isn't properly initialized when going into rc6.
>
> Why exactly can't we load that firmware right at boot-up, or at least
> stall correctly until it's there?
Note that is is very simple to build up a request queue prior to
enabling the submission port. Without having to touch core GEM code at
all.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list