*BSD News Article 18010


Return to BSD News archive

Xref: sserve comp.os.386bsd.bugs:1057 comp.windows.x.i386unix:2353
Path: sserve!newshost.anu.edu.au!munnari.oz.au!foxhound.dsto.gov.au!fang.dsto.gov.au!myall.awadi.com.au!dbarker
From: dbarker@awadi.com.au (Dave Barker)
Newsgroups: comp.os.386bsd.bugs,comp.windows.x.i386unix
Subject: Re: XFree86 1.3 crashes under 386BSD
Date: 6 Jul 93 23:12:58
Organization: AWA Defence Industries Pty. Ltd.
Lines: 64
Message-ID: <DBARKER.93Jul6231258@debacle.awadi.com.au>
References: <20ea6n$5v5@email.tuwien.ac.at>
Reply-To: dbarker@awadi.com.au
NNTP-Posting-Host: debacle.awadi.com.au
In-reply-to: mbirgmei@email.tuwien.ac.at's message of 25 Jun 1993 09:41:11 +0200
Comments: Hyperbole mail buttons accepted, v3.07.

>>>>> On 25 Jun 1993 09:41:11 +0200, mbirgmei@email.tuwien.ac.at (Martin BIRGMEIER) said:
Martin> NNTP-Posting-Host: email.tuwien.ac.at

Martin> Hello all,

Martin> with so many new goodies arriving lateley, I started to gain some hope
Martin> again... anyway, a few months ago when XFree86-1.2 came out, I built
Martin> that server from source, and when run it would crash after usually only
Martin> a few minutes. Then I tried the precompiled version which exhibited
Martin> exactly the same behaviour. There was a short discussion on the
Martin> relevant newsgroups pointing out that the most likely problem was in
Martin> 386BSD itself, but no solution came up, and I had to revert to version 1.1.

Martin> Ok, now with patchkit-0.2.4 installed and codrv enabled (I already had
Martin> an older version installed before), I thought I should try the
Martin> precompiled binaries for XFree86-1.3. Sadly enough, the same behavior
Martin> resulted, and I am back to 1.1 again. But I still keep wondering just
Martin> what is wrong with either 386BSD, my hardware setup, my software setup,
Martin> or else. It seems that some people are running the server happily on
Martin> their boxes, doesn't it? Some of the many changes between 1.1 and 1.2
Martin> must have exposed a bug - somewhere, and I'd so much *like to know*!

I first found this problem in XFree86 1.2, and got motivated to build
a debuggable server. I brought in a vt200 terminal from work for a
long weekend and hooked it up to a free serial port. I used
xlock -mode swarm to trigger the bug.

The server was dying of a segmentation violation trying to read from
the VGA card's memory. It is the movb instruction at .writeloopC in 
server/ddx/x386/vga256/enhanced/fLineBres.s (at line 100 in 1.3
sources). I didn't check that the address of the memory access was out
of range, but it seemed unlikely, as this bug did not occur on a
non-386BSD platform. The most likely candidate seemed to be a
fencepost error of some kind in the VGA mmap routines. Having got this
far I promptly gave up: I had had my fill of systems programming at
work, and I didn't want to troll through the entrails of 386BSD if I
didn't need to. Fortunately, none of the software I normally use
triggers this bug.


Just for the record, my setup is:

Hardware:
486DX 25 MHz micronics motherboard, 300 MB ESDI hard disk, Adaptek
1542B SCSI card with 1 GB Seagate hard disk, Wangtek 5150EQ tape
drive, Puretek ET4000 SVGA with 1MB VRAM, NEC 4D Multisync monitor.
Now 2.5 years old.

Software:
386BSD 0.1 with patchkit 0.2.2 plus 18 miscellaneous patches
including:
        GCC2 kernal compilation.
        2 argument patch for kern_execve.c
        npx-0.4
        intr-0.0
        mod barsoom wd driver
        microtime
        com-0.2

I run XF86_SVGA in 1152x900 interlaced mode.


Cheers,
Dave.