ATA DMA problems with recent -current

Marco Trillo marcotrillo at gmail.com
Sun Oct 26 15:57:54 UTC 2008


Hi,

On Sun, Oct 26, 2008 at 4:30 PM, Nathan Whitehorn
<nwhitehorn at freebsd.org> wrote:
>> Hi all,
>>
>> I just updated my -current kernel to today sources -- the previous
>> kernel was from Oct 11. With the new kernel I'm getting ad0 ATA DMA
>> timeouts, which get worse when I stress the drive.
>>
>
> The only thing that changed since 11 Oct was that I redid the PCI handling
> by importing sparc64's architecture. This *should* have changed nothing,
> since I just reshuffled some code, but apparently it didn't. One of the few
> actual changes was that ata_kauai now attaches only to the first IRQ (39)
> instead of both OF IRQs (39 and 1). However, it never used the second one,
> so it should have changed nothing. Things to try:
>
> - Make ata_kauai add IRQ 1 to its resource list again, just like it
> hardcodes 39.
> - IRQ 1 is shared with the i2s controller. Try disabling it?
>
> I'm pretty confused about how it is that things have broken, though.

I removed the i2s driver, but got the same results.

However I think I have located the source of the problem.

I diffed the 'ident' output on both kernels and noticed something
which seemed related:

-     $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.157 2008/10/09 12:56:57 sos Exp $
+     $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.158 2008/10/21 18:51:55 jhb Exp $

Then I reverted ata-dma.c to revision 1.157. It works! I get no more
timeouts. Currently it's untarring the ports.tar.gz file quite
happily!

Thanks,
Marco


More information about the freebsd-ppc mailing list