Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jan 2016 16:50:34 -0800
From:      Warner Losh <imp@bsdimp.com>
To:        "Kenneth D. Merry" <ken@freebsd.org>
Cc:        scsi@freebsd.org, current@freebsd.org
Subject:   Re: CAM Shingled Disk support patches available
Message-ID:  <349FCA2B-8346-4EC2-8459-B174FDC2CDB3@bsdimp.com>
In-Reply-To: <20160118223704.GA87506@mithlond.kdm.org>
References:  <20151118171309.GA3564@mithlond.kdm.org> <20160118223704.GA87506@mithlond.kdm.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_D9B23743-1797-4D51-856D-5A96F7555BA3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Jan 18, 2016, at 2:37 PM, Kenneth D. Merry <ken@freebsd.org> wrote:
>=20
> I have a new set of SMR patches available.  See below for the full
> explanation.
>=20
> The primary change here is that I have added SMR support to the ada(4)
> driver.  I spent some time considering whether to try to make the =
da(4) and
> ada(4) probe infrastructure somewhat common, but in the end concluded =
it
> would be too involved with not enough code reduction (if any) in the =
end.
>=20
> So, although the ideas are similar, the probe logic is separate.
>=20
> Note that NCQ support for SMR commands (Report Zones, Reset Write =
Pointer,
> etc.) for SATA protocol shingled drives isn't active.  For both the =
da(4)
> and ada(4) driver this is for lack of a way to plumb the ATA Auxiliary
> register down to the drive.

I=E2=80=99ve plumbed it down, but in a gross, kludgy way to make NCQ =
Trim work
where the only value in the Auxiliary register needs to be 1. It only =
takes
up one bit, but it doesn=E2=80=99t change the size of the CCB. If the =
NCQ Trim
work wasn=E2=80=99t based on the I/O scheduler, I=E2=80=99d have pushed =
it into head
and would be happy to share code.

AHCI can send it, but it turns out that LSI=E2=80=99s drivers (mpt, mps, =
etc)
can=E2=80=99t do it due to firmware inadequacies. The ability to send a =
FIS
in these firmwares looked promising, but it requires a full draining of
other requests, which kind of defeats the purpose of NCQ.

> In the ada(4) case, we need to add the register to struct ccb_ataio =
and
> add support in one or more of the underlying SATA drivers, e.g. =
ahci(4).

I believe that changes the size of the CCB, so I tried to avoid
that since I didn=E2=80=99t want to force a recompile of camcontrol(8).
Adding it to the atacmd structure wasn=E2=80=99t so bad, and the CCB =
size
didn=E2=80=99t completely change. The problem was that the atacmd =
changed
size and pushed all the other fields.

> In the da(4) case, it will require an update of the T-10 SAT spec to
> provide a way to pass the Auxiliary register down via the SCSI ATA
> PASS-THROUGH command, and then a subsquent update of the SAT layer in
> various vendors' SAS controller firmware.  At that point, there may be
> an official mapping of the SCSI ZBC commands to the ATA ZAC commands, =
and
> we may be able to just issue the SCSI version of the commands instead =
of
> composing ATA commands in the da(4) driver.  (We'll still need to keep =
the
> ATA passthrough version for a while at least to support controllers =
that
> don't have the updated translation code.)

I looked to implement things here, but didn=E2=80=99t want to invent =
something that
the T-10 would later reinvent.

> FreeBSD/head as of SVN revision 294105:
>=20
> https://people.freebsd.org/~ken/cam_smr.head.20160118.1.txt
>=20
> FreeBSD stable/10 as of SVN revision 294100:
>=20
> https://people.freebsd.org/~ken/cam_smr.stable10.20160118.1.txt
>=20
> Testing and comments are welcome.

So having said all that, I=E2=80=99m totally open to something better.

Warner


--Apple-Mail=_D9B23743-1797-4D51-856D-5A96F7555BA3
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJWnYhbAAoJEGwc0Sh9sBEA8twQANJz9qBAsb9LsDw9OAD2j0YG
9/AICl2TX2KEYtVEjobIPzNGtAlsQVNzGquP7SrC6KXLwr6QJb7S92tUpQJczC+I
JMx2/ggiA7jlzURlNOjaJCPaBTIMsgtG5RKQWebvElS6K9Iigm25DlbNcL/3b7VR
0WGRGSSmznomtYd8c6IEr3AjzMZlpiLF8Oqsftd080Sd+GpTCj6bEZfIbB++IUSW
MxlufkbeWR2nq/LalFoJOTvX7zSOyZ68+1SDawz2A9RgugLkpa1TAdINEDJ0YlqJ
9qr5RJr05tPNnuDyJIeQWrReYBEUqasYefG3TEg3s73DIvvDMPfsWs6ablcKOjYV
FXMozxVUHX94/WToMjYzZ65bFuDQv5U7SzF2Pl9KGg2aRpHrudkI8luFPEg6yVCU
aHB8Jder83bp0UN1Ta+MPpVwiyq7JPlys4Bco2Bk7p2peR2hkjKIDQMtuOrKNPQB
Hn3pgyUu5HfBXRPd3xtIDvBx68G0ezc84MXJZPf+BBffIBI4HKK7bCMMc5NJv74/
+u5eiSumhlPibETKiYChjSvZxUc3EQHv5Q8qYquXu81mxRAuWTIQbD6zkYz8nZOc
0rD70Acm/y8wTPjdik4b2TnYw8i0WqY25u0zBwXzILGa8lR6SrWbB/l8g52ZnDWE
t4FbBBXkx8V2MaUh2/TM
=xUcY
-----END PGP SIGNATURE-----

--Apple-Mail=_D9B23743-1797-4D51-856D-5A96F7555BA3--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?349FCA2B-8346-4EC2-8459-B174FDC2CDB3>