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>
