make/pic.make

Thu, 20 Nov 2008 12:27:41 -0800

author
ysr
date
Thu, 20 Nov 2008 12:27:41 -0800
changeset 887
00b023ae2d78
parent 663
f232d7d67023
child 1907
c18cbe5936b8
permissions
-rw-r--r--

6722113: CMS: Incorrect overflow handling during precleaning of Reference lists
Summary: When we encounter marking stack overflow during precleaning of Reference lists, we were using the overflow list mechanism, which can cause problems on account of mutating the mark word of the header because of conflicts with mutator accesses and updates of that field. Instead we should use the usual mechanism for overflow handling in concurrent phases, namely dirtying of the card on which the overflowed object lies. Since precleaning effectively does a form of discovered list processing, albeit with discovery enabled, we needed to adjust some code to be correct in the face of interleaved processing and discovery.
Reviewed-by: apetrusenko, jcoomes

xlu@663 1 #
xlu@663 2 # Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved.
xlu@663 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
xlu@663 4 #
xlu@663 5 # This code is free software; you can redistribute it and/or modify it
xlu@663 6 # under the terms of the GNU General Public License version 2 only, as
xlu@663 7 # published by the Free Software Foundation.
xlu@663 8 #
xlu@663 9 # This code is distributed in the hope that it will be useful, but WITHOUT
xlu@663 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
xlu@663 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
xlu@663 12 # version 2 for more details (a copy is included in the LICENSE file that
xlu@663 13 # accompanied this code).
xlu@663 14 #
xlu@663 15 # You should have received a copy of the GNU General Public License version
xlu@663 16 # 2 along with this work; if not, write to the Free Software Foundation,
xlu@663 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
xlu@663 18 #
xlu@663 19 # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
xlu@663 20 # CA 95054 USA or visit www.sun.com if you need additional information or
xlu@663 21 # have any questions.
xlu@663 22 #
xlu@663 23 #
xlu@663 24
xlu@663 25 # A list of object files built without the platform specific PIC flags, e.g.
xlu@663 26 # -fPIC on linux. Performance measurements show that by compiling GC related
xlu@663 27 # code, we could significantly reduce the GC pause time on 32 bit Linux/Unix
xlu@663 28 # platforms. See 6454213 for more details.
xlu@663 29 include $(GAMMADIR)/make/scm.make
xlu@663 30
xlu@663 31 ifneq ($(OSNAME), windows)
xlu@663 32 ifndef LP64
xlu@663 33 NONPIC_DIRS = memory oops gc_implementation gc_interface
xlu@663 34 NONPIC_DIRS := $(foreach dir,$(NONPIC_DIRS), $(GAMMADIR)/src/share/vm/$(dir))
xlu@663 35 # Look for source files under NONPIC_DIRS
xlu@663 36 NONPIC_FILES := $(foreach dir,$(NONPIC_DIRS),\
xlu@663 37 $(shell find $(dir) \( $(SCM_DIRS) \) -prune -o \
xlu@663 38 -name '*.cpp' -print))
xlu@663 39 NONPIC_OBJ_FILES := $(notdir $(subst .cpp,.o,$(NONPIC_FILES)))
xlu@663 40 endif
xlu@663 41 endif

mercurial