public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: "Boehm, Hans" <hans_boehm@hp.com>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: RE: java/6092: sparc-sun-solaris2.7 has hundreds of libjava failu res with -m64
Date: Mon, 15 Apr 2002 16:46:00 -0000	[thread overview]
Message-ID: <20020415234601.22289.qmail@sources.redhat.com> (raw)

The following reply was made to PR java/6092; it has been noted by GNATS.

From: "Boehm, Hans" <hans_boehm@hp.com>
To: "'tromey@redhat.com'" <tromey@redhat.com>,
        "Boehm, Hans"
	 <hans_boehm@hp.com>
Cc: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>, gcc-gnats@gcc.gnu.org
Subject: RE: java/6092: sparc-sun-solaris2.7 has hundreds of libjava failu
	 	res with -m64
Date: Mon, 15 Apr 2002 16:42:33 -0700

 > From: Tom Tromey [mailto:tromey@redhat.com]
 > Hans> A possible cause of that is confusion about where the roots are.
 > Hans> If you can check GC_stackbottom, check that the collector and
 > Hans> libgcj configuration agree on threads, get GC_dump() output, and
 > Hans> check the root locations against the nm output that might
 > Hans> identify something.  Otherwise we need better debug information.
 > 
 > In order to reduce the number of variables a bit, I tried gctest.  I
 > got the same problem.  Here's some info.
 > 
 > (gdb) call GC_dump()
 > ***Static roots:
 > From 0x100106000 to 0x10012d8b8 
 > Total size: 161976
 > 
 > ***Heap sections:
 > Total heap size: 131072
 > Section 0 from 0x100178000 to 0x100198000 0/16 blacklisted
 > 
 > ***Free blocks:
 > Free list 16 (Total size 131072):
 > 	0x100178000 size 131072 not black listed
 > Total of 131072 bytes on free list
 > 
 > ***Blocks in use:
 > (kind(0=ptrfree,1=normal,2=unc.,3=stubborn):size_in_bytes, 
 > #_marks_set)
 > 
 > blocks = 0, bytes = 0
 > 
 I hadn't appreciated the fact that this was dying during initialization.
 That's further strong evidence that it in fact does have the root set wrong.
 Otherwise this looks plausible.
 > 
 > 
 > (gdb) p GC_stackbottom
 > $3 = 0xffffffff80000000 <Address 0xffffffff80000000 out of bounds>
 > 
 > I dug through the source a bit.  I think this machine doesn't define
 > USERLIMIT (a simple test program fails), so we must be using 
 > HEURISTIC2.
 > 
 I agree.  Can you print the stack pointer with gdb right after startup, and
 verify that it's just below that value?
 > 
 > When using nm what am I looking for?  I looked at one global,
 > GC_gc_no.  Its address falls into the range that GC_dump prints for
 > the static roots.  Should I do this comparison for all the globals?
 > 
 You want to get the symbols sorted in numeric order (nm -n on Linux; you may
 need nm -p | sort on Solaris).  I would then check that 
 
 a) It looks like all data and bss symbols are included in the "Static roots"
 interval, and
 
 b) It doesn't look like there are any obvious unmapped holes in the "Static
 roots" interval.
 
 I would guess that (b) is the problem here.  It may be that the data segment
 in fact starts at a higher address than what the collector is assuming.  The
 collector currently assumes the same spacing between etext and the start of
 the data segment as with the 32 bit ABI.  I think this doesn't work well if
 the page size exceeds 64K, which may have been perceived as a problem by the
 designers of the 64 bit ABI.
 
 If this doesn't lead to a diganosis of the problem, it would also be very
 helpful to extract the fault address somehow.  If you can determine the
 faulting instruction and the corresponding register contents, that should be
 fairly easy.  It wasn't clear to me whather gdb is sufficiently functional
 to do that.
 
 Hans


             reply	other threads:[~2002-04-15 23:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-15 16:46 Boehm, Hans [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-04-15 20:06 Boehm, Hans
2002-04-15 14:46 Tom Tromey
2002-04-11 11:46 Boehm, Hans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020415234601.22289.qmail@sources.redhat.com \
    --to=hans_boehm@hp.com \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).