Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Mar 2006 12:34:48 -0500
From:      "Rong-En Fan" <grafan@gmail.com>
To:        "Scott Long" <scottl@samsco.org>
Cc:        stable@freebsd.org
Subject:   Re: 6.1 ata panic if dma enabled
Message-ID:  <6eb82e0603160934p6f795c26sbdd63ffda9cfe889@mail.gmail.com>
In-Reply-To: <44198A7F.5030003@samsco.org>
References:  <6eb82e0603160732p4bb85504w7d3ef2baec8dd26f@mail.gmail.com> <44198A7F.5030003@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/16/06, Scott Long <scottl@samsco.org> wrote:
> Rong-En Fan wrote:
> > Hi,
> >
> > Recently, we upgrade a 4.11 box to 6.1-BETA2 by reinstall+newfs everyth=
ing.
> > After that,  we found that if hw.ata.ata_dma=3D1 at boot, then as soon =
as it
> > starts fsck -p, it panics. It happens only if ad0 is setted to UDMA66 o=
r above.
> > My current solution is set hw.ata.ata_dma=3D0 in loader.conf and manual=
ly
> > turn DMA on ad0 to UDMA33 and rest ad4~ad7 to UDMA100. In the days of
> > 4.x, there is something wrong with DMA on ad0, but it will fall back to
> > PIO4 automatically without problem. We have been tried to 1) change the
> > cable 2) change from primary ata controller to the second, 3) upgrade t=
o
> > RELENG_6 as of March 11, but all these are failed. There is no options =
in
> > bios to turn off DMA for the onboard ATA controller.
>
> Please review the release notes from the 6.1-BETA2 announcement.  Fixes
> went into 6.1 shortly after BETA2 was released, and are in BETA3 and BETA=
4.

Upgrade to today's RELENG_6, it is the same. I'm not quite if
this is hardware problem. But however, why can't ata fall back
to PIO4 is DMA write error, just like 4.x does?

ata0-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA100 cable=3D80 wire
ad0: setting PIO4 on 82C686B chip
ad0: setting UDMA100 on 82C686B chip
ad0: 38166MB <Seagate ST340016A 3.10> at ata0-master UDMA100
ad0: 78165360 sectors [19158C/16H/255S] 16 sectors/interrupt 1 depth queue

/dev/ad0s1d: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1d: clean, 624587 free (28411 frags, 74522 blocks, 1.9% fragmentat=
ion)
/dev/ad0s1e: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1e: clean, 826458 free (466 frags, 103249 blocks, 0.0% fragmentati=
on)
ad0: WARNING - WRITE_DMA UDMA ICRC error (retrying request) LBA=3D191
ad0: WARNING - WRITE_DMA UDMA ICRC error (retrying request) LBA=3D191
ad0: FAILURE - WRITE_DMA status=3D51<READY,DSC,ERROR>
error=3D84<ICRC,ABORTED> LBA=3D191
g_vfs_done():ad0s1a[WRITE(offset=3D65536, length=3D2048)]error =3D 5
mount: /dev/ad0s1a: Input/output error
Mounting root filesystem rw failed, startup aborted
Boot interrupted
Enter root password, or ^D to go multi-user

then I just continue..., finally it panics

kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
fault virtual address   =3D 0x24
fault code              =3D supervisor read, page not present
instruction pointer     =3D 0x20:0xc04eeee5
stack pointer           =3D 0x28:0xe4cfb4f0
frame pointer           =3D 0x28:0xe4cfb500
code segment            =3D base 0x0, limit 0xfffff, type 0x1b
                        =3D DPL 0, pres 1, def32 1, gran 1
processor eflags        =3D resume, IOPL =3D 0
current process         =3D 168 (cp)
[thread pid 168 tid 100044 ]
Stopped at      turnstile_broadcast+0x9:        movl    0x24(%eax),%eax
db> bt
Tracing pid 168 tid 100044 td 0xc48de180
turnstile_broadcast(0) at turnstile_broadcast+0x9
_mtx_unlock_sleep(c068aca0,0,0,0) at _mtx_unlock_sleep+0x6c
softdep_sync_metadata(c495d660) at softdep_sync_metadata+0x7d4
ffs_syncvnode(c495d660,1) at ffs_syncvnode+0x43d
ffs_truncate(c495d660,200,0,880,c4695d00,c48de180) at ffs_truncate+0x77e
ufs_direnter(c495d660,c49e1880,e4cfb92c,e4cfbbd0,0) at ufs_direnter+0x85d
ufs_makeinode(81a4,c495d660,e4cfbbbc,e4cfbbd0) at ufs_makeinode+0x30f
ufs_create(e4cfba84) at ufs_create+0x37
VOP_CREATE_APV(c0671100,e4cfba84) at VOP_CREATE_APV+0x3c
VOP_CREATE(c495d660,e4cfbbbc,e4cfbbd0,e4cfbae0) at VOP_CREATE+0x34
vn_open_cred(e4cfbba8,e4cfbcc4,1a4,c4695d00,4) at vn_open_cred+0x20c
vn_open(e4cfbba8,e4cfbcc4,1a4,4) at vn_open+0x29
kern_open(c48de180,804c1c8,0,602,21b6) at kern_open+0xd4
open(c48de180,e4cfbcf0) at open+0x22
syscall(3b,3b,3b,8060100,bfbfeec4) at syscall+0x337
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (5, FreeBSD ELF32, open), eip =3D 0x28137ccf, esp =3D
0xbfbfec7c, ebp =3D 0xbfbfecc8 ---

Regards,
Rong-En Fan



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