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