Date: Thu, 3 Apr 1997 19:06:33 +0200 From: peppe@unipg.it (Giuseppe Vitillaro) To: hardware@freebsd.org Subject: FreeBSD 2.2.1 and 2940 hangs Message-ID: <9704031706.AA29921@egeo.unipg.it>
next in thread | raw e-mail | index | archive | help
I'm experiencing problems with this configuration: MotherBoard: Intel TUCSON TC430HX - Intel Pentium 133Mhz SCSI Adpter: Adaptec 2940 (Bios Level 1.23) HD target 0: HP C3725S 5249 (Internal) HD target 1: IBM DORS-32160 WA6A (Internal) CD target 4: PIONEER CD-ROM DR-124X 1.04 (External) Memory : 16Mx4 EDO 60ns I just finished to install FreeBSD 2.2.1-RELEASE and I did some trial on my configuration (for other reasons: I wanted to test my new mother board). If I exercise my hard disks and my cdrom at the same time after a (short: 5 minutes) while the system hangs. Sometime the kernel panic with some obscure (for me) message about SCSI timeouts other times it just sit without a message (but it answer to a ping from another machine). The same "exercise" on the disks alone do not produce the problem. I already tried to change all the SCSI cables (internal and external), terminators, the controller (a 2940U bios 1.21) and even the CD (switching to an HP CD-R 4020i). I always get the same problem. My exercise consist in this commands: dd if=/dev/rcd0a of=/dev/null bs=2k dd if=/dev/rsd0 of=/dev/null bs=64K dd if=/dev/rsd1 of=/dev/null bs=128K and keeping running a little C program I wrote by myself that seek randomly on a big file (about 32Mb) (command line "stdisk filename", the "filename" should already exists and in my case is on a filesystem of the disk /dev/sd1). After 5/10 minutes of this run the system hangs, often without any message. The machine itsel is alive: it answers to a ping and the keybord numlock turn on and off. If I do the same exercise without the CD dd the machine is alive after half an hour. The 2940 is configured rather near the Adaptec defaults (beside for > 1Gb disk support and CD boot). I'll append (sorry for the long mail) the dmesg out of my machine and the source of the "stdisk" exercise program. The question is: what may be the origin of this hang? Thank in advance, Peppe. ===== dmesg output Thank in advance, Peppe. Copyright (c) 1992-1996 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 2.2.1-RELEASE #0: Thu Apr 3 16:48:21 CEST 1997 root@phoenix:/usr/src/sys/compile/PHOENIX CPU: Pentium (132.96-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x52c Stepping=12 Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8> real memory = 67108864 (65536K bytes) avail memory = 62676992 (61208K bytes) Probing for devices on PCI bus 0: chip0 <Intel 82439> rev 3 on pci0:0 chip1 <Intel 82371SB PCI-ISA bridge> rev 1 on pci0:7:0 chip2 <Intel 82371SB IDE interface> rev 0 on pci0:7:1 ahc0 <Adaptec 2940 SCSI host adapter> rev 0 int a irq 11 on pci0:13 ahc0: aic7870 Single Channel, SCSI Id=7, 16 SCBs ahc0 waiting for scsi devices to settle (ahc0:0:0): "HP C3725S 5249" type 0 fixed SCSI 2 sd0(ahc0:0:0): Direct-Access 2047MB (4194058 512 byte sectors) (ahc0:1:0): "IBM DORS-32160 WA6A" type 0 fixed SCSI 2 sd1(ahc0:1:0): Direct-Access 2063MB (4226725 512 byte sectors) (ahc0:4:0): "PIONEER CD-ROM DR-124X 1.04" type 5 removable SCSI 2 cd0(ahc0:4:0): CD-ROM cd present [301866 x 2048 byte records] vga0 <VGA-compatible display device> rev 0 on pci0:14 Probing for devices on the ISA bus: sc0 at 0x60-0x6f irq 1 on motherboard sc0: VGA color <16 virtual consoles, flags=0x0> ed0 at 0x280-0x29f irq 15 on isa ed0: address 00:40:95:81:2b:79, type NE2000 (16 bit) sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface 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 ================= stdisk.c #include <stdlib.h> #include <stdio.h> #include <string.h> #include <fcntl.h> #include <time.h> #include <errno.h> #include <unistd.h> #define BUFSIZE (4*1024) #define MAX ((32*1024*1024)/BUFSIZE) #define MAXR 2147483647 char buf[BUFSIZE]; char cbuf[BUFSIZE]; int main ( int argc, char **argv ) { int r, rc; double dr; time_t seed; int f; memset ( buf, 0x1A, BUFSIZE ); memset ( cbuf, 0x1A, BUFSIZE ); f = open ( argv[1], O_RDWR ); if ( f == -1 ) { perror ( "open" ); exit ( 1 ); } seed = time ( NULL ); while ( 1 ) { r = random ( ); dr = (double)r/(double)MAXR; r = (int)( (double)dr * (double)MAX); #ifdef DEBUG printf ( "block %d\n", r ); #endif rc = lseek ( f, r * BUFSIZE, SEEK_SET ); if ( rc == -1 ) { perror ( "write lseek" ); exit ( 2 ); } rc = write ( f, buf, BUFSIZE ); if ( rc != BUFSIZE ) { perror ( "write" ); exit ( 3 ); } rc = lseek ( f, r * BUFSIZE, SEEK_SET ); if ( rc == -1 ) { perror ( "read lseek" ); exit ( 4 ); } rc = read ( f, cbuf, BUFSIZE ); if ( rc != BUFSIZE ) { perror ( "read" ); exit ( 5 ); } if ( memcmp ( buf, cbuf, BUFSIZE ) ) { fprintf ( stderr, "memcmp\n" ); exit ( 6 ); } } close ( f ); return ( 0 ); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9704031706.AA29921>