Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Oct 2008 11:01:11 -0500
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        Marco Trillo <marcotrillo@gmail.com>
Cc:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: ATA DMA problems with recent -current
Message-ID:  <49049447.4070401@freebsd.org>
In-Reply-To: <b9c23c9f0810260857x5c3647e7v7963ca56539c3390@mail.gmail.com>
References:  <b9c23c9f0810260517j61587dc6gd91f35a49d4b9e38@mail.gmail.com> <49048D19.7070309@freebsd.org> <b9c23c9f0810260857x5c3647e7v7963ca56539c3390@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Marco Trillo wrote:
> Hi,
> 
> On Sun, Oct 26, 2008 at 4:30 PM, Nathan Whitehorn
> <nwhitehorn@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!

Intriguing... that change was a typo fix. I guess we have to limit the 
maximum ATA DMA size for our controllers. I'll look around and commit a 
real fix later today.
-Nathan



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