CAM Shingled Disk support patches available
Slawa Olhovchenkov
slw at zxy.spb.ru
Tue Jan 19 17:59:29 UTC 2016
On Tue, Jan 19, 2016 at 12:06:41PM -0500, Kenneth D. Merry wrote:
> On Tue, Jan 19, 2016 at 20:02:52 +0300, Slawa Olhovchenkov wrote:
> > On Tue, Jan 19, 2016 at 11:38:31AM -0500, Kenneth D. Merry wrote:
> >
> > > On Tue, Jan 19, 2016 at 14:45:23 +0300, Slawa Olhovchenkov wrote:
> > > > On Mon, Jan 18, 2016 at 05:37:04PM -0500, Kenneth D. Merry wrote:
> > > >
> > > > > I have a new set of SMR patches available. See below for the full
> > > > > explanation.
> > > > >
> > > > > 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.
> > > > >
> > > > > So, although the ideas are similar, the probe logic is separate.
> > > > >
> > > > > 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.
> > > > >
> > > > > 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).
> > > > >
> > > > > 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.)
> > > >
> > > > Please, check me: currenly SMR lack of support in SCSI devices? On
> > > > [hardvare] vendor level? Currenly only SATA controllers compatible
> > > > with SMR (on command level)? (I am don't talk about FreeBSD support,
> > > > question about common state).
> > >
> > > No, there are SAS/SCSI SMR drives in development, and there is the SCSI ZBC
> > > spec that defines the command set. I don't know whether any vendors are
> > > shipping SAS/SCSI SMR drives yet.
> > >
> > > You can use SATA drives (SMR or not) with either a SATA controller or a SAS
> > > controller. But the way you talk to a SATA drive through a SAS controller
> > > is with SCSI commands. There is a SCSI spec (SAT) that defines the mapping
> > > of SCSI commands to ATA commands. It has recently been updated to support
> > > mapping SMR commands from SCSI to ATA, but most (all?) SAS controllers
> > > have not caught up with the spec.
> > >
> > > So to use a SATA SMR drive with a SAS controller that doesn't know how to
> > > map SMR commands from SCSI to ATA, you have to send the ATA SMR commands
> > > through the SCSI ATA PASS-THROUGH command. That just bypasses the usual
> > > translations, and allows sending ATA commands in something like their
> > > native form.
> >
> > What in case of expanders an port replicatiors (SATA drives and HBA
> > SAS controllers, of course)? Need expander be compatible with SMR? Or
> > any expander with SATA support automaticly compatible?
>
> Expanders and port replicators shouldn't matter. The place where you need
> to know about SMR is the place where the native ATA or SCSI drive commands
> are generated. Expanders and port replicators typically just pass commands
> through.
Thanks for clarification!
More information about the freebsd-scsi
mailing list