[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] SGC on MacOS X
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] SGC on MacOS X |
Date: |
29 Jun 2004 14:38:58 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Greetings!
Aurelien Chanudet <address@hidden> writes:
> > 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.
>
OK, please keep us posted. I will disable SGC for macosx on the
release page.
> > 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).
>
Many thanks! At this point it would be great if you could supply a
definitive README.macosx encapsulating your latest knowledge of this
build. Likewise, if you are aware of any other high caliber macosx
person like yourself who might be willing to help you with these and
other GCL items, please point them our way.
Take care,
> 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
>
>
> _______________________________________________
> 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