<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/hpsa.c, branch linux-3.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-10-07T15:39:35Z</updated>
<entry>
<title>SCSI: hpsa: Use LUN reset instead of target reset</title>
<updated>2012-10-07T15:39:35Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-07-26T16:34:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=edbce27e33fe170dc18cd42672cedb3b49613a20'/>
<id>urn:sha1:edbce27e33fe170dc18cd42672cedb3b49613a20</id>
<content type='text'>
commit 21e89afd325849eb38adccf382df16cc895911f9 upstream.

It turns out Smart Array logical drives do not support target
reset and when the target reset fails, the logical drive will
be taken off line.  Symptoms look like this:

hpsa 0000:03:00.0: Abort request on C1:B0:T0:L0
hpsa 0000:03:00.0: resetting device 1:0:0:0
hpsa 0000:03:00.0: cp ffff880037c56000 is reported invalid (probably means target device no longer present)
hpsa 0000:03:00.0: resetting device failed.
sd 1:0:0:0: Device offlined - not ready after error recovery
sd 1:0:0:0: rejecting I/O to offline device
EXT3-fs error (device sdb1): read_block_bitmap:

LUN reset is supported though, and is what we should be using.
Target reset is also disruptive in shared SAS situations,
for example, an external MSA1210m which does support target
reset attached to Smart Arrays in multiple hosts -- a target
reset from one host is disruptive to other hosts as all LUNs
on the target will be reset and will abort all outstanding i/os
back to all the attached hosts.  So we should use LUN reset,
not target reset.

Tested this with Smart Array logical drives and with tape drives.
Not sure how this bug survived since 2009, except it must be very
rare for a Smart Array to require more than 30s to complete a request.

Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>[SCSI] hpsa: fix handling of protocol error</title>
<updated>2012-09-18T11:29:30Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-09-14T21:34:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=256d0eaac87da1e993190846064f339f4c7a63f5'/>
<id>urn:sha1:256d0eaac87da1e993190846064f339f4c7a63f5</id>
<content type='text'>
If a command status of CMD_PROTOCOL_ERR is received, this
information should be conveyed to the SCSI mid layer, not
dropped on the floor.  CMD_PROTOCOL_ERR may be received
from the Smart Array for any commands destined for an external
RAID controller such as a P2000, or commands destined for tape
drives or CD/DVD-ROM drives, if for instance a cable is
disconnected.  This mostly affects multipath configurations, as
disconnecting a cable on a non-multipath configuration is not
going to do anything good regardless of whether CMD_PROTOCOL_ERR
is handled correctly or not.  Not handling CMD_PROTOCOL_ERR
correctly in a multipath configaration involving external RAID
controllers may cause data corruption, so this is quite a serious
bug.  This bug should not normally cause a problem for direct
attached disk storage.

Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: dial down lockup detection during firmware flash</title>
<updated>2012-05-10T08:19:39Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-05-01T16:43:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e85c59746957fd6e3595d02cf614370056b5816e'/>
<id>urn:sha1:e85c59746957fd6e3595d02cf614370056b5816e</id>
<content type='text'>
Dial back the aggressiveness of the controller lockup detection thread.
Currently it will declare the controller to be locked up if it goes
for 10 seconds with no interrupts and no change in the heartbeat
register.  Dial back this to 30 seconds with no heartbeat change, and
also snoop the ioctl path and if a firmware flash command is detected,
dial it back further to 4 minutes until the firmware flash command
completes.  The reason for this is that during the firmware flash
operation, the controller apparently doesn't update the heartbeat
register as frequently as it is supposed to, and we can get a false
positive.

Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: add new RAID level "1(ADM)"</title>
<updated>2012-05-10T08:18:24Z</updated>
<author>
<name>Mike Miller</name>
</author>
<published>2012-05-01T16:43:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d82357eaaa4c9b9cb16cbc1b95cb015801506a33'/>
<id>urn:sha1:d82357eaaa4c9b9cb16cbc1b95cb015801506a33</id>
<content type='text'>
Signed-off-by: Mike Miller &lt;mikem@beardog.cce.hp.com&gt;
Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: factor out hpsa_free_irqs_and_disable_msix</title>
<updated>2012-05-10T08:17:51Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-05-01T16:43:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0097f0f45a70cef4c2af7bdd718fc979be43aecb'/>
<id>urn:sha1:0097f0f45a70cef4c2af7bdd718fc979be43aecb</id>
<content type='text'>
Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: refine interrupt handler locking for greater concurrency</title>
<updated>2012-05-10T08:17:26Z</updated>
<author>
<name>Matt Gates</name>
</author>
<published>2012-05-01T16:43:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e16a33adc0e59aa96a483fd2923d77e674f013c1'/>
<id>urn:sha1:e16a33adc0e59aa96a483fd2923d77e674f013c1</id>
<content type='text'>
Use spinlocks with finer granularity in the submission and
completion paths to allow concurrent execution for multiple
reply queues.  In particular, do not hold a spin lock while
submitting a request to the device, nor during most of the
interrupt handler.

Signed-off-by: Matt Gates &lt;matthew.gates@hp.com&gt;
Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: use multiple reply queues</title>
<updated>2012-05-10T08:16:25Z</updated>
<author>
<name>Matt Gates</name>
</author>
<published>2012-05-01T16:43:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=254f796b9f22b1944c64caabc356a56caaa2facd'/>
<id>urn:sha1:254f796b9f22b1944c64caabc356a56caaa2facd</id>
<content type='text'>
Smart Arrays can support multiple reply queues onto which command
completions may be deposited.  It can help performance quite a bit
to arrange for command completions to be processed on the same CPU
from which they were submitted to increase the likelihood of cache
hits.

Signed-off-by: Matt Gates &lt;matthew.gates@hp.com&gt;
Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: factor out tail calls to next_command() in process_(non)indexed_cmd()</title>
<updated>2012-05-10T08:15:46Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-05-01T16:43:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1d94f94d89848762306b4a8bd5e658c11828ab12'/>
<id>urn:sha1:1d94f94d89848762306b4a8bd5e658c11828ab12</id>
<content type='text'>
This is in order to smooth the way for upcoming changes to allow use of
multiple reply queues for command completions.

Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: Matt Gates &lt;matthew.gates@hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: do aborts two ways</title>
<updated>2012-05-10T08:15:16Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-05-01T16:42:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6cba3f1972de14421ef4cf4b46a15cc5d604e791'/>
<id>urn:sha1:6cba3f1972de14421ef4cf4b46a15cc5d604e791</id>
<content type='text'>
When aborting a command, the tag is supposed to be
specified as 64-bit little endian.  However, some smart
arrays expect the tag of the command to be aborted to be
specified in a strange byte order.  How to tell which sort
of Smart Array firmware we're dealing with is not obvious.
However, because of the way we construct our tags, the values
of any outstanding tag when specified with the "strange" byte
order will not collide with the value specified in the correct
order.  That means we can safely attempt the abort both ways.

Signed-off-by: Stephen M. Cameron &lt;stephenmcameron@gmail.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] hpsa: add abort error handler function</title>
<updated>2012-05-10T08:14:29Z</updated>
<author>
<name>Stephen M. Cameron</name>
</author>
<published>2012-05-01T16:42:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75167d2cc7654f57b90497fe90b1f0ae946c22a6'/>
<id>urn:sha1:75167d2cc7654f57b90497fe90b1f0ae946c22a6</id>
<content type='text'>
Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
</feed>
