diff mbox

[RFC] i915: make the probe asynchronous

Message ID 20180604053219.2040-1-feng.tang@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Feng Tang June 4, 2018, 5:32 a.m. UTC
i915 driver's probe is one of the longest of pci devices, which takes
about hundreds of microseconds or more, make the probe async will help
much on the kernel boot time, as different driver's probe can go async.

This have been limited verified on several platforms of mine, don't
know if it will have other side effects and drawbacks, so I would
throw it out for reviews and comments, thanks

Signed-off-by: Feng Tang <feng.tang@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_pci.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Jani Nikula June 5, 2018, 7:41 a.m. UTC | #1
On Mon, 04 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
> i915 driver's probe is one of the longest of pci devices, which takes
> about hundreds of microseconds or more, make the probe async will help
> much on the kernel boot time, as different driver's probe can go async.
>
> This have been limited verified on several platforms of mine, don't
> know if it will have other side effects and drawbacks, so I would
> throw it out for reviews and comments, thanks

See the previous discussion [1].

BR,
Jani.

[1] http://mid.mail-archive.com/20180323083048.13327-1-chris@chris-wilson.co.uk

>
> Signed-off-by: Feng Tang <feng.tang@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  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 062e91b39085..5db3080101be 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -725,6 +725,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,
>  };
>  
>  static int __init i915_init(void)
Feng Tang June 5, 2018, 7:51 a.m. UTC | #2
Hi Jani,

On Tue, Jun 05, 2018 at 10:41:04AM +0300, Jani Nikula wrote:
> On Mon, 04 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
> > i915 driver's probe is one of the longest of pci devices, which takes
> > about hundreds of microseconds or more, make the probe async will help
> > much on the kernel boot time, as different driver's probe can go async.
> >
> > This have been limited verified on several platforms of mine, don't
> > know if it will have other side effects and drawbacks, so I would
> > throw it out for reviews and comments, thanks
> 
> See the previous discussion [1].

Thanks! But cannot access the link :( 

I've googled, but without luck, is there other link? or some other
keywords so that I can google with?

Thanks,
Feng

> 
> BR,
> Jani.
> 
> [1] http://mid.mail-archive.com/20180323083048.13327-1-chris@chris-wilson.co.uk
>
Jani Nikula June 5, 2018, 8:18 a.m. UTC | #3
On Tue, 05 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
> Hi Jani,
>
> On Tue, Jun 05, 2018 at 10:41:04AM +0300, Jani Nikula wrote:
>> On Mon, 04 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
>> > i915 driver's probe is one of the longest of pci devices, which takes
>> > about hundreds of microseconds or more, make the probe async will help
>> > much on the kernel boot time, as different driver's probe can go async.
>> >
>> > This have been limited verified on several platforms of mine, don't
>> > know if it will have other side effects and drawbacks, so I would
>> > throw it out for reviews and comments, thanks
>> 
>> See the previous discussion [1].
>
> Thanks! But cannot access the link :( 
>
> I've googled, but without luck, is there other link? or some other
> keywords so that I can google with?

Works for me, here's another:

http://patchwork.freedesktop.org/patch/msgid/20180323083048.13327-1-chris@chris-wilson.co.uk

BR,
Jani.


>
> Thanks,
> Feng
>
>> 
>> BR,
>> Jani.
>> 
>> [1] http://mid.mail-archive.com/20180323083048.13327-1-chris@chris-wilson.co.uk
>>
Feng Tang June 6, 2018, 7:36 a.m. UTC | #4
Hi Jani,

On Tue, Jun 05, 2018 at 11:18:46AM +0300, Jani Nikula wrote:
> On Tue, 05 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
> > Hi Jani,
> >
> > On Tue, Jun 05, 2018 at 10:41:04AM +0300, Jani Nikula wrote:
> >> On Mon, 04 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
> >> > i915 driver's probe is one of the longest of pci devices, which takes
> >> > about hundreds of microseconds or more, make the probe async will help
> >> > much on the kernel boot time, as different driver's probe can go async.
> >> >
> >> > This have been limited verified on several platforms of mine, don't
> >> > know if it will have other side effects and drawbacks, so I would
> >> > throw it out for reviews and comments, thanks
> >> 
> >> See the previous discussion [1].
> >
> > Thanks! But cannot access the link :( 
> >
> > I've googled, but without luck, is there other link? or some other
> > keywords so that I can google with?
> 
> Works for me, here's another:
> 
> http://patchwork.freedesktop.org/patch/msgid/20180323083048.13327-1-chris@chris-wilson.co.uk

thanks, this works now.

IIUC, you are waiting for the HDA audio driver to first handle the
i915 sync probel case?

Thanks,
Feng
Jani Nikula June 6, 2018, 8:21 a.m. UTC | #5
On Wed, 06 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
> Hi Jani,
>
> On Tue, Jun 05, 2018 at 11:18:46AM +0300, Jani Nikula wrote:
>> On Tue, 05 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
>> > Hi Jani,
>> >
>> > On Tue, Jun 05, 2018 at 10:41:04AM +0300, Jani Nikula wrote:
>> >> On Mon, 04 Jun 2018, Feng Tang <feng.tang@intel.com> wrote:
>> >> > i915 driver's probe is one of the longest of pci devices, which takes
>> >> > about hundreds of microseconds or more, make the probe async will help
>> >> > much on the kernel boot time, as different driver's probe can go async.
>> >> >
>> >> > This have been limited verified on several platforms of mine, don't
>> >> > know if it will have other side effects and drawbacks, so I would
>> >> > throw it out for reviews and comments, thanks
>> >> 
>> >> See the previous discussion [1].
>> >
>> > Thanks! But cannot access the link :( 
>> >
>> > I've googled, but without luck, is there other link? or some other
>> > keywords so that I can google with?
>> 
>> Works for me, here's another:
>> 
>> http://patchwork.freedesktop.org/patch/msgid/20180323083048.13327-1-chris@chris-wilson.co.uk
>
> thanks, this works now.
>
> IIUC, you are waiting for the HDA audio driver to first handle the
> i915 sync probel case?

I wouldn't hold my breath waiting. If you want to do i915 async probe,
you'll probably have to figure hda out as well.

BR,
Jani.



>
> Thanks,
> Feng
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 062e91b39085..5db3080101be 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -725,6 +725,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,
 };
 
 static int __init i915_init(void)