linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Question about Request Sense case in scsi_lib.c
@ 2004-10-12  0:00 Dave Olien
       [not found] ` <eada2a07041012092973d35415@mail.gmail.com>
  0 siblings, 1 reply; 18+ messages in thread
From: Dave Olien @ 2004-10-12  0:00 UTC (permalink / raw)
  To: linux-scsi



I'm having some odd behavior with my multipath fibre channel system.
I'm running 2.6.9-rc3, and have a Qlogic 2300 dual ported controller,
routed through two brocade switches to two IBM FastT200 disk arrays.

The FastT200 are configured as JBOD. Each array has 10 disks.  Each FastT200
is dual ported, configured in "active-active" mode.  So, I have
four paths to each physical disk, 80 paths total.

Doing just simple IO (dd if=/dev/zero of=/dev/sdX bs=1M) on all 20 at once
drives gives me occasional messages of the form:

Incorrect number of segments after building list
counted 31, received 30
req nr_sec 1024, cur_nr_sec 8

this is from the code in scsi_init_io() function in scsi_lib.c

I traced this to scsi_io_completion(), to the scsi_requeue_command() at
the bottom of this code.

			if ((cmd->sense_buffer[2] & 0xf) == UNIT_ATTENTION) {
                                if (cmd->device->removable) {
                                        /* detected disc change.  set a bit
                                         * and quietly refuse further access.
                                         */
                                        cmd->device->changed = 1;
                                        cmd = scsi_end_request(cmd, 0,
                                                        this_count, 1);
                                        return;
                                } else {
                                        /*
                                        * Must have been a power glitch, or a
                                        * bus reset.  Could not have been a
                                        * media change, so we just retry the
                                        * request and see what happens.
                                        */
                                        scsi_requeue_command(q, cmd);
                                        return;
                                }
			}


My system hits this scsi_requeue_command() case a lot (maybe 1 in 1000 writes),
and of these I occasionally get the error messages in the requeue.

Can anyone explain why I might be getting the "bus reset" in my
request sense data?  I'll later look into the requeued commands that
fail, to understand what's going on there.

Thanks!
Dave Olien

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2004-10-14 20:40 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <53CF1076699CD711B7DD0002A51363F1072A6E3A@exw-ks.ks.lsil.com>
2004-10-13 21:46 ` Question about Request Sense case in scsi_lib.c 'Dave Olien'
2004-10-13 21:56   ` James Bottomley
2004-10-13 22:09     ` 'Dave Olien'
2004-10-14 17:52     ` 'Dave Olien'
2004-10-14 18:05       ` James Bottomley
2004-10-14 20:39       ` James Bottomley
2004-10-14  0:30 ` Douglas Gilbert
2004-10-14  6:49   ` Lan Tran
2004-10-14 15:25     ` James Bottomley
2004-10-12  0:00 Dave Olien
     [not found] ` <eada2a07041012092973d35415@mail.gmail.com>
2004-10-12 16:31   ` Tim Pepper
2004-10-12 16:59   ` Dave Olien
2004-10-12 17:13     ` James Bottomley
2004-10-12 17:59       ` Dave Olien
2004-10-12 20:13         ` Patrick Mansfield
2004-10-12 20:44           ` Dave Olien
2004-10-13  2:10       ` Douglas Gilbert
2004-10-13 17:56         ` Dave Olien

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).