Date: Thu, 13 Sep 2001 18:28:02 -0700 (PDT) From: john_wilson100@excite.com To: Greg Lehey <grog@lemis.com> Cc: freebsd-hackers@freebsd.org, sos@freebsd.org Subject: Vinum Panic (was Re: HPT370 RAID or Vinum?) Message-ID: <20775668.1000430889008.JavaMail.imail@doby.excite.com>
next in thread | raw e-mail | index | archive | help
Well, I have to say that Vinum feels a lot faster than HPT RAID... I will
quantify this statement when someone tells me how to turn off ATA write
caching, because
sysctl -w hw.ata.wc=0
doesn't work, says "sysctl: oid 'hw.ata.wc' is read only"
Unfortunately, Vinum reproducibly panics my machine while doing "newfs -v
/dev/vinum/home", where /dev/vinum/home is a 70+ Gb striped volume:
# newfs -v /dev/vinum/home
...superblocks here...
154206240, 154271776, 154337312, 154402848, 154468384, 154533920,
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x1c
fault code = supervisor write, page not present
instruction pointer = 0x8:0xc2bb8571
stack pointer = 0x10:0xdb1e2d1c
frame pointer = 0x10:0xdb1e2d28
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 2195 (newfs)
interrupt mask = none
trap number = 12
panic: page fault
syncing disks... 1
done
Uptime: 1d0h23m8s
dumping to dev #ad/0x20021, offset 3145760
dump ata2: resetting devices .. done
511 510 509 ...
...
8 7 6 5 4 3 2 1 0
---
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:473
(kgdb) add-symbol-file /modules/vinum.ko 0xc2baebf0
(kgdb) where
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:473
#1 0xc013d1df in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:313
#2 0xc013d5ac in poweroff_wait (junk=0xc025898c, howto=-1071283025)
at /usr/src/sys/kern/kern_shutdown.c:581
#3 0xc0228e4e in trap_fatal (frame=0xdb1e2cdc, eva=28)
at /usr/src/sys/i386/i386/trap.c:956
#4 0xc0228b21 in trap_pfault (frame=0xdb1e2cdc, usermode=0, eva=28)
at /usr/src/sys/i386/i386/trap.c:849
#5 0xc022870b in trap (frame={tf_fs = 16, tf_es = -618790896,
tf_ds = -1027932144, tf_edi = 396, tf_esi = -1021550528,
tf_ebp = -618779352, tf_isp = -618779384, tf_ebx = 0, tf_edx = 6662,
tf_ecx = -1069469696, tf_eax = 0, tf_trapno = 12, tf_err = 2,
tf_eip = -1027897999, tf_cs = 8, tf_eflags = 66118, tf_esp = 1116,
tf_ss = -1026983728}) at /usr/src/sys/i386/i386/trap.c:448
#6 0xc2bb8571 in allocrqg (rq=0xc31c6040, elements=1)
at /usr/src/sys/modules/vinum/../../dev/vinum/vinumrequest.c:1054
#7 0xc2bb7b1e in bre (rq=0xc31c6040, plexno=1, diskaddr=0xdb1e2d90,
diskend=154600128)
at /usr/src/sys/modules/vinum/../../dev/vinum/vinumrequest.c:571
#8 0xc2bb7f1f in build_write_request (rq=0xc31c6040)
at /usr/src/sys/modules/vinum/../../dev/vinum/vinumrequest.c:774
#9 0xc2bb74fe in vinumstart (bp=0xcd1b3a0c, reviveok=0)
at /usr/src/sys/modules/vinum/../../dev/vinum/vinumrequest.c:272
#10 0xc2bb73d2 in vinumstrategy (bp=0xcd1b3a0c)
at /usr/src/sys/modules/vinum/../../dev/vinum/vinumrequest.c:164
#11 0xc0139bdf in physio (dev=0xc307ed00, uio=0xdb1e2ed8, ioflag=1048577)
at /usr/src/sys/kern/kern_physio.c:111
#12 0xc0175041 in spec_write (ap=0xdb1e2e68)
at /usr/src/sys/miscfs/specfs/spec_vnops.c:283
#13 0xc01e6f94 in ufsspec_write (ap=0xdb1e2e68)
at /usr/src/sys/ufs/ufs/ufs_vnops.c:1872
#14 0xc01e7551 in ufs_vnoperatespec (ap0xdb1e2e68)
at /usr/src/sys/ufs/ufs/ufs_vnops.c:2400
#15 0xc0171352 in vn_write (fp=0xc35bda00, uio=0xdb1e2ed8, cred=0xc307ee80,
flags=0, p=0xd6a508a0) at vnode_if.h:363
#16 0xc014baed in dofilewrite (p=0xd6a508a0, fp=0x0xc35bda00, fd=3,
buf=0x806c860, nbyte=131072, offset=-1, flags=0)
at /usr/src/sys/sys/file.h:162
#17 0xc014b9a6 in write (p=0xd6a508a0, uap=0xdb1e2f80)
at /usr/src/sys/kern/sys_generic.c:329
#18 0xc02290f9 in syscall2 (frame={tf_fs = 47, tf_es = 65583,
tf_ds = -1078001617, tf_edi = 8192, tf_esi = 122880,
tf_ebp = -1077940256, tf_isp = -618778668, tf_ebx = 18, tf_edx = 18,
tf_ecx = 0, tf_eax = 4, tf_trapno = 0, tf_err = 2, tf_eip = 134620572,
tf_cs = 31, tf_eflags = 663, tf_esp = -1077940284, tf_ss = 47})
at /usr/src/sys/i386/i386/trap.c:1155
#19 0xc021b1c5 in Xint0x80_syscall ()
#20 0x804c8ed in ?? ()
#21 0x804b785 in ?? ()
#22 0x804b1b5 in ?? ()
#23 0x80491ab in ?? ()
#24 0x8048135 in ?? ()
Here's my Vinum config:
$ more /root/vinum.conf
drive data1 device /dev/ad4s1g
drive data2 device /dev/ad6s1e
drive home1 device /dev/ad4s1h
drive home2 device /dev/ad6s1f
volume data
plex org striped 279k
sd length 0 drive data1
sd length 0 drive data2
volume home
plex org striped 279k
sd length 0 drive home1
sd length 0 drive home2
The disk labels:
disklabel ad4s1
# /dev/ad4s1c:
type: ESDI
disk: ad4s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 7475
sectors/unit: 120101877
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 524288 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 32*)
b: 4194304 524288 swap # (Cyl. 32*- 293*)
c: 120101877 0 unused 0 0 # (Cyl. 0 -
7475*)
e: 4194304 4718592 4.2BSD 1024 8192 16 # (Cyl. 293*- 554*)
f: 10485760 8912896 4.2BSD 1024 8192 16 # (Cyl. 554*-
1207*)
g: 20971520 19398656 vinum # (Cyl. 1207*-
2512*)
h: 79731701 40370176 vinum # (Cyl. 2512*-
7475*)
disklabel ad6s1
# /dev/ad6s1c:
type: ESDI
disk: ad6s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 7475
sectors/unit: 120101877
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
b: 4194304 0 swap # (Cyl. 0 - 261*)
c: 120101877 0 unused 0 0 # (Cyl. 0 -
7475*)
e: 20971520 4194304 vinum # (Cyl. 261*-
1566*)
f: 77278156 25165824 vinum # (Cyl. 1566*-
6376*)
g: 17657897 102443980 4.2BSD 1024 8192 16 # (Cyl. 6376*-
7475*)
BTW, this is on latest -stable (supped two days ago).
Let me know if you need more info.
John
On Tue, 11 Sep 2001 09:05:18 +1000, Greg Lehey wrote:
> On Monday, 10 September 2001 at 10:11:28 -0700, john_wilson100@excite.com
wrote:
> > Hi there,
> >
> > I am trying to install FreeBSD on a (pseudo-) hardware ATA RAID volume
which
> > consists of two striped ATA disks connected to a Highpoint HPT370
> > controller. "Pseudo-" because FreeBSD detects the individual disks
> > (ad4/ad6) as well as the striped volume (ar0).
> >
> > Besides the fact that ar0 isn't documented anywhere (except in
/dev/MAKEDEV)
> > and "man 4 ar" gives something completely irrelevant, which one is
better to
> > use:
> >
> > Highpoint built-in RAID (ar0), or ad4/ad6 striped with Vinum?
> >
> > I reckon if the RAID functions are implemented in HPT BIOS (in
software),
> > I'll be better off with Vinum.
>
> Ultimately, all RAID is software RAID. The issue is just how it's
> implemented.
>
> I'd guess that the HPT will give you far worse performance than Vinum,
> though I'd be very interested to see confirmation or denial of this
> guess. If you feel like benchmarking, contact me first.
>
> Greg
> --
> Finger grog@lemis.com for PGP public key
> See complete headers for address and phone numbers
_______________________________________________________
Send a cool gift with your E-Card
http://www.bluemountain.com/giftcenter/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20775668.1000430889008.JavaMail.imail>
