<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/mvsas, 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-07-20T07:58:54Z</updated>
<entry>
<title>[SCSI] mvsas: remove unused variable in mvs_task_exec()</title>
<updated>2012-07-20T07:58:54Z</updated>
<author>
<name>Dan Carpenter</name>
</author>
<published>2012-06-22T06:36:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cca85013ef54f66eb4616e6f3860549a96c8338b'/>
<id>urn:sha1:cca85013ef54f66eb4616e6f3860549a96c8338b</id>
<content type='text'>
We don't use "dev" any more after 07ec747a5f ("libsas: remove
ata_port.lock management duties from lldds") and it causes a compile
warning.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: Xiangliang Yu &lt;yuxiangl@marvell.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: trim sas_task of slow path infrastructure</title>
<updated>2012-07-20T07:58:54Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2012-06-22T06:36:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0bf750c2d25c3a2131ececbff63c7878e0e3765'/>
<id>urn:sha1:f0bf750c2d25c3a2131ececbff63c7878e0e3765</id>
<content type='text'>
The timer and the completion are only used for slow path tasks (smp, and
lldd tmfs), yet we incur the allocation space and cpu setup time for
every fast path task.

Cc: Xiangliang Yu &lt;yuxiangl@marvell.com&gt;
Acked-by: Jack Wang &lt;jack_wang@usish.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6</title>
<updated>2012-03-22T19:55:29Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2012-03-22T19:55:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=424a6f6ef990b7e9f56f6627bfc6c46b493faeb4'/>
<id>urn:sha1:424a6f6ef990b7e9f56f6627bfc6c46b493faeb4</id>
<content type='text'>
SCSI updates from James Bottomley:
 "The update includes the usual assortment of driver updates (lpfc,
  qla2xxx, qla4xxx, bfa, bnx2fc, bnx2i, isci, fcoe, hpsa) plus a huge
  amount of infrastructure work in the SAS library and transport class
  as well as an iSCSI update.  There's also a new SCSI based virtio
  driver."

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (177 commits)
  [SCSI] qla4xxx: Update driver version to 5.02.00-k15
  [SCSI] qla4xxx: trivial cleanup
  [SCSI] qla4xxx: Fix sparse warning
  [SCSI] qla4xxx: Add support for multiple session per host.
  [SCSI] qla4xxx: Export CHAP index as sysfs attribute
  [SCSI] scsi_transport: Export CHAP index as sysfs attribute
  [SCSI] qla4xxx: Add support to display CHAP list and delete CHAP entry
  [SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry
  [SCSI] pm8001: fix endian issue with code optimization.
  [SCSI] pm8001: Fix possible racing condition.
  [SCSI] pm8001: Fix bogus interrupt state flag issue.
  [SCSI] ipr: update PCI ID definitions for new adapters
  [SCSI] qla2xxx: handle default case in qla2x00_request_firmware()
  [SCSI] isci: improvements in driver unloading routine
  [SCSI] isci: improve phy event warnings
  [SCSI] isci: debug, provide state-enum-to-string conversions
  [SCSI] scsi_transport_sas: 'enable' phys on reset
  [SCSI] libsas: don't recover end devices attached to disabled phys
  [SCSI] libsas: fixup target_port_protocols for expanders that don't report sata
  [SCSI] libsas: set attached device type and target protocols for local phys
  ...
</content>
</entry>
<entry>
<title>scsi: remove the second argument of k[un]map_atomic()</title>
<updated>2012-03-20T13:48:19Z</updated>
<author>
<name>Cong Wang</name>
</author>
<published>2011-11-25T15:14:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77dfce076cbd76c04e90abff188d058cdbff78dd'/>
<id>urn:sha1:77dfce076cbd76c04e90abff188d058cdbff78dd</id>
<content type='text'>
Signed-off-by: Cong Wang &lt;amwang@redhat.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: async ata scanning</title>
<updated>2012-02-29T21:35:41Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2012-01-19T04:47:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9508a66f898d46e726a318469312b45e0b1d078b'/>
<id>urn:sha1:9508a66f898d46e726a318469312b45e0b1d078b</id>
<content type='text'>
libsas ata error handling is already async but this does not help the
scan case.  Move initial link recovery out from under host-&gt;scan_mutex,
and delay synchronization with eh until after all port probe/recovery
work has been queued.

Device ordering is maintained with scan order by still calling
sas_rphy_add() in order of domain discovery.

Since we now scan the domain list when invoking libata-eh we need to be
careful to check for fully initialized ata ports.

Acked-by: Jack Wang &lt;jack_wang@usish.com&gt;
Acked-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: fix sas_find_local_phy(), take phy references</title>
<updated>2012-02-29T19:01:06Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-12-22T05:33:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f41a0c441c3fe43e79ebeb75584dbb5bfa83e5cd'/>
<id>urn:sha1:f41a0c441c3fe43e79ebeb75584dbb5bfa83e5cd</id>
<content type='text'>
In the direct-attached case this routine returns the phy on which this
device was first discovered.  Which is broken if we want to support
wide-targets, as this phy reference can become stale even though the
port is still active.

In the expander-attached case this routine tries to lookup the phy by
scanning the attached sas addresses of the parent expander, and BUG_ONs
if it can't find it.  However since eh and the libsas workqueue run
independently we can still be attempting device recovery via eh after
libsas has recorded the device as detached.  This is even easier to hit
now that eh is blocked while device domain rediscovery takes place, and
that libata is fed more timed out commands increasing the chances that
it will try to recover the ata device.

Arrange for dev-&gt;phy to always point to a last known good phy, it may be
stale after the port is torn down, but it will catch up for wide port
reconfigurations, and never be NULL.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: remove ata_port.lock management duties from lldds</title>
<updated>2012-02-19T19:50:12Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-11-18T01:59:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=312d3e56119a4bc5c36a96818f87f650c069ddc2'/>
<id>urn:sha1:312d3e56119a4bc5c36a96818f87f650c069ddc2</id>
<content type='text'>
Each libsas driver (mvsas, pm8001, and isci) has invented a different
method for managing the ap-&gt;lock.  The lock is held by the ata
-&gt;queuecommand() path.  mvsas drops it prior to acquiring any internal
locks which allows it to hold its internal lock across calls to
task-&gt;task_done().  This capability is important as it is the only way
the driver can flush task-&gt;task_done() instances to guarantee that it no
longer has any in-flight references to a domain_device at
-&gt;lldd_dev_gone() time.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: introduce sas_drain_work()</title>
<updated>2012-02-19T19:48:51Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-12-20T00:42:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1124cd3ec97406c767b90bf7e93ecd2d2915592'/>
<id>urn:sha1:b1124cd3ec97406c767b90bf7e93ecd2d2915592</id>
<content type='text'>
When an lldd invokes -&gt;notify_port_event() it can trigger a chain of libsas
events to:

  1/ form the port and find the direct attached device

  2/ if the attached device is an expander perform domain discovery

A call to flush_workqueue() will only flush the initial port formation work.
Currently libsas users need to call scsi_flush_work() up to the max depth of
chain (which will grow from 2 to 3 when ata discovery is moved to its own
discovery event).  Instead of open coding multiple calls switch to use
drain_workqueue() to flush sas work.

drain_workqueue() does not handle new work submitted during the drain so
libsas needs a bit of infrastructure to hold off unchained work submissions
while a drain is in flight.  A lldd -&gt;notify() event is considered 'unchained'
while a sas_discover_event() is 'chained'.  As Tejun notes:

  "For now, I think it would be best to add private wrapper in libsas to
   support deferring unchained work items while draining."

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: kill sas_slave_destroy</title>
<updated>2012-02-19T19:36:36Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-11-18T01:59:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f4e75a49fd07d707995865493b9f452302ae36b'/>
<id>urn:sha1:6f4e75a49fd07d707995865493b9f452302ae36b</id>
<content type='text'>
Per commit 3e4ec344 "libata: kill ATA_FLAG_DISABLED" needing to set
ATA_DEV_NONE is a holdover from before libsas converted to the
"new-style" ata-eh.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] mv_sas: OCZ RevoDrive3 &amp; zDrive R4 support</title>
<updated>2011-10-31T09:29:01Z</updated>
<author>
<name>Robin H. Johnson</name>
</author>
<published>2011-10-24T22:30:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99a700bcc75429ba84a672d04f0b650dcc5b3042'/>
<id>urn:sha1:99a700bcc75429ba84a672d04f0b650dcc5b3042</id>
<content type='text'>
In the OCZ RevoDrive3/zDrive R4 series, the "OCZ SuperScale Storage
Controller" with "Virtualized Controller Architecture 2.0" really seems
to be a Marvell 88SE9485 part, with OCZ firmware/BIOS.

Developed and tested on OCZ RevoDrive3 120GB [PCI 1b85:1021]

Should work on:
- OCZ RevoDrive3 (2x SandForce 2281)
- OCZ RevoDrive3 X2 (4x SandForce 2281)
- OCZ zDrive R4 CM84 (4x SandForce 2281)
- OCZ zDrive R4 CM88 (8x SandForce 2281)
- OCZ zDrive R4 RM84 (4x SandForce 2582)
- OCZ zDrive R4 RM88 (8x SandForce 2582)

All of this because a friend recently bought a OCZ RevoDrive3 and was
bitten by the lack of Linux support.

Notes from testing:
-------------------
- SMART works.
- VPD Device Identification is "OCZ-REVODRIVE3"
- Thin provisioning/TRIM seems to be implemented as WRITE SAME UNMAP,
  with deterministic (non-zero) read after TRIM, but I'm not sure if it
  works 100% in my testing.
- Some of the tuning in the firmware seems to ensure much better
  performance when in a RAID0 setup than using the two devices
  seperately.

I have not tested booting from the SSD, because all of this was
developed and tested remotely from the actual hardware.

Signed-off-by: Robin H. Johnson &lt;robbat2@gentoo.org&gt;
Thanks-To: Gordon Pritchard &lt;gordp@sfu.ca&gt;
Acked-by: Xiangliang Yu &lt;yuxiangl@marvell.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
</feed>
