Skip site navigation (1)Skip section navigation (2)
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>