Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Apr 2013 16:38:15 -0700
From:      Jeremy Chadwick <jdc@koitsu.org>
To:        Matthias Andree <mandree@FreeBSD.org>
Cc:        Alexander Motin <mav@FreeBSD.org>, freebsd-current@freebsd.org, freebsd-stable@freebsd.org
Subject:   Re: Any objections/comments on axing out old ATA stack?
Message-ID:  <20130403233815.GA65719@icarus.home.lan>
In-Reply-To: <515CAA04.1050108@FreeBSD.org>
References:  <51536306.5030907@FreeBSD.org> <20130331130409.GO3178@equilibrium.bsdes.net> <C699FE76-B456-49C7-8D3A-DD54F98DAFC1@samsco.org> <515B25D8.7050902@FreeBSD.org> <515BF5AE.4050804@FreeBSD.org> <515CAA04.1050108@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@koitsu.org |
| UNIX Systems Administrator                http://jdc.koitsu.org/ |
| Mountain View, CA, US                                            |
| Making life hard for others since 1977.             PGP 4BD6C0CB |



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130403233815.GA65719>