Any objections/comments on axing out old ATA stack?

Jeremy Chadwick jdc at koitsu.org
Wed Apr 3 23:38:17 UTC 2013


On Thu, Apr 04, 2013 at 12:15:32AM +0200, Matthias Andree wrote:
> I have just sent more information to the PR at
> http://www.freebsd.org/cgi/query-pr.cgi?pr=157397
> 
> The short summary (more info in the PR) is:
> 
> - limiting tags to 31 does not help
> 
> - disabling NCQ appears to help in initial testing, but warrants more
> testing
> 
> - error happens during WRITE_FPDMA_QUEUED,

This is an NCQ-based write LBA request.  There are many non-NCQ
equivalents of this, ATA-protocol-wise (too many to list here), but the
most likely non-NCQ ATA command you'd see is WRITE_DMA48.

> - File system in question is SU+J UFS2 mounted on /usr, and I can for
> instance "rm -rf /usr/obj" or just log into GNOME and try to open a
> gnome-terminal to trigger stalls;
> 
> - Linux uses 31 tags (for different reason) and has no drive quirks, but
> a controller quirk;
> 
> for Jeremy's topic #6, regarding the ATI/AMD SB7x0 that I am using, it
> might be worthwhile investigating the AHCI_HFLAG_IGN_SERR_INTERNAL flag
> - it gets set by Linux on the SB700 that my computer is using, see
> ahci_error_intr() in libahci.h - I am not going to interpret that for
> lack of expertise, but it does affect error handling and appears to
> ignore a certain condition.

Alexander could expand on this, but the name of the flag implies that
there are certain conditions where the SATA-level SERR condition gets
ignored ("IGN").

While skimming Linux libata code and commits in the past, the only
glaringly obvious bug/issue I see is with SB600/SB700 chipsets (the
hardware revision apparently matters) and port multiplier (PMP) support
and soft resets.

Are you using a port multiplier?  I doubt it, but I have to ask.

> Why only my Samsung HDD drive triggers this but not the WD drive, I do
> not know yet.

Please provide "gpart show -p ada1" output, both here and in the PR,
if you could.

I have a gut feeling I know what the issue is (and if it is what I think
it is, it's actually happening all the time, just that NCQ exacerbates
it given how command queueing works), but I won't know for sure until I
see the output.

Thanks.

-- 
| Jeremy Chadwick                                   jdc at koitsu.org |
| UNIX Systems Administrator                http://jdc.koitsu.org/ |
| Mountain View, CA, US                                            |
| Making life hard for others since 1977.             PGP 4BD6C0CB |


More information about the freebsd-stable mailing list