On 07.06.2019 19:58, Martin K. Petersen wrote:
Konstantin,
+ÂÂÂÂÂÂÂÂÂÂÂ if (dev->horkage & ATA_HORKAGE_NOTRIM)
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_status = "backlisted";
blacklisted
Oops. My bad.
+ÂÂÂÂÂÂÂÂÂÂÂ else
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_status = "supported";
+
+ÂÂÂÂÂÂÂÂÂÂÂ if (!ata_fpdma_dsm_supported(dev))
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_queued = "no";
+ÂÂÂÂÂÂÂÂÂÂÂ else if (dev->horkage & ATA_HORKAGE_NO_NCQ_TRIM)
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_queued = "backlisted";
ditto
+ÂÂÂÂÂÂÂÂÂÂÂ else
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_queued = "yes";
Why is trim_status "supported" and trim_queued/trim_zero "yes"?
Hmm. This seems properties of trim, not independent features.
+
+ÂÂÂÂÂÂÂÂÂÂÂ if (!ata_id_has_zero_after_trim(id))
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_zero = "no";
+ÂÂÂÂÂÂÂÂÂÂÂ else if (dev->horkage & ATA_HORKAGE_ZERO_AFTER_TRIM)
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_zero = "yes";
+ÂÂÂÂÂÂÂÂÂÂÂ else
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_zero = "maybe";
+
+ÂÂÂÂÂÂÂÂÂÂÂ ata_dev_info(dev, "trim: %s, queued: %s, zero_after_trim: %s\n",
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ trim_status, trim_queued, trim_zero);
+ÂÂÂÂÂÂÂ }
+
Otherwise no particular objections. We were trying to limit noise during
boot which is why this information originally went to sysfs instead of
being printed during probe.
On 08.06.2019 11:25, Christoph Hellwig wrote:> On Fri, Jun 07, 2019 at 10:34:39AM +0300, Konstantin Khlebnikov wrote:
>
> Do we really need to spam dmesg with even more ATA crap? What about
> a sysfs file that can be read on demand instead?
>
Makes sense.
Trim state is exposed for ata_device: /sys/class/ata_device/devX.Y/trim
but there is no link from scsi device to ata device so they hard to match.
I'll think about it.