Re: TRIM/UNMAP/DISCARD via ATA Passthrough
From: Austin S. Hemmelgarn
Date: Fri Sep 16 2016 - 11:54:30 EST
On 2016-09-16 07:16, Hannes Reinecke wrote:
On 09/15/2016 10:52 PM, Jason A. Donenfeld wrote:
Hi Martin,
On Thu, Sep 15, 2016 at 6:07 PM, Martin K. Petersen
But how do they signal that ATA passthrough is possible? Is there an ATA
Information VPD page? Is REPORT SUPPORTED OPERATION CODES supported?
We need really solid discovery data before we can entertain enabling
something like this.
`sg_opcodes` said invalid request, so I think there isn't REPORT
SUPPORTED OPERATION CODES, and `sg_vpd -p ai` came up illegal too.
However, sg_sat_identify worked reliably, which means a solid way of
probing this would be to send IDENTIFY DEVICE ATA via SG_ATA_16 or
SG_ATA_12.
Let me know and I can give you access to the hardware if you're curious.
Sadly, that's not sufficient.
linux is not the only provider of an SATL (mpt3sas being the most
prominent other one).
And while they might support ATA_12/ATA_16, there is no indication that
you can pass DSM TRIM that way.
So it's better to not support it at all than to support it on hardware
we can reliably identify?
I get that having feature parity is a good thing, but the discussion
isn't about providing support for all SATL devices, it's specifically
about UAS connected SATL devices. Last I checked, mpt3sas doesn't do
anything with UAS, which means it's kind of irrelevant WRT supporting
this for UAS devices.
It's pretty easy to tell that something is a UAS device (the uas driver
wouldn't be bound to it otherwise), so if we check that and then check
whether or not IDENTIFY DEVICE ATA works when sent via SG_ATA_16 or
SG_ATA_12, it should be relatively safe (ignoring of course the fact
that there will inevitably be some brain-dead hardware that for some
obscure reason translates the command into something that will corrupt
data). I've got three USB 3.0 UAS SATA adapters (all ASMedia branded
chips) that behave pretty much identically to what Jason is describing,
so it appears that at least one brand behaves this way in a reliable and
reproducible manner.