Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jan 1996 21:57:00 +0100 (GMT-1:00)
From:      Jose Federero Martinez <federero@obelix.cica.es>
To:        bugs@freebsd.org
Message-ID:  <199601152057.VAA18775@obelix.cica.es>

next in thread | raw e-mail | index | archive | help

        Submitted by:
                Jesus A. Mora Marin
                c/ Herreria, 64
                41230-Castilblanco A. (Spain)

        e-mail: federero@obelix.cica.es
        --------------------------------------------------------------------

        This is to report a bug or something alike in FreeBSD 2.1. I don't
        know if this is the right place to put it in, but please be patient
        with me: I am not used to all this subject of Internet.

        I bought and got my copy of FreeBSD from Walnut Creek only some days
        ago. I wished to try it as an alternative to commercial systems
        -I have been dealing with SCO Unix at home, and with Unix SysVR3 and
        SysVR4 at work for years, and now I thought it was time to switch
        to something new. Some weeks ago, I got a new 1GB hard disk and
        installed Slackware Linux (kernel ver. 1.2.8) on it. It has been
        working fine all the time, with no complain at all. But I reserved
        a place to FreeBSD, because I was curious about the other major
        family of Unix systems -you know, AT&T Unix is getting larger and
        less inventive all the time-.

        Well, I installed my new FreeBSD system. Fine. Then, made a customized
        kernel. Excellent. But the day after I run into trouble... Got a
        panic!

        But please let me describe first the framework, and then the nasty
        crash.


   1) HARDWARE.
      ========

   * SYSTEM MOTHERBOARD:
     ------------------
     No-brand: J-403TG GREEN VLB, v2.1
     486SX/486DX, ISA, with three slots for VLB controllers.
        VLB jumpered at 0 Wait States.
     CPU installed: Intel 80486DX2-S, at 66 MHz, fan-cooled.
     External cache: 256 KB, 20 ns
     DRAM installed: 12 MB, 70 ns (3x4MB 72-pin SIMM)
     ROMBIOS: Award Modular BIOS v4.50G. (details later)
     Chipset

   * ROM BIOS DETAILS:
     ----------------
     Award Modular BIOS v4.50G. Signature: 01/12/95-OPTI-802G-2C4UKJ11-00

     -STANDARD CMOS SETUP:
        Hard Disks:                        Write  Land
        --------------- Type  Cyl  Heads  Precom. Zone  Sectors  Mode
        Primary Master  User  525    64      0    2099    63     LBA
                Slave   User  1024   16    65535  1024    63     NORMAL
        Secondary Master & Slave not defined.

        Floppy disks drives:    A: 1.2MB,  5.25 in.
                                B: 1.44MB, 3.5  in.

     -BIOS FEATURES:    (ENA=Enabled, DIS=Disabled)
        Virus warning       DIS       Boot up Numlock status OFF
        CPU internal cache  ENA       Boot up System speed   HIGH
        External cache      ENA       IDE HDD Block Mode     ENA
        Quick POST          DIS       Gate A20 option        FAST
        Boot Sequence       A,C       Memory parity check    DIS
        Swap floppy drive   DIS       Typematic Rate setting DIS
        Boot up floppy seed DIS       All shadowing options  DIS

     -CHIPSET FEATURES
        Autoconfig            DIS          Single ALE enable      DIS
        AT Clock option       SYNC         Extra AT Cycle WS      DIS
        Synchronous AT clock  CLK/4        Fast AT Cycle          DIS
        DRAM Read Wait States 3-2-2-2      Back to back I/O delay DIS
        DRAM Write WS         1 WS         Master mode byte swap  DIS
        Cache Read Burst      2-1-1-1      DMA clock              SCLK/2
        Cache Write WS        0 WS         System BIOS cacheable  DIS
        Hidden refresh option DIS          Video BIOS cacheable   DIS
        Slow Refresh enable   DIS

     -POWER MANAGEMENT STUFF: Fully disabled.


   * VIDEO CARD:
     ----------
        No-brand SuperVGA Accelerator Card: VL-41
        Video BIOS signature: Quatdel S3 86C801/805 Enhanced VGA BIOS.
                Version 2.13.065. Phoenix Technologies Ltd.
        Bus type: 32-bit VL-Bus
        Graphics Accelerator: S3 805
        Video Memory: 1024 KB
        Installed on VLB slot.


   *ENHANCED IDE I/O CARD:
    ---------------------
        Brand: ? FSIOL-UC2.1C, Version 2.0
        Installed on VLB slot. Jumpered for 25/33 MHz CPU clock.
        Devices supported:
                -IDE channels: 2 (secondary channel disabled by hardware)
                -Floppy disk controller.
                -Serial ports: 2 (Microsoft Home Serial Mouse attached at COM1)
                        I/O port address and IRQ at default settings.
                -Game port, enabled
                -Parallel port, enabled (no printer attached)

   *HARD DISK DRIVES:
    ----------------
    1) Western Digital, Caviar WDC AC21000-00H.
        Geometry: 2100 cylinders, 16 heads, 63 sectors/track, 512 bytes/sector.
        Please note: Logic block addressing enabled in BIOS setup.
        Jumpered as Master drive in dual drive configuration.
        Attached at Primary IDE channel.

    2) Quantum Maverick 540A
        Geometry: 1048 cylinders, 16 heads, 63 sectors/track, 512 bytes/sector.
        Note: only 1024 cyl declared in BIOS, no translation (THANKS IBM!)
        Jumpered as Slave drive in dual drive configuration.
        Attached at Primary IDE channel.

   *SOUND CARD:
    ----------
    Creative Labs Soundblaster AWE 32.
    Settings: I/O ports 0x220
              IRQ: 7 (not default!)
              DMA channel: 1, high 6
              MIDI I/O address: 0x330
              Game port disabled.

   *CD-ROM DRIVE:
    ------------
    Creative Lab, Matsushita/Panasonic CR-563-x 0.81.
    Attached at sound card.
    I/O ports: 0x230 -although the sound card likes more to say is 0x220-.


   2) FreeBSD LOCAL SETTINGS.
      ======================
        The FreeBSD 2.1 is installed on hard disk wd0. The installation was
        made by booting directly from CD-ROM (install.bat).

        This is the partition scheme of wd0, as seen by fdisk:

        Disk name: wd0
        Disk Geometry: 525 cyls/64 heads/63 sectors.

        Offset   Size     End    Name   Ptype  Desc     Subtype
             0      63       62    -      6    unused       0
            63  520065   520127  wd0s1    2    fat          6
        520128  512064  1032191  wd0s2    4    extended     5
       1032192  528192  1560383  wd0s3    1    unknown    131    Active (*1)
       1560386  556416  2116799  wd0s4    3    freebsd    165

       (*1): This is a Linux native primary partition. Note that, since I am
       new to FreeBSD, I have left the Linux partition as the active one, and
       boot with the Linux loader either MS-DOS, FreeBSD or Linux itself.

        The disk wd1 is used just for two MS-DOS partitions -a primary one and
        another extended- and has nothing to do with all this case.


        Now, the layout of wd0s4 (FreeBSD slice), as seen by the Disklabel,
        editor is as follows:

        Disk: wd0       Partition name: wd0s4

        Part    Mount   Size    Newfs
        wd0s1   <none>  253MB   DOS
        wd0s4a  /        30MB   *
        wd0s4e  /var     10MB   *
        wd0s4b  <none>   24MB   SWAP
        wd0s4f  /usr    207MB   *

        After the partitioning, I have installed a distribution including
        these packages: bin, compat20, dict, info, manpages, proflibs and
        kernel sources.

        This is the current config file of my FreeBSD 2.1 system, customized
        to support most of the devices installed -comments in Spanish trans-
        lated :-)

# ------------- /usr/src/sys/i386/conf/JAMMBSD begins here ------------
#
# JAMMBSD -- Customized Kernel Configuration for JAMM's blazing machine
#
# Mods:
#       01/12/96: Options added:
#                       XSERVER -- Support for X Windows
#       01/13/96: Since they seem not to alter the behaviour, I set the
#               DDB and KTRACE options again.
#                 NFS support commented out - no need, smaller kernel
#

machine         "i386"
cpu             "I486_CPU"

ident           JAMMBSD

maxusers        10
options         "CHILD_MAX=128"
options         "OPEN_MAX=128"

config          kernel  root on wd0

options         "COMPAT_43"             #Compatible with BSD 4.3

# Try this later, when troubles get fixed. Very interesting for me...
# Have some stuff from old SCO Unix
# options               "COMPAT_IBCS2"  

options         SYSVSHM
options         SYSVSEM
options         SYSVMSG

options         DDB
options         KTRACE

options         UCONSOLE                #Allow users to grab the console

options         INET                    #InterNETworking
options         FFS                     #Berkeley Fast Filesystem
# options               NFS                     #Network Filesystem
options         MSDOSFS                 #MSDOS Filesystem
options         "CD9660"                #ISO 9660 Filesystem
options         PROCFS                  #Process filesystem
options         "SCSI_DELAY=15"         #Be pessimistic about Joe SCSI device
# Next one needed at all???
options         BOUNCE_BUFFERS          #include support for DMA bounce buffers

controller      isa0

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
tape            ft0     at fdc0 drive 2

controller      wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr
disk            wd0     at wdc0 drive 0
disk            wd1     at wdc0 drive 1
# Please do not probe wdc1 --- it takes a long time before giving up

controller      matcd0  at isa? port 0x230 bio

# 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          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

# May conflict with Soundblaster at irq 7???
device          lpt0    at isa? port? tty irq 7 vector lptintr

pseudo-device   loop
pseudo-device   ether
pseudo-device   log
pseudo-device   sl      1
# ijppp uses tun instead of ppp device
#pseudo-device  ppp     1
pseudo-device   tun     1
pseudo-device   pty     16
pseudo-device   gzip            # Exec gzipped a.out's

# ------------- /usr/src/sys/i386/conf/JAMMBSD ends here --------------

        It compiles fine, with no warning at all.


        And this is the log of a typical booting, as produced by dmesg:

# -------------- bootlog begins here -------------------------------
FreeBSD 2.1.0-RELEASE #0: Sat Jan 13 19:15:55  1996
    root@myname.my.domain:/usr/src/sys/compile/JAMMBSD
CPU: i486 DX2 (486-class CPU)
  Origin = "GenuineIntel"  Id = 0x435  Stepping=5
  Features=0x3<FPU,VME>
real memory  = 12582912 (12288K bytes)
avail memory = 10928128 (10672K bytes)
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 16450
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16450
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 765
fd0: 1.2MB 5.25in
fd1: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wdc0: unit 0 (wd0): <WDC AC21000H>
wd0: 1033MB (2116800 sectors), 2100 cyls, 16 heads, 63 S/T, 512 B/S
wdc0: unit 1 (wd1): <QUANTUM MAVERICK 540A>
wd1: 516MB (1057392 sectors), 1049 cyls, 16 heads, 63 S/T, 512 B/S
matcd - Matsushita (Panasonic) CD-ROM Driver by FDIV, Version  1(26) 18-Oct-95
matcdc0 at 0x230-0x233 on isa
matcdc0 Host interface type 0
matcd0: [CR-5630.81]  
npx0 on motherboard
npx0: INT 16 interface

# -------------- bootlog ends here -------------------------------

        After those funny messages, follow some more of them, generated by
        /etc/rc*. They are not impressive: swap device is added, and a lot of
        daemons starting, but no errors, except some complain from
        a networking-related gronkulator. Nothing to be concerned with.

        /etc/sysconfig is modified this way:
                keymap=spanish.iso
                cursor=blink

        Also /etc/rc is modified to comment out the line that starts the
        syslogd daemon -got fed up with those nasty messages when logged in
        other virtual console, must modify syslog.conf-.

        And this is my /etc/fstab:
/dev/wd0s4b                     none            swap    sw 0 0
/dev/wd0a			/		ufs	rw 1 1
/dev/wd0s4f			/usr		ufs	rw 1 1
/dev/wd0s4e			/var		ufs	rw 1 1
proc				/proc		procfs	rw 0 0
/dev/matcd0a			/cdrom		cd9660	ro,noauto 0 0

        Well, other packages installed -all from FreeBSD 2.1 Installation
        CD-ROM- include:
                mc-3.0.tgz
                bash-1.14.5.tgz
                less-290.tgz            Used as man-pager
                lynx-2.4.2.tgz          For reading html docs
                pdksh-5.2.3.tgz         Not tried yet
                zsh-2.6b10.tgz          zsh moved to /bin/zsh and used
                                        as default shell

        No time to try other packages.

        This is a pseudo-log in a fresh/typical system at home:

--------------- session pseudolog starts here -------------------------------
v0<~># ps -ax
  PID  TT  STAT      TIME COMMAND
    0  ??  DLs    0:00.00  (swapper)
    1  ??  Is     0:00.06 /sbin/init --
    2  ??  DL     0:00.00  (pagedaemon)
    3  ??  DL     0:00.00  (vmdaemon)
    4  ??  DL     0:00.12  (update)
   42  ??  Is     0:00.02 routed -q
   63  ??  Is     0:00.01 portmap
   74  ??  Is     0:00.46 inetd
   81  ??  Is     0:00.05 cron
   83  ??  Is     0:00.06 lpd
  126  v0  Ss     0:01.18 -zsh (zsh)
  157  v0  R+     0:00.01 ps -ax
  127  v1  Is+    0:00.04 /usr/libexec/getty Pc ttyv1
  128  v2  Is+    0:00.04 /usr/libexec/getty Pc ttyv2
  129  v3  Is+    0:00.04 /usr/libexec/getty Pc ttyv3
  130  v4  Is+    0:00.04 /usr/libexec/getty Pc ttyv4
  131  v5  Is+    0:00.05 /usr/libexec/getty Pc ttyv5

v0<~># mount
/dev/wd0a on / (local)
/dev/wd0s4f on /usr (local)
/dev/wd0s4e on /var (local)
procfs on /proc (local)

v0<~># df -k
Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/wd0a       30206    13588    14200    49%    /
/dev/wd0s4f    208686    63100   128890    33%    /usr
/dev/wd0s4e      9726      374     8572     4%    /var
procfs              4        4        0   100%    /proc

v0<~># vmstat
 procs   memory     page                    disks         faults      cpu
 r b w   avm   fre  flt  re  pi  po  fr  sr f0 f1 w0 w1   in   sy  cs us sy id
 0 0 0 17896  3216   48   0   1   0  36   0  0  0  2  0  278   46   6  1  3 96
        
v0<~># swapinfo
Device      512-blocks     Used    Avail Capacity  Type
/dev/wd0s4b      49152        0    49024     0%    Interleaved

v0<~>#
--------------- session pseudolog ends here -------------------------------


    3) AND NOW, LET ME INTRODUCE TO YOU... THE PANIC!
       ==============================================
       At last, I will tell you a fully reliable way to reproduce the panic.
       Supose you have a fresh system configured the way described before.
       I can get the panic simply doing so:

        1) Mount the FreeBSD 2.1 Installation CD-ROM:

                mount -t cd9660 /dev/matcd0a /cdrom

        2) Run the Midnight Commander:

                mc

        3) Inside Midnight Commander, change directory -of course using the
           the arrows and PgUp/PgDn keys of the panel- to /cdrom/ports.

        4) Now, highlight the file /cdrom/ports/README, and, in order to
           see inside it, please press the F3 key, and...

        Gotcha! You get a pretty PANIC message at your console. It says:

         Fatal trap 12: page fault while in kernel mode
         fault virtual address = 0xf1e17000
         fault code            = supervisor write, page not present
         instruction pointer   = 0x8:0xf01839de
         code segment          = base 0x0, limit 0xfffff, type 0x1b
                               = DPL 0, pres 1, def32 1, gran 1
         processor eflags      = interrupt enabled, resume, IOPL=0
         current process       = Idle
         interrupt mask        =
         kernel: type 12 trap, code=0
         stopped at _matcd_blockread+0x1fe      movb    %bl,0(%eax)


        Now, having the DDB kernel online debugger enabled, got this data:

        db> trace
  _matcd_blockread(90) at _matcd_blockread+0x1fe
  _softclock(80000000, 10, 10, 0, f0651200) at _softclock+0x64
  doreti_swi(0, f01722cc, 11111111, 22222222, 33333333) at doreti_swi+0xf
  _cpu_switch(11111111, 22222222, 33333333, 44444444, 55555555) at _cpu_switch

        db> show reg
        cs      0xf0120008              _ptsread+0x4
        ds      0x10
        es      0x10
        ss      0x10
        eax     0xf1e17000
        ecx     0x231
        edx     0x230
        ebx     0x55
        esp     0xf0190f54              _etext+0x1644
        ebp     0xf0190f9c              _etext+0x168c
        esi     0xf019d560              _matcd_data+0x154
        edi     0
        eip     0xf01839de              _matcd_blockread+0x1fe
        efl     0x10246
        _matcd_blockread+0x1fe:         movb    %bl,0(%eax)

        db> call cpu_reset()
                That's all, folks!


        FINAL NOTES:
        Here are some comments and conclusions about this case:
        -Although the operations described above ALWAYS result in the reported
         panic, this occurs in other conditions, not so well defined. I once
         got a similar crash, when had mc in a virtual console in background
         and in the current console was messing with the info system. Suddenly,
         the panic raised. Another time, I was recompiling on ttyv0 all the
         kernel sources; on ttyv1 was less-ing /usr/share/doc/handbook.ascii.
         Then something was wrong and less died. Back again on ttyv0, I saw
         that the kernel-make has reported some errors and gave up. Tried to
         edit my config file and got a message complaining something about
         invalid or non-existent file descriptors. A few commands after, the
         system crashed.

        -Curiously, you can access and read ports/README with no trouble
         by cat-ing it. Further, from MS-DOS or Linux, there is not problem
         at all. I DO NOT mean that mc has nothing to do with the panic, but
         what is the difference?

        -I thought that something was wrong with my customized kernel, but
         it happens with kernel.GENERIC too.

        -I thought that DDB was bugously nervous, so I removed it. The panic
         was still there.

        -I thought that something was wrong with the swap partition, for some
         obscure reason. I commented out the `swapon -A' line in /etc/rc and
         rebooted a fresh system with no swap device at all. Bad news: panic
         again.

        -I thought: Jesus, you need a crash dump after the panic, then savecore
         it, and send the dump to someone with more knowledge of this stuff
         than you. Well, I modified my /etc/sysconfig to dumpon to the swap
         partition (/dev/wd0s4b) and savecore it. Then I crashed at will, and,
         inside ddb did `call-ed diediedie()'. It told me it was dumping and
         then rebooted. Fine. But it resulted worse at all: the filesystems
         were very badly damaged. auto-fsck failed, and fscking by hand
         resulted in removing a lot of files at /dev, /var and so on. Since I
         am a newcomer to FreeBSD, saw no other solution than reinstallation.
         Should better read the docs before doing so again.

        -At last, Linux performs fine and stable. So, the toys called MS-DOS
         and Windows 3.1 (with their limitations, of course).


        Well, man. This was all. I hope it will of any use for you at all.
        If you have some questions or suggestions please send to the friend
        that let me use his access to Internet for posting this report.


                                        See you,

                                        Jes£s A. Mora Marin, MD


        ---------< federero@obelix.cica.es >------------




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