Mercurial > hg > truffle
view test/runtime/6929067/Test6929067.sh @ 3293:1f4413413144
7039089: G1: changeset for 7037276 broke heap verification, and related cleanups
Summary: In G1 heap verification, we no longer scan perm to G1-collected heap refs as part of process_strong_roots() but rather in a separate explicit oop iteration over the perm gen. This preserves the original perm card-marks. Added a new assertion in younger_refs_iterate() to catch a simple subcase where the user may have forgotten a prior save_marks() call, as happened in the case of G1's attempt to iterate perm to G1 refs when verifying the heap before exit. The assert was deliberately weakened for ParNew+CMS and will be fixed for that combination in a future CR. Also made some (non-G1) cleanups related to code and comments obsoleted by the migration of Symbols to the native heap.
Reviewed-by: iveresov, jmasa, tonyp
author | ysr |
---|---|
date | Tue, 26 Apr 2011 21:17:24 -0700 |
parents | 3b3d12e645e7 |
children | f08d439fab8c |
line wrap: on
line source
#!/bin/sh ## ## @test Test6929067.sh ## @bug 6929067 ## @summary Stack guard pages should be removed when thread is detached ## @run shell Test6929067.sh ## if [ "${TESTSRC}" = "" ] then TESTSRC=. fi if [ "${TESTJAVA}" = "" ] then PARENT=`dirname \`which java\`` TESTJAVA=`dirname ${PARENT}` echo "TESTJAVA not set, selecting " ${TESTJAVA} echo "If this is incorrect, try setting the variable manually." fi BIT_FLAG="" # set platform-dependent variables OS=`uname -s` case "$OS" in Linux) NULL=/dev/null PS=":" FS="/" ;; SunOS | Windows_* ) NULL=NUL PS=";" FS="\\" echo "Test passed; only valid for Linux" exit 0; ;; * ) echo "Unrecognized system!" exit 1; ;; esac LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/i386/client:/usr/openwin/lib:/usr/dt/lib:/usr/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH THIS_DIR=`pwd` cp ${TESTSRC}${FS}invoke.c ${THIS_DIR} cp ${TESTSRC}${FS}T.java ${THIS_DIR} ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -fullversion ${TESTJAVA}${FS}bin${FS}javac T.java gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/i386/client/libjvm.so ./invoke exit $?