From: Casey Leedom <leedom@chelsio.com>
To: Anish Bhatt <anish@chelsio.com>,
"Luis R. Rodriguez" <mcgrof@do-not-panic.com>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
Cc: "tiwai@suse.de" <tiwai@suse.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Luis R. Rodriguez" <mcgrof@suse.com>,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
Joseph Salisbury <joseph.salisbury@canonical.com>,
One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
Tim Gardner <tim.gardner@canonical.com>,
Pierre Fersing <pierre-fersing@pierref.org>,
Andrew Morton <akpm@linux-foundation.org>,
Oleg Nesterov <oleg@redhat.com>,
Benjamin Poirier <bpoirier@suse.de>,
Nagalakshmi Nandigama <nagalakshmi.nandigama@avagotech.com>,
Praveen Krishnamoorthy <praveen.krishnamoorthy@avagotech.com>,
Sreekanth Reddy <sreekanth.reddy@avagotech.com>,
Abhijit Mahajan <abhijit.mahajan@avagotech.com>,
Hariprasad S <hariprasad@chelsio.com>,
Santosh Rastapur <santosh@chelsio.com>,
"MPT-FusionLinux.pdl@avagotech.com"
<MPT-FusionLinux.pdl@avagotech.com>,
"linux-scsi@vger
Subject: Re: [PATCH v3 2/3] cxgb4: use module_long_probe_init()
Date: Thu, 14 Aug 2014 09:42:49 -0700 [thread overview]
Message-ID: <53ECE709.5030008@chelsio.com> (raw)
In-Reply-To: <525DB349B3FB5444AE057A887CB2A8D85A0977@nice.asicdesigners.com>
On 08/13/2014 04:33 PM, Anish Bhatt wrote:
> Adding Casey who's actually incharge of this code and missing from the CC list
Thanks Anish!
As I mentioned to Anish, there are fundamentally two problems here in
the time being consumed by the cxgb4 PCI probe() function:
1. When various firmware files aren't present, request_firmware()
can take a very long time. This is easily solved by using
request_firmware_direct() and I certainly have no objection to that.
2. When there are multiple adapters present in a system which
need firmware downloaded, each one individually may not take
a ton of time but together they can exceed simple Module Load
Timeouts. There's not a simple answer here.
Part of the problem here is that it's a Module Load Timeout instead
of a per-device Probe Timeout. Part of the problem is that the current
architecture has Device Probe happening out of the Module Initialization
when we call pci_register_driver() with our PCI Device ID Table.
Running the Device Probes asynchronously has been discussed but that
has the problem that it's then impossible to return the Device Probe
Status. This is a problem for Driver Fallback and, if the probe fails,
we're not supposed to call the Device Remove function. To make this
work, the synchronous/asynchronous boundary would really need to be up
in the PCI Infrastructure layer so the Device Probe status could be
captured in the normal logic. This would be a moderately large change
there ...
Deferring the Device Initialization till the first "ifup" has also
been discussed and is certainly possible, though a moderately large
architectural change to every driver which needs it. It also has the
unfortunate effect of introducing random large delays directly on user
commands. From a User Experience perspective I would tend to want such
large delays in the Device Probe. But that's something that really
deserves a real User Interaction study rather than throwing a dart.
On the whole, I think that introducing these Module Load Timeouts
hasn't been well thought out with respect to the repercussions and I'd
be more inclined to back that out till a well thought out design is
developed. But I'm here for the discussion.
Casey
next prev parent reply other threads:[~2014-08-14 16:42 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1407882507-325-1-git-send-email-mcgrof@do-not-panic.com>
2014-08-12 22:28 ` [PATCH v3 1/3] init / kthread: add module_long_probe_init() and module_long_probe_exit() Luis R. Rodriguez
2014-08-12 22:59 ` Tetsuo Handa
2014-08-13 1:03 ` Greg KH
2014-08-13 17:51 ` Oleg Nesterov
2014-08-14 23:10 ` Luis R. Rodriguez
2014-08-15 14:39 ` Oleg Nesterov
2014-08-16 2:50 ` Luis R. Rodriguez
2014-08-17 6:59 ` Takashi Iwai
2014-08-17 12:25 ` Oleg Nesterov
2014-08-17 12:48 ` Oleg Nesterov
2014-08-17 12:55 ` Oleg Nesterov
2014-08-17 17:46 ` Luis R. Rodriguez
2014-08-17 18:21 ` Oleg Nesterov
2014-08-18 8:52 ` Takashi Iwai
2014-08-18 12:22 ` Oleg Nesterov
2014-08-18 13:20 ` Takashi Iwai
2014-08-18 15:19 ` Oleg Nesterov
2014-08-19 4:11 ` Luis R. Rodriguez
2014-08-12 22:28 ` [PATCH v3 2/3] cxgb4: use module_long_probe_init() Luis R. Rodriguez
2014-08-13 23:33 ` Anish Bhatt
2014-08-14 16:42 ` Casey Leedom [this message]
2014-08-14 19:53 ` Luis R. Rodriguez
2014-08-15 0:14 ` Luis R. Rodriguez
2014-08-15 7:12 ` gregkh
[not found] ` <53EE4E24.9020104@chelsio.com>
2014-08-17 5:02 ` Luis R. Rodriguez
2014-08-12 22:28 ` [PATCH v3 3/3] mptsas: " Luis R. Rodriguez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53ECE709.5030008@chelsio.com \
--to=leedom@chelsio.com \
--cc=MPT-FusionLinux.pdl@avagotech.com \
--cc=abhijit.mahajan@avagotech.com \
--cc=akpm@linux-foundation.org \
--cc=anish@chelsio.com \
--cc=bpoirier@suse.de \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=gregkh@linuxfoundation.org \
--cc=hariprasad@chelsio.com \
--cc=joseph.salisbury@canonical.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@do-not-panic.com \
--cc=mcgrof@suse.com \
--cc=nagalakshmi.nandigama@avagotech.com \
--cc=oleg@redhat.com \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=pierre-fersing@pierref.org \
--cc=praveen.krishnamoorthy@avagotech.com \
--cc=santosh@chelsio.com \
--cc=sreekanth.reddy@avagotech.com \
--cc=tim.gardner@canonical.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).