From: Douglas Gilbert <dgilbert@interlog.com>
To: scameron@beardog.cce.hp.com
Cc: linux-scsi@vger.kernel.org,
James.Bottomley@HansenPartnership.com, mikem@beardog.cce.hp.com,
dab@hp.com, hch@infradead.com, axboe@kernel.dk,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: Re: Is this a known problem with the SCSI mid layer?
Date: Thu, 14 Jan 2010 13:24:59 -0500 [thread overview]
Message-ID: <4B4F617B.5050609@interlog.com> (raw)
In-Reply-To: <20100114165602.GY13413@beardog.cce.hp.com>
scameron@beardog.cce.hp.com wrote:
> I'm seeing a problem which I think is a problem in the SCSI mid layer.
>
> Check this out:
>
> I can rmmod and insmod hpsa (a modified version from
> what's currently in the mainline tree, but I don't think
> that matters.)
>
> I have one logical drive present
>
> [root@slicer ~]# rmmod hpsa
> [root@slicer ~]# insmod /usr/src/linux-2.6.27.42/drivers/scsi/hpsa.ko
> [root@slicer ~]# cat /proc/scsi/scsi
> Attached devices:
> Host: scsi1 Channel: 00 Id: 00 Lun: 00
> Vendor: HP Model: 1210m Rev: 0150
> Type: RAID ANSI SCSI revision: 05
> Host: scsi1 Channel: 00 Id: 00 Lun: 01
> Vendor: HP Model: 1210m VOLUME Rev: 0150
> Type: Direct-Access ANSI SCSI revision: 05
> [root@slicer ~]# rmmod hpsa
> [root@slicer ~]# insmod /usr/src/linux-2.6.27.42/drivers/scsi/hpsa.ko
> [root@slicer ~]# cat /proc/scsi/scsi
> Attached devices:
> Host: scsi2 Channel: 00 Id: 00 Lun: 00
> Vendor: HP Model: 1210m Rev: 0150
> Type: RAID ANSI SCSI revision: 05
> Host: scsi2 Channel: 00 Id: 00 Lun: 01
> Vendor: HP Model: 1210m VOLUME Rev: 0150
> Type: Direct-Access ANSI SCSI revision: 05
> [root@slicer ~]# lsscsi -g
> [2:0:0:0] storage HP 1210m 0150 - /dev/sg0
> [2:0:0:1] disk HP 1210m VOLUME 0150 /dev/sda /dev/sg1
>
> So far, so good.
>
> Now, watch this. Remove the device while something has it open:
>
> [root@slicer ~]# sleep 10 < /dev/sg1 & ( sleep 1 && echo scsi remove-single-device 2 0 0 1 > /proc/scsi/scsi )
> [1] 6077
> [root@slicer ~]#
> [1]+ Done sleep 10 < /dev/sg1
> [root@slicer ~]# lsof /dev/sg1
> lsof: status error on /dev/sg1: No such file or directory
> lsof 4.78
> latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
> latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
> latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
> usage: [-?abhlnNoOPRstUvVX] [+|-c c] [+|-d s] [+D D] [+|-f]
> [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]]
> [-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [-Z [Z]] [--] [names]
> Use the ``-h'' option to get more help information.
> [root@slicer ~]# rmmod hpsa
> ERROR: Module hpsa is in use
> [root@slicer ~]#
>
> Hmm, that's not cool.
Steve,
That 'sleep 10 < /dev/sg1' worries me. The purpose of a
read() on a sg device is to fetch the response of a SCSI
command sent by a preceding write(). So with nothing to
read and a blocking sg device file descriptor the read()
probably hangs. IMO the valid use of the sg driver should
not have a read() hanging for a SCSI command that was
never sent. While that is happening you remove the
device.
That may be a valid torture test for the sg driver but
isn't something that should be encouraged from the
user space.
On a Ubuntu kernel 2.6.31-17-generic using a virtual
device owned by the scsi_debug driver and the same
torture test, I don't have a problem with 'rmmod scsi_debug'
IMO the usb-storage driver is not a good yardstick.
Doug Gilbert
> Maybe it's my driver. Let me try with USB.
>
> [root@slicer ~]# cat /proc/scsi/scsi
> Attached devices:
> Host: scsi1 Channel: 00 Id: 00 Lun: 00
> Vendor: USB Model: DISK 2.0 Rev: 0403
> Type: Direct-Access ANSI SCSI revision: 00
> [root@slicer ~]# lsmod | grep sd
> sd_mod 59592 0
> scsi_mod 189304 9 usb_storage,ib_iser,iscsi_tcp,libiscsi,scsi_transport_iscsi,scsi_dh,sg,cciss,sd_mod
> [root@slicer ~]# rmmod usb_storage
> [root@slicer ~]# cat /proc/scsi/scsi
> Attached devices:
> [root@slicer ~]# modprobe usb_storage
> [root@slicer ~]# cat /proc/scsi/scsi
> Attached devices:
> [root@slicer ~]# echo scsi add-single-device 1 0 0 0 > /proc/scsi/scsi
> -bash: echo: write error: No such device or address
>
> Oh yeah, the host number increments, forgot about that...
>
> [root@slicer ~]# echo scsi add-single-device 2 0 0 0 > /proc/scsi/scsi
> [root@slicer ~]# cat /proc/scsi/scsi
> Attached devices:
> Host: scsi2 Channel: 00 Id: 00 Lun: 00
> Vendor: USB Model: DISK 2.0 Rev: 0403
> Type: Direct-Access ANSI SCSI revision: 00
> [root@slicer ~]# lsscsi -g
> [2:0:0:0] disk USB DISK 2.0 0403 /dev/sda /dev/sg0
> [root@slicer ~]# sleep 10 < /dev/sg0 & ( sleep 1 && echo scsi remove-single-device 2 0 0 0 > /proc/scsi/scsi )
> [1] 6073
> [root@slicer ~]#
> [root@slicer ~]#
> [1]+ Done sleep 10 < /dev/sg0
> [root@slicer ~]# rmmod usb_storage
> ERROR: Module usb_storage is in use
> [root@slicer ~]#
>
> Hmm, same thing.
>
> Any thoughts? (other than "don't do that." Our array configuration
> utility for smart arrays is causing similar trouble, as it rapidly creates
> and deletes logical drives, etc. so it would be nice if this didn't happen.)
next prev parent reply other threads:[~2010-01-14 18:25 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-14 16:56 Is this a known problem with the SCSI mid layer? scameron
2010-01-14 18:24 ` Douglas Gilbert [this message]
2010-01-14 19:00 ` scameron
2010-01-14 20:07 ` scameron
2010-01-14 23:43 ` Stefan Richter
2010-01-15 8:10 ` Jens Axboe
2010-01-15 9:03 ` Stefan Richter
2010-01-15 21:44 ` scameron
2010-01-16 11:47 ` FUJITA Tomonori
-- strict thread matches above, loose matches on Subject: below --
2010-01-15 2:14 Stephen Cameron
2010-01-15 13:02 ` Stefan Richter
2010-01-15 14:18 ` Stephen Cameron
2010-01-15 17:50 ` Douglas Gilbert
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=4B4F617B.5050609@interlog.com \
--to=dgilbert@interlog.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=axboe@kernel.dk \
--cc=dab@hp.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=hch@infradead.com \
--cc=linux-scsi@vger.kernel.org \
--cc=mikem@beardog.cce.hp.com \
--cc=scameron@beardog.cce.hp.com \
/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.