Date: Sun, 9 Feb 1997 17:53:47 +0000 From: mark@linus.demon.co.uk (Mark Valentine) To: "Justin T. Gibbs" <gibbs@freefall.freebsd.org> Cc: current@freebsd.org Subject: Re: cvs commit: src/sys/dev/aic7xxx aic7xxx.seq aic7xxx_reg.h src/sys/i386/scsi aic7xxx.c src/sys/pci aic7870.c Message-ID: <199702091754.RAA00493@linus.demon.co.uk> In-Reply-To: "Justin T. Gibbs"'s message of Feb 8, 7:27pm
next in thread | raw e-mail | index | archive | help
> From: "Justin T. Gibbs" <gibbs@freefall.freebsd.org>
> Date: Sat 8 Feb, 1997
> Subject: cvs commit: src/sys/dev/aic7xxx aic7xxx.seq aic7xxx_reg.h src/sys/i386/scsi aic7xxx.c src/sys/pci aic7870.c
> gibbs 97/02/08 19:27:10
>
> Revision Changes Path
> 1.58 +30 -29 src/sys/dev/aic7xxx/aic7xxx.seq
> 1.23 +1 -1 src/sys/dev/aic7xxx/aic7xxx_reg.h
>
> Revision Changes Path
> 1.96 +36 -31 src/sys/i386/scsi/aic7xxx.c
>
> Revision Changes Path
> 1.49 +1 -1 src/sys/pci/aic7870.c
This changed the failure mode I've been experiencing over the last few days
trying to install a new Atlas II drive on a 2940UW.
I'm using a dump|restore pipe in single user mode to copy file systems
from sd0 (a narrow 4GB Hawk) to sd1 (wide 4.5GB Atlas II).
Previously, I would see a few of these:
sd1 at scbus 0 target 1 lun0: data overrun of 496 bytes detected. Forcing a retry.
These would follow in quick succession (anywhere from 1 to 6 instances),
accompanied by i/o errors and then:
mode=07, inum = 15708, fs = /mnt/var
panic: ffs_valloc: dup alloc
The mode and inum varied.
Stack trace:
_panic+0x51
_ffs_valloc+0x133
_ufs_mkdir+0x90
_mkdir+0x14d
...
Now, after the above commit, I saw no overruns or panic, but the disk
appears to stop responding completely at about the same point (perhaps a
little later). I've only tried this once with the new code.
I can still interrupt the dump, but breaking into DDB shows the system in
idle_loop(). The dump processes are in various wait states (I presume - they
are: wait, sbwait and pipedwt), and restore is marked "objtrm". A call to
panic fails to sync the disks.
By the way, I've been using the AHA2940UW with the Hawk since August, and
in the last few weeks (before adding the Atlas II drive), I started to see
occasional (and apparently harmless) overruns on sd0 during normal operation.
System details and disk labels follow. (Motherboard is ASUS P/I-P6NP5.)
$ dmesg
Copyright (c) 1992-1996 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
FreeBSD 3.0-CURRENT #13: Sun Feb 9 16:40:49 GMT 1997
mark@dejah-thoris:/usr/src/sys/compile/DEJAH
Calibrating clock(s) relative to mc146818A clock ... i586 clock: 199303002 Hz, i8254 clock: 1193146 Hz
CPU: Pentium Pro (199.31-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x617 Stepping=7
Features=0xf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,<b11>,MTRR,PGE,MCA,CMOV>
real memory = 67108864 (65536K bytes)
avail memory = 63471616 (61984K bytes)
Probing for devices on PCI bus 0:
chip0 <Intel 82440FX (Natoma) PCI and memory controller> rev 2 on pci0:0:0
chip1 <Intel 82371SB PCI-ISA bridge> rev 1 on pci0:1:0
chip2 <Intel 82371SB IDE interface> rev 0 on pci0:1:1
vga0 <VGA-compatible display device> rev 0 int a irq 15 on pci0:9:0
de0 <Digital 21140 Fast Ethernet> rev 18 int a irq 9 on pci0:10:0
de0: SMC 9332 21140 [10-100Mb/s] pass 1.2
de0: address 00:00:c0:f6:db:e3
de0: enabling 10baseT port
ahc0 <Adaptec 2940 Ultra SCSI host adapter> rev 0 int a irq 10 on pci0:11:0
ahc0: aic7880 Wide Channel, SCSI Id=7, 16/255 SCBs
ahc0: waiting for scsi devices to settle
scbus0 at ahc0 bus 0
ahc0: target 0 Tagged Queuing Device
sd0 at scbus0 target 0 lun 0
sd0: <SEAGATE ST15230N 0638> type 0 fixed SCSI 2
sd0: Direct-Access 4095MB (8386733 512 byte sectors)
sd0: 3992 cyls, 19 heads, and an average 110 sectors/track
ahc0: target 1 Tagged Queuing Device
sd1 at scbus0 target 1 lun 0
sd1: <QUANTUM XP34550W LXY1> type 0 fixed SCSI 2
sd1: Direct-Access 4341MB (8890760 512 byte sectors)
sd1: 5899 cyls, 10 heads, and an average 150 sectors/track
ncr0 <ncr 53c810a scsi> rev 18 int a irq 11 on pci0:12:0
ncr0: waiting for scsi devices to settle
scbus1 at ncr0 bus 0
sd2 at scbus1 target 3 lun 0
sd2: <iomega jaz 1GB H.72> type 0 removable SCSI 2
sd2: Direct-Access
sd2: 10.0 MB/s (100 ns, offset 8)
sd2: ILLEGAL REQUEST asc:24,0 Invalid field in CDB
sd2 could not mode sense (4). Using ficticious geometry
1021MB (2091050 512 byte sectors)
sd2: 1021 cyls, 64 heads, and an average 32 sectors/track
st0 at scbus1 target 4 lun 0
st0: <WANGTEK 5525ES SCSI M74H 11> type 1 removable SCSI 1
st0: Sequential-Access density code 0x0, drive empty
cd0 at scbus1 target 6 lun 0
cd0: <NEC CD-ROM DRIVE:502 2.0y> type 5 removable SCSI 2
cd0: CD-ROM
cd0: 8.0 MB/s (125 ns, offset 8)
cd0: cd present [313642 x 2048 byte records]
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
psm0 at 0x60-0x64 irq 12 on motherboard
psm0: device ID 0, 3 buttons
pca0 on motherboard
pca0: PC speaker audio driver
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 72065B
fd0: 1.44MB 3.5in
npx0 on motherboard
npx0: INT 16 interface
$ cat /sys/i386/conf/DEJAH
#
# DEJAH -- dejah-thoris
#
machine "i386"
cpu "I686_CPU"
ident DEJAH
maxusers 10
options CHILD_MAX=128
options INET #InterNETworking
options FFS #Berkeley Fast Filesystem
options NFS #Network Filesystem
options MFS #Memory File System
#options DEVFS #devices filesystem
options MSDOSFS #MSDOS Filesystem
options "CD9660" #ISO 9660 Filesystem
options PROCFS #Process filesystem
options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device
options SCSI_REPORT_GEOMETRY
options "AUTO_EOI_1"
#options "AUTO_EOI_2"
#options BOUNCE_BUFFERS #include support for DMA bounce buffers
options UCONSOLE #Allow users to grab the console
#options FAILSAFE #Be conservative
options USER_LDT #allow user-level control of i386 ldt
options SYSVSHM
options SYSVSEM
options SYSVMSG
options DDB
options KTRACE #kernel tracing
options PERFMON
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor
config kernel root on sd0
controller isa0
controller pci0
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk fd0 at fdc0 drive 0
#disk fd1 at fdc0 drive 1
#controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
#disk wd0 at wdc0 drive 0
#disk wd1 at wdc0 drive 1
#controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
#disk wd2 at wdc1 drive 0
#disk wd3 at wdc1 drive 1
controller ncr0
controller ahc0
#controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr
controller scbus0
options AHC_TAGENABLE
options AHC_SCBPAGING_ENABLE
options AHC_ALLOW_MEMIO
device sd0
device od0 #See LINT for possible `od' options.
device st0
device cd0 #Only need one of these, the code dynamically grows
#device worm0 at scbus? # SCSI worm
#device pt0 at scbus? # SCSI processor type
# syscons is the default console driver, resembling an SCO console
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
# Mandatory, don't remove
device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
device lpt0 at isa? port? tty irq 7 vector lptintr
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
#device joy0 at isa? port "IO_GAME"
device de0
#controller snd0
#device sb0 at isa? port 0x220 irq 5 conflicts drq 1 vector sbintr
#options SBC_IRQ=5
#options "JAZZ16"
#options "JAZZ_DMA16=3"
#device opl0 at isa? port 0x388
#device mpu0 at isa? port 0x330 irq 9
#device uart0 at isa? port 0x330 irq 9 vector "m6850intr"
# Not controlled by `snd'
device pca0 at isa? port IO_TIMER1 tty
pseudo-device loop
pseudo-device ether
pseudo-device log
pseudo-device sl 1
pseudo-device ppp 2
pseudo-device tun 1
pseudo-device bpfilter 4 #Berkeley packet filter
pseudo-device pty 32
pseudo-device gzip # Exec gzipped a.out's
pseudo-device vn #Vnode driver (turns a file into a device)
pseudo-device speaker #Play IBM BASIC-style noises out your speaker
$ fdisk sd0
******* Working on device /dev/rsd0 *******
parameters extracted from in-core disklabel are:
cylinders=8386733 heads=1 sectors/track=1 (1 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=8386733 heads=1 sectors/track=1 (1 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 0 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 0, size 8386733 (4095 Meg), flag 80
beg: cyl 0/ sector 1/ head 0;
end: cyl 1023/ sector 1/ head 0
The data for partition 1 is:
<UNUSED>
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
$ disklabel sd0
# /dev/rsd0c:
type: SCSI
disk: sd0s1
label:
flags:
bytes/sector: 512
sectors/track: 1
tracks/cylinder: 1
sectors/cylinder: 1
cylinders: 8386733
sectors/unit: 8386733
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: 65536 0 4.2BSD 0 0 0 # (Cyl. 0 - 65535)
b: 284864 65536 swap # (Cyl. 65536 - 350399)
c: 8386733 0 unused 0 0 # (Cyl. 0 - 8386732)
e: 409600 350400 4.2BSD 0 0 0 # (Cyl. 350400 - 759999)
f: 1536000 760000 4.2BSD 0 0 0 # (Cyl. 760000 - 2295999)
g: 5529600 2296000 4.2BSD 0 0 0 # (Cyl. 2296000 - 7825599)
h: 561133 7825600 4.2BSD 0 0 0 # (Cyl. 7825600 - 8386732)
$ dumpfs /dev/rsd0e | head -18
magic 11954 time Sun Feb 9 17:37:37 1997
cylgrp dynamic inodes 4.4BSD
nbfree 15009 ndir 2703 nifree 7789 nffree 989
ncg 7 ncyl 100 size 102400 blocks 100655
bsize 8192 shift 13 mask 0xffffe000
fsize 2048 shift 11 mask 0xfffff800
frag 4 shift 2 fsbtodb 2
cpg 16 bpg 4096 fpg 16384 ipg 3840
minfree 8% optim time maxcontig 7 maxbpg 2048
rotdelay 0ms headswitch 0us trackseek 0us rps 60
ntrak 1 nsect 4096 npsect 4096 spc 4096
symlinklen 60 trackskew 0 interleave 1 contigsumsize 7
nindir 2048 inopb 64 nspf 4
sblkno 8 cblkno 12 iblkno 16 dblkno 256
sbsize 2048 cgsize 4096 cgoffset 1024 cgmask 0xffffffff
csaddr 256 cssize 2048 shift 9 mask 0xfffffe00
cgrotor 3 fmod 0 ronly 0 clean 0
(no rotational position table)
$ fdisk sd1
******* Working on device /dev/rsd1 *******
parameters extracted from in-core disklabel are:
cylinders=4341 heads=64 sectors/track=32 (2048 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=4341 heads=64 sectors/track=32 (2048 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 0 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 0, size 8890368 (245 Meg), flag 80
beg: cyl 0/ sector 1/ head 0;
end: cyl 244/ sector 32/ head 63
The data for partition 1 is:
<UNUSED>
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
$ disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: sd1
label:
flags:
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 64
sectors/cylinder: 2048
cylinders: 4341
sectors/unit: 8890368
rpm: 7200
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: 65536 0 4.2BSD 0 0 0 # (Cyl. 0 - 31)
b: 286720 65536 swap # (Cyl. 32 - 171)
c: 8890368 0 unused 0 0 # (Cyl. 0 - 4340)
e: 450560 352256 4.2BSD 0 0 0 # (Cyl. 172 - 391)
f: 1699840 802816 4.2BSD 0 0 0 # (Cyl. 392 - 1221)
g: 5734400 2502656 4.2BSD 0 0 0 # (Cyl. 1222 - 4021)
h: 653312 8237056 4.2BSD 0 0 0 # (Cyl. 4022 - 4340)
$ dumpfs /dev/rsd1e | head -18
magic 11954 time Sun Feb 9 16:52:14 1997
cylgrp dynamic inodes 4.4BSD
nbfree 23829 ndir 2703 nifree 46689 nffree 39
ncg 7 ncyl 110 size 225280 blocks 218431
bsize 8192 shift 13 mask 0xffffe000
fsize 1024 shift 10 mask 0xfffffc00
frag 8 shift 3 fsbtodb 1
cpg 16 bpg 4096 fpg 32768 ipg 7680
minfree 8% optim time maxcontig 7 maxbpg 2048
rotdelay 0ms headswitch 0us trackseek 0us rps 120
ntrak 1 nsect 4096 npsect 4096 spc 4096
symlinklen 60 trackskew 0 interleave 1 contigsumsize 7
nindir 2048 inopb 64 nspf 2
sblkno 16 cblkno 24 iblkno 32 dblkno 992
sbsize 2048 cgsize 6144 cgoffset 2048 cgmask 0xffffffff
csaddr 992 cssize 1024 shift 9 mask 0xfffffe00
cgrotor 1 fmod 0 ronly 0 clean 0
(no rotational position table)
--
Mark Valentine at Home <mailto:mv@pobox.com> <http://www.pobox.com/~mv/>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702091754.RAA00493>
