Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jun 2000 23:06:56 -0700 (PDT)
From:      Gerry Bash <gersh@sonn.com>
To:        freebsd-alpha@freebsd.org
Subject:   Alpha memory managment fault questions
Message-ID:  <Pine.BSI.4.05L.10006242305030.22011-100000@cara.sonn.com>

next in thread | raw e-mail | index | archive | help
 I have been porting some code to freebsd-alpha (4.0-RELEASE) and have
encounterd what seems to be a strange alpha specfic bug.  This bug seems
to occor when trying at access 'uap->fname' in kern_exec.c

I wrote a small sample that replicates the problem.  Keep in mind that
this same concept code works flawlessly on i386 (4.0-RELEASE).

starting at line 139 of kern_exec.c

kern_exec.c:
     $FreeBSD: src/sys/kern/kern_exec.c,v 1.107 2000/01/20 07:12:52 imp
Exp $

-- snip --
        imgp->stringp = imgp->stringbase;
        imgp->stringspace = ARG_MAX;
        imgp->image_header = imgp->stringbase + ARG_MAX;

        if (uap->fname)
                printf("len is %d\n", strlen(uap->fname));

        /*
         * Translate the file name. namei() returns a vnode pointer
         *      in ni_vp amoung other things.
         */
        ndp = &nd;
        NDINIT(ndp, LOOKUP, LOCKLEAF | FOLLOW | SAVENAME,
            UIO_USERSPACE, uap->fname, p);
-- snip --

This works fine up until I try to do:
[root@alpha] cd /usr/src/sys.original/alpha/conf
[root@alpha] config -r GENERIC

at this point the machine crashes with " "
which I assume to be the same as "supervisor page read, not present" on
i386.

I gatehered the following debuging.


[root@alpha] gdb -k ./kernel.5 ./vmcore.5
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "alpha-unknown-freebsd"...
panic: trap
#0  0xfffffc0000395a14 in boot ()
(kgdb) bt
#0  0xfffffc0000395a14 in boot ()
#1  0xfffffc00003961b0 in panic ()
#2  0xfffffc000056d98c in trap ()
#3  0xfffffc000055f9cc in XentMM () at ../../alpha/alpha/exception.s:94
(kgdb) up 3
#3  0xfffffc000055f9cc in XentMM () at ../../alpha/alpha/exception.s:94
94      in ../../alpha/alpha/exception.s
                

The machine's hardware is a Alpha 500 personal workstation.
>>>show conf
Firmware 
SRM Console:    7.0-11
ARC Console:    5.69
PALcode:        VMS PALcode V1.20-14, OSF PALcode V1.22-17
SROM Version:   v5.90

Does anybody have any ideas on why this code would only crash on the alpha
platform and not i386 ?



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.4.05L.10006242305030.22011-100000>