From: Christoph Hellwig <hch@lst.de>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Paul Mackerras <paulus@ozlabs.org>,
linux-scsi@vger.kernel.org, Tejun Heo <tj@kernel.org>
Subject: Re: Bugs in multipath scsi in 4.3-rc2
Date: Wed, 30 Sep 2015 17:14:49 +0200 [thread overview]
Message-ID: <20150930151449.GC26299@lst.de> (raw)
In-Reply-To: <1443202278.2188.13.camel@HansenPartnership.com>
On Fri, Sep 25, 2015 at 10:31:18AM -0700, James Bottomley wrote:
> So the warning seems to be because scsi_dh_find_driver() is not quite
> consistent. For everything except alua, it scans the dh driver list to
> see what might attach to the device. It returns "alua" if the TPGS
> field is anything other than zero, regardless of whether the alua driver
> is loaded. We could fix the problem by returning NULL if the alua
> driver isn't present ... would that have any other adverse consequences?
It's not inconsistent - to autoload a driver we cant't require it to
be loaded. For alua we check the TPGS bit per the standard, and for
the non-standard drivers we use a whitelist in scsi_dh.c now.
The problem is that async probing deadlocks vs a synchronous
request_module, as Tejun figured out based on the thrad in
http://thread.gmane.org/gmane.linux.kernel/1420814
Tejun, if I understand the thread and your patch right there really
isn't any good altenative to a synchronous request_module, and you
thus disabled autoloading elevator modules, right?
For SCSI device handlers we could do this by switching from scsi_dh_lookup
to __scsi_dh_lookup in scsi_dh_add_device, but autoloading the device
handlers is a really useful feature that I'd love to keep if possible.
Given that before 4.3-rc we could not autoload them the switch to
__scsi_dh_lookup migt be the required band aid for now until we can
come up with something better.
Paul, can you try the trivial one liner below?
diff --git a/drivers/scsi/scsi_dh.c b/drivers/scsi/scsi_dh.c
index edb044a..fbc9502 100644
--- a/drivers/scsi/scsi_dh.c
+++ b/drivers/scsi/scsi_dh.c
@@ -391,7 +391,7 @@ int scsi_dh_attach(struct request_queue *q, const char *name)
if (!sdev)
return -ENODEV;
- scsi_dh = scsi_dh_lookup(name);
+ scsi_dh = __scsi_dh_lookup(name);
if (!scsi_dh) {
err = -EINVAL;
goto out_put_device;
next prev parent reply other threads:[~2015-09-30 15:14 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-25 12:16 Bugs in multipath scsi in 4.3-rc2 Paul Mackerras
2015-09-25 15:18 ` Christoph Hellwig
2015-09-25 17:31 ` James Bottomley
2015-09-30 15:14 ` Christoph Hellwig [this message]
2015-09-30 21:53 ` Tejun Heo
2015-09-30 22:34 ` James Bottomley
2015-10-02 12:56 ` Christoph Hellwig
2015-10-02 13:25 ` James Bottomley
2015-10-02 13:34 ` Christoph Hellwig
2015-10-02 13:44 ` James Bottomley
2015-10-04 7:45 ` Christoph Hellwig
2015-10-12 12:45 ` Hannes Reinecke
2015-10-12 14:39 ` Christoph Hellwig
2015-10-12 19:29 ` Mike Snitzer
2015-10-12 19:36 ` Christoph Hellwig
2015-10-13 6:00 ` Hannes Reinecke
2015-10-13 11:52 ` Christoph Hellwig
2015-10-12 14:51 ` James Bottomley
2015-10-01 4:34 ` Paul Mackerras
2015-10-02 12:52 ` Christoph Hellwig
2015-10-08 4:59 ` Paul Mackerras
2015-09-25 16:28 ` Bart Van Assche
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=20150930151449.GC26299@lst.de \
--to=hch@lst.de \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-scsi@vger.kernel.org \
--cc=paulus@ozlabs.org \
--cc=tj@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.