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