Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Oct 1997 12:39:48 -0800
From:      Bill Trost <trost@cloud.rain.com>
To:        stable@freebsd.org
Subject:   aic0 hanging on tape access
Message-ID:  <m0xQIRh-0002VsC@jli.com>

next in thread | raw e-mail | index | archive | help
I have been seeing a problem with tape hangs on certain tape operations.

To be specific:

1. OS was sup'ped to stable as of Oct 26 16:53 (from the timestamp on
.../etc/cvsup/src-sys/checkouts.cvs:RELENG_2_2).

2. The tape drive probes as "ARCHIVE Python XXXXX-XXX 4.AF" type 1 removable
SCSI 2.

3. The SCSI controller is an Adaptec 1515, which probes as aic0 at 0x340-0x35f
irq 11 on isa.

4. Most tape operations (e.g., dump, restore, tar) work without problems.
However the operation "dd bs=8k of=/dev/nrst0" with a single partial block of
ASCII text on its stdin sometimes(?) causes the system to hang (no keyboard
response, ctl-alt-F2 does nothing, I haven't tried ping).  This has happened on
a variety of different tapes, including a fresh-out-of-the-box one.

5. DDB (sorry, no GDB at the moment) usually says something like the following
when interrupted:

	[break handling]
	--- int, eip = 0xf01c8fe0, esp = 0xf01e5f20, ebp = oxf01e5f58 ---
	_aic_dataout (f0428000, f06b5200, f06af60, 0, 0) at _aic_dataout+0x4f
	_aicintr(6, 80000000, 10, 10, 0) at _aicintr+0x6de
	[...]

but sometimes it appears to be interrupted in the idle loop.  I assume that the
problem is actually somewhere else (how do I inspect the current interrupt mask
from within ddb?).

Any clues, suggestions as to where I should poke and prod, or kernel config
options to help localize the problem?  ("Buy a 2942", while it would fix my
problem, won't help the driver any   (-:  )

Oh, kernel config follows:

machine		"i386"
cpu		"I486_CPU"
cpu		"I586_CPU"
cpu		"I686_CPU"
ident		GREY
maxusers	8

options		KTRACE

options		INET
options		MROUTING		#multicast

options		FFS			#Berkeley Fast Filesystem
options		NFS		# maybe this will make amd work
options		LFS			#log-structured
options		MFS			#VM filesystem
options		"COMPAT_43"		#Compatible with BSD 4.3
options		"SCSI_DELAY=3"		#Be pessimistic about Joe SCSI device
options		BOUNCE_BUFFERS		#include support for DMA bounce buffers
options		"AUTO_EOI_1"	#Supposedly makes interrupts faster, but breaks suspend on some laptops.
options		UCONSOLE		#Allow users to grab the console

options	USERCONFIG
#options	FAILSAFE
options DDB
# options		DDB_UNATTENDED	# prevents ddb-on-panic

#options	__SGNXPRO__		# Sounds galaxy stuff -- why out?

options		SYSVSHM
options		SYSVSEM
options		SYSVMSG

# WINE support
options		USER_LDT		#allow user-level control of i386 ldt

config		kernel	root on wd0 
config		sdkernel	root on sd0

controller	pci0

controller	isa0
# floating point -- mandatory
device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr

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

# Works with Adaptec 1515!
controller      aic0    at isa? port 0x340 bio irq 11 vector aicintr

controller	scbus0

device		sd0
device		st0
device		cd0	#Only need one of these, the code dynamically grows

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa? port "IO_KBD" tty irq 1 vector pcrint
#options		"PCVT_FREEBSD=210"	# pcvt running on FreeBSD 2.1
#options		XSERVER			# include code for XFree86

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		joy0	at isa? port "IO_GAME"
device		lpt0	at isa? port? tty irq 7 vector lptintr

device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr

# Disable sb0 in case it is causing problems at irq 2.
#controller	snd0	# controls all sound devices
#device sb0      at isa? port 0x220 irq 2 drq 1 vector sbintr
# device sbxvi0   at isa? drq 5	# sb16
# device sbmidi0  at isa? port 0x330

pseudo-device	loop
pseudo-device	ether
pseudo-device	log
pseudo-device	ppp	1
pseudo-device	tun	2
pseudo-device	bpfilter	6	#Berkeley packet filter
pseudo-device	disc		# discard device
pseudo-device	pty	32
pseudo-device	gzip		# Exec gzipped a.out's
pseudo-device	ccd 2



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0xQIRh-0002VsC>