Patch RFC: Promise SATA300 TX4 hardware bug workaround.
Arno J. Klaassen
arno at heho.snv.jussieu.fr
Fri Nov 2 15:18:42 PDT 2007
Alexander Sabourenkov <screwdriver at lxnt.info> writes:
> Arno J. Klaassen wrote:
> > definitely an improvement, but not sufficient (for my setup ) :
> >
> > amd64-releng_6 on an ASUS A8V UP (box ran rock-stable
> > for years i386-releng_5 with same hardware apart TX4 and
> > drives)
> >
> > from dmesg :
> >
>
> Setup is identical to mine, except for the drives.
> http://lxnt.info/tx4/freebsd/dmesg.text
>
> >
> > Improvement : I now can fsck /dev/concat/data without
> > ad6 being detached
>
> It was that bad? wow.
yop (often even beyond repair ... )
> > Persistent problem : when I rsync an nfs-mounted disk to /dev/concat/data,
> > I get after about some Gigs of data have been transfered :
> >
>
> That's strange. Are you sure cables, PSU and line power are ok?
> Back in October upgrading PSU halved the error count for me (under linux).
I could try, but don't believe in it : just three disks and an extra
controller iso the two disks it used to run with ...
> >
> > I will test again with "#define PDC_MAXLASTSGSIZE 32*4" (just to see
> > if that makes a difference)
> >
>
> Please do.
bon, it does : no more scaring messages about DMA SETFEATURES etc, though
it now ends in a panic ...
the end of my /var/log/messages (I turned on your printf as well ) :
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 2048 (limit 128)
Nov 2 22:59:11 charlotte last message repeated 15 times
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 4096 (limit 128)
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 2048 (limit 128)
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 2048 (limit 128)
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 4096 (limit 128)
Nov 2 22:59:11 charlotte last message repeated 11 times
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 2048 (limit 128)
Nov 2 22:59:11 charlotte kernel: splitting trailing PRD of 4096 (limit 128)
Nov 2 23:01:18 charlotte syslogd: kernel boot file is /boot/kernel/kernel
Nov 2 23:01:18 charlotte kernel: splitting trailing PRD of 4096 (limit 128)
Nov 2 23:01:18 charlotte last message repeated 17 times
Nov 2 23:01:18 charlotte kernel: Copyright (c) 1992-2007 The FreeBSD Project.
Nov 2 23:01:18 charlotte kernel: Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
And for the panic :
panic: ffs_clusteralloc: map mismatch
Uptime: 35m27s
Dumping 1023 MB (2 chunks)
chunk 0: 1MB (159 pages) ... ok
chunk 1: 1023MB (261808 pages) 1007 991 975 959 943 927 911 895 879 863 847 831 815 799 783 767 751 735 719 703 687 671 655 639 623 607 591 575 559 543 527 511 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15
#0 doadump () at pcpu.h:172
172 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) where
#0 doadump () at pcpu.h:172
#1 0x0000000000000004 in ?? ()
#2 0xffffffff8025e233 in boot (howto=260)
at /files/bsd/src6/sys/kern/kern_shutdown.c:409
#3 0xffffffff8025e836 in panic (fmt=0xffffff00305bebe0 "")
at /files/bsd/src6/sys/kern/kern_shutdown.c:565
#4 0xffffffff8037ab26 in ffs_clusteralloc (ip=0xffffff00241ae900, cg=9425,
bpref=0, len=5) at /files/bsd/src6/sys/ufs/ffs/ffs_alloc.c:1663
#5 0xffffffff803769a8 in ffs_hashalloc (ip=0xffffff00241ae900, cg=395,
pref=0, size=5, allocator=0xffffffff8037a650 <ffs_clusteralloc>)
at /files/bsd/src6/sys/ufs/ffs/ffs_alloc.c:1281
#6 0xffffffff8037841a in ffs_reallocblks (ap=0x0)
at /files/bsd/src6/sys/ufs/ffs/ffs_alloc.c:778
#7 0xffffffff8042496d in VOP_REALLOCBLKS_APV (vop=0x0, a=0x0)
at vnode_if.c:2056
#8 0xffffffff802bd70c in cluster_write (vp=0xffffff0015904ba0,
bp=0xffffffff9e74ea10, filesize=81920, seqcount=17) at vnode_if.h:1052
#9 0xffffffff8039662f in ffs_write (ap=0xffffffffad243a30)
at /files/bsd/src6/sys/ufs/ffs/ffs_vnops.c:763
#10 0xffffffff804251fb in VOP_WRITE_APV (vop=0xffffffff805ad880,
a=0xffffffffad243a30) at vnode_if.c:698
#11 0xffffffff802d9bca in vn_write (fp=0xffffff002e86da50,
uio=0xffffffffad243b50, active_cred=0x0, flags=0, td=0xffffff00305bebe0)
at vnode_if.h:372
#12 0xffffffff802894d7 in dofilewrite (td=0xffffff00305bebe0, fd=1,
fp=0xffffff002e86da50, auio=0xffffffffad243b50, offset=0, flags=0)
at file.h:253
#13 0xffffffff80289840 in kern_writev (td=0xffffff00305bebe0, fd=1,
auio=0xffffffffad243b50) at /files/bsd/src6/sys/kern/sys_generic.c:402
#14 0xffffffff80289938 in write (td=0x0, uap=0x0)
at /files/bsd/src6/sys/kern/sys_generic.c:326
#15 0xffffffff803e0b21 in syscall (frame=
{tf_rdi = 1, tf_rsi = 277012480, tf_rdx = 262144, tf_rcx = 262144, tf_r8 = 262144, tf_r9 = 3219503195, tf_rax = 4, tf_rbx = 277012480, tf_rbp = 32768, tf_r10 = 1669914800, tf_r11 = 2860306816, tf_r12 = 0, tf_r13 = 1, tf_r14 = 6326848, tf_r15 = 0, tf_trapno = 12, tf_addr = 277270528, tf_flags = 12, tf_err = 2, tf_rip = 34367373196, tf_cs = 43, tf_rflags = 518, tf_rsp = 140737488337304, tf_ss = 35}) at /files/bsd/src6/sys/amd64/amd64/trap.c:804
#16 0xffffffff803cae08 in Xfast_syscall ()
at /files/bsd/src6/sys/amd64/amd64/exception.S:270
#17 0x0000000800747f8c in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)
(I did a "newfs -m 5 /dev/concat/data" just before running this test)
Might be another bug just triggered by this Promise (sic) thing, or
just another bug "tout court" ...)
Anyway, I quit for today. More tommorrow.
Regards, Arno
--
Arno J. Klaassen
SCITO S.A.
8 rue des Haies
F-75020 Paris, France
http://scito.com
More information about the freebsd-hackers
mailing list