Re: 2.6.32 seemed to have broken nVidia MCP7A sata controller

From: Robert Hancock
Date: Sun Dec 27 2009 - 16:52:54 EST


On Sat, Dec 19, 2009 at 4:37 PM, Mike Cui <cuicui@xxxxxxxxx> wrote:
> Thanks, changing that one line fixed it. I can try to find an intel
> motherboard sometime next week to see if it's the drive or the
> controller.

Hi Mike, did you ever get a chance to try this test?

>
> On Sat, Dec 19, 2009 at 10:35 AM, Robert Hancock <hancockrwd@xxxxxxxxx> wrote:
>> On 12/19/2009 01:29 AM, Jeff Garzik wrote:
>>>
>>> On 12/19/2009 01:13 AM, Mike Cui wrote:
>>>>
>>>> I have an nVidia MCP7A AHCI controller. I upgraded to 2.6.32.2 and my
>>>> system deterministically freezes trying to mount file systems. Once in
>>>> a while it will come back and finish booting after freezing for 1
>>>> minute or 2. dmesg indicates that there were NCQ errors, but 2.6.31
>>>> anb before has always worked flawlessly for me. What changed in
>>>> 2.6.32? I will be more than happy to help track down this issue.
>>>
>>>> ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
>>>> ata1.00: cmd 61/08:00:4f:ad:03/00:00:00:00:00/40 tag 0 ncq 4096 out
>>>> res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
>>>> ata1: hard resetting link
>>>> ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
>>>> ata1.00: configured for UDMA/133
>>>> ata1.00: device reported invalid CHS sector 0
>>>
>>> Looks like things are timing out, and then go downhill from there. This
>>> explanation of timeout gives some hints on possible causes:
>>> http://ata.wiki.kernel.org/index.php/Libata_error_messages#Error_classes
>>>
>>> The ideal would be if you could bisect between 2.6.31 and 2.6.32, to see
>>> if it's a software change that is the cause.
>>>
>>> Looking at drivers/ata/ahci.c history, the only thing that -might- cause
>>> problems is 388539f3ff0cf1de926b03f94e1eec112358f74d ('git show $commit'
>>> for full commit info and diff).
>>
>> I suspect that as well (it's the commit that adds FPDMA auto-activate on DMA
>> setup FIS support). Your drive indicates it's supported but it's possible
>> it's broken on that drive or the controller. If the drive doesn't set the
>> activate bit in the DMA setup FIS properly or the controller doesn't respect
>> it, then FPDMA requests will stall.
>>
>> Mike, can you try and revert that patch, or else just change this line in
>> drivers/ata/ahci.c:
>>
>>                pi.flags |= ATA_FLAG_NCQ | ATA_FLAG_FPDMA_AA;
>>
>> to
>>
>>                pi.flags |= ATA_FLAG_NCQ;
>>
>> and rebuild and see if it works better?
>>
>> I tend to suspect the controller is the problem (I've got WD drives that
>> work fine with AA on Intel AHCI, though it could be model-specific). I guess
>> the only way to verify for sure which one it is would be if someone else had
>> that particular drive model on a different AHCI controller and could verify
>> if it worked with 2.6.32+ or not.
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/