gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] SGC on MacOS X


From: Aurelien Chanudet
Subject: Re: [Gcl-devel] SGC on MacOS X
Date: Mon, 28 Jun 2004 18:19:54 +0200 (CEST)

> 1) Does this happen on a subset of machines, or on
> all macosx?  If the
>    latter, do you know when this first appeared?

Apparently, this appears on all macosx. The problem
does not occur with 2.7.0 (that is, as of my last CVS
refresh, which dates back to some time ago ; I'd have
to update and see what happens) and first appeared
with 2.6.2 (I downloaded the source code available
from gnu.org).

> 2) The following code in sgc_start in sgbc.c:
> 
> 
>   npp=page((&sgc_type_map[0]));
>   if (npp<MAXPAGE && sgc_type_map[npp] !=
> SGC_PERM_WRITABLE)
>    
>
perm_writable(&sgc_type_map[0],sizeof(sgc_type_map));
> 
> 
> is supposed to mark this array permanently writable.
>  Can you discover
> why this is not working?  (i.e. step through with a
> debugger in normal
> gcl running (si::sgc-on t)?)

This is what I thought and what I was planning to do.

> 3) Would you like to put up a binary 2.6.2 build
> somewhere for
>    inclusion on ftp.gnu.org?  Or does the likely
> proliferation of
>    shared library versions in use make this of
> little value?

I'd really like to. I think the proliferation of
shared library versions isn't a big issue.
Unfortunately, I won't have time to build my binary
until the end of July (presumably).

Thanks !

> Take care,
> 
> Aurelien Chanudet <address@hidden> writes:
> 
> > Hi Camm & John,
> > 
> > I tried to investigate this infinite loop issue
> when building ACL2 with SGC enabled. Here are my
> conclusions. Camm's
> > comments appreciated, as always !
> > 
> > The infinite loop is occurring in the
> memprotect_handler routine which gets called in
> order to handle stratified segfault
> > (in my understanding). There's an infinite loop in
> this memory handler because a segfault is occurring
> from within the
> > handler itself :
> > 
> > Attaching to process 20950.
> > Reading symbols for shared libraries . done
> > Reading symbols for shared libraries ........ done
> > 0x00013818 in memprotect_handler (sig=10,
> code=-1073753784, scp=0xbfffd188, addr=0xbfffd148
> "") at sgbc.c:1614
> > 1614          sgc_type_map[p+j] =
> sgc_type_map[p+j] | SGC_TEMP_WRITABLE;
> > (gdb) p/x (unsigned long) sgc_type_map
> > $2 = 0x634890
> > (gdb) call print_regions ()
> > (gdb) p/x (unsigned long)(sgc_type_map+p+j)
> > $4 = 0x63c0d8
> > (gdb) p/x 0x639000+0x1b000
> > $5 = 0x654000
> > (gdb) p j
> > $6 = 0
> > 
> > print_regions () is a function I wrote using
> Darwin's custom VM management routines. It scans the
> whole address space,
> > and displays memory attributes. The output of this
> routine is (the first column of attributes denotes
> actual protection
> > attributes, the second column denotes max
> protection attributes allowed).
> > 
> > <snip>
> >    0x634000     0x1000 rwx  rwx  (no zone)
> >    0x635000     0x1000 rwx  rwx  (no zone)
> >    0x636000     0x1000 rwx  rwx  (no zone)
> >    0x637000     0x1000 rwx  rwx  (no zone)
> >    0x638000     0x1000 rwx  rwx  (no zone)
> >    0x639000    0x1b000 r x  rwx  (no zone)
> >    0x654000     0x1000 rwx  rwx  (no zone)
> > <snip>
> > 
> > It looks as though sgc_type_map[p+j] falls in a
> non writable area ([0x639000;0x654000[). As can be
> seen from the log
> > above, sgc_type_map starts at 0x634890. My MAXPAGE
> has the default value (128*1024).
> > 
> > Turing on DEBUG_MPROTECT in sgbc.c and trying to
> compile ACL2 yields the following output :
> > 
> > <snip>
> > mprotect(0x62c000,0x8000), sbrk(0)=0xeaae000
> > prot[893,894,(5),writable]
> > mprotect(0x634000,0x1000), sbrk(0)=0xeaae000
> > prot[894,925,(0),not writable]
> > mprotect(0x635000,0x1f000), sbrk(0)=0xeaae000
> > prot[925,926,(5),writable]
> > mprotect(0x654000,0x1000), sbrk(0)=0xeaae000
> > prot[926,929,(0),not writable]
> > <snip>
> > [SGC on]
> > fault:0x2b8404 [1] (0) 
> mprotect(0x2b8000,0x1000,0xeaae000)
> > fault:0x12ac0b8 [4085] (0) 
> mprotect(0x12ac000,0x1000,0xeaae000)
> > fault:0x12b2ec8 [4091] (0) 
> mprotect(0x12b2000,0x1000,0xeaae000)
> > fault:0x713728 [1116] (0) 
> mprotect(0x713000,0x1000,0xeaae000)
> > fault:0x2cec34 [23] (0) 
> mprotect(0x2ce000,0x1000,0xeaae000)
> > fault:0x700fd4 [1097] (0) 
> mprotect(0x700000,0x1000,0xeaae000)
> > fault:0x7aff000 [30792] (0) 
> mprotect(0x7aff000,0x1000,0xeaae000)
> > 
> > When running a separate saved_gcl and doing
> (si::sgc-on t), here is what I get :
> > 
> >  >(si::sgc-on t)
> > <snip>
> > mprotect(0x62c000,0x8000), sbrk(0)=0xa302000
> > prot[893,894,(5),writable]
> > mprotect(0x634000,0x1000), sbrk(0)=0xa302000
> > prot[894,925,(0),not writable]
> > mprotect(0x635000,0x1f000), sbrk(0)=0xa302000
> > prot[925,926,(5),writable]
> > mprotect(0x654000,0x1000), sbrk(0)=0xa302000
> > prot[926,929,(0),not writable]
> > mprotect(0x655000,0x3000), sbrk(0)=0xa302000
> > prot[929,931,(5),writable]
> > mprotect(0x658000,0x2000), sbrk(0)=0xa302000
> > prot[931,962,(0),not writable]
> > <snip>
> > fault:0x7182f8 [1121] (0) 
> mprotect(0x718000,0x1000,0xa302000)
> > fault:0x70b3ac [1108] (0) 
> mprotect(0x70b000,0x1000,0xa302000)
> > fault:0x7052d4 [1102] (0) 
> mprotect(0x705000,0x1000,0xa302000)
> > fault:0x709c08 [1106] (0) 
> mprotect(0x709000,0x1000,0xa302000)
> > fault:0x2c7a98 [16] (0) 
> mprotect(0x2c7000,0x1000,0xa302000)
> > T
> > fault:0x2ce2f8 [23] (0) 
> mprotect(0x2ce000,0x1000,0xa302000)
> > fault:0x700cd0 [1097] (0) 
> mprotect(0x700000,0x1000,0xa302000)
> > fault:0x2ccc88 [21] (0) 
> mprotect(0x2cc000,0x1000,0xa302000)
> > fault:0x12dea5c [4135] (0) 
> mprotect(0x12de000,0x1000,0xa302000)
> > fault:0x13806a0 [4297] (0) 
> mprotect(0x1380000,0x1000,0xa302000)
> > fault:0x2b8c3c [1] (0) 
> mprotect(0x2b8000,0x1000,0xa302000)
> > fault:0x131bf0c [4196] (0) 
> mprotect(0x131b000,0x1000,0xa302000)
> > fault:0x13ec008 [4405] (0) 
> mprotect(0x13ec000,0x1000,0xa302000)
> > 
> > Aurelien
> > 
> > 
> > 
> > _______________________________________________
> > Gcl-devel mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/gcl-devel
> > 
> > 
> > 
> 
> -- 
> Camm Maguire                                          address@hidden
>
==========================================================================
> "The earth is but one country, and mankind its
> citizens."  --  Baha'u'llah
>  


        

        
                
Créez gratuitement votre Yahoo! Mail avec 100 Mo de stockage !
Créez votre Yahoo! Mail sur http://fr.benefits.yahoo.com/

Dialoguez en direct avec vos amis grâce à Yahoo! Messenger !Téléchargez Yahoo! 
Messenger sur http://fr.messenger.yahoo.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]