[Intel-gfx] [PATCH] drm/i915: Request driver probe from an async task

Chris Wilson chris at chris-wilson.co.uk
Thu Apr 26 12:55:31 UTC 2018


Quoting David Weinehall (2018-04-26 13:41:57)
> On Fri, Mar 23, 2018 at 08:30:48AM +0000, Chris Wilson wrote:
> > As we are careful not to register external interfaces before the
> > internals are brought up, we are not dependent upon a synchronous
> > probing and can allow ourselves to be probed from a secondary thread
> > during system bootup. We already do relegate some configuration to
> > asynchronous tasks (such as setting up the fbdev), now do the entire
> > probe.
> > 
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=105622
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> 
> LGTM, and still seems to apply cleanly.
> 
> Reviewed-by: David Weinehall <david.weinehall at linux.intel.com>

The one downside to this was that it's only useful for builtins. For
modules, the finit_module call serialises on the async task, so
parallelisation has to occur in userspace.

> > Cc: Imre Deak <imre.deak at intel.com>
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Cc: David Weinehall <david.weinehall at linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_pci.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> > index 4364922e935d..be7b03d48229 100644
> > --- a/drivers/gpu/drm/i915/i915_pci.c
> > +++ b/drivers/gpu/drm/i915/i915_pci.c
> > @@ -726,6 +726,7 @@ static struct pci_driver i915_pci_driver = {
> >       .probe = i915_pci_probe,
> >       .remove = i915_pci_remove,
> >       .driver.pm = &i915_pm_ops,
> > +     .driver.probe_type = PROBE_PREFER_ASYNCHRONOUS,

I thought I sent a v2 with IS_BUILTIN() ? PREFER_ASYNC : 0,
possibly not.
-Chris


More information about the Intel-gfx mailing list