6899058: G1: Internal error in ptrQueue.cpp:201 in nightly tests
Summary: Fixes a race on the dirty card queue completed buffer list between worker thread(s) performing a flush of a deferred store barrier (enqueueing a newly completed buffer) and worker thread(s) in the RSet updating code claiming completed buffers. Removed the routine that removes elements from the completed update buffer queue using a CAS.
Reviewed-by: ysr, tonyp
#
# Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# JDK TARGETS
################################################################
JDK_JAVA_EXE = $(OUTPUTDIR)/bin/java$(EXE_SUFFIX)
# NO_IMAGES may be set in conjunction with DEV_ONLY
ifdef NO_IMAGES
IMAGES_TARGET =
else
IMAGES_TARGET = images
endif
# No DOCS build when JDK_UPDATE_VERSION set
ifdef JDK_UPDATE_VERSION
DOCS_TARGET =
else
DOCS_TARGET = docs
endif
# NO_DOCS may be set in conjunction with DEV_ONLY
ifdef NO_DOCS
DOCS_TARGET =
endif
# If langtools not being built, full jdk javadoc is not possible
ifneq ($(BUILD_LANGTOOLS), true)
DOCS_TARGET =
endif
ifneq ($(BUILD_CORBA), true)
DOCS_TARGET =
endif
ifneq ($(BUILD_JAXP), true)
DOCS_TARGET =
endif
ifneq ($(BUILD_JAXWS), true)
DOCS_TARGET =
endif
ifndef DEV_ONLY
JDK_BUILD_TARGETS = sanity all $(DOCS_TARGET) images
else
JDK_BUILD_TARGETS = sanity all $(IMAGES_TARGET)
endif
JDK_CLOBBER_TARGETS = clobber
JDK_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
JDK_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
ifeq ($(BUILD_CORBA), true)
JDK_BUILD_ARGUMENTS += ALT_CORBA_DIST=$(ABS_CORBA_DIST)
endif
ifeq ($(BUILD_JAXP), true)
JDK_BUILD_ARGUMENTS += ALT_JAXP_DIST=$(ABS_JAXP_DIST)
endif
ifeq ($(BUILD_JAXWS), true)
JDK_BUILD_ARGUMENTS += ALT_JAXWS_DIST=$(ABS_JAXWS_DIST)
endif
ifeq ($(BUILD_HOTSPOT), true)
JDK_BUILD_ARGUMENTS += ALT_HOTSPOT_IMPORT_PATH=$(HOTSPOT_DIR)/import
endif
JDK_BUILD_ARGUMENTS += \
BUILD_HOTSPOT=$(BUILD_HOTSPOT)
$(JDK_JAVA_EXE):: jdk-build
jdk: jdk-build
jdk-build:
@$(call MakeStart, jdk, $(JDK_BUILD_TARGETS))
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) $(JDK_BUILD_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
@$(call MakeFinish, jdk, $(JDK_BUILD_TARGETS))
jdk-clobber::
@$(call MakeStart, jdk, $(JDK_CLOBBER_TARGETS))
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) $(JDK_CLOBBER_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
@$(call MakeFinish, jdk, $(JDK_CLOBBER_TARGETS))
jdk-sanity::
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) sanity HOTSPOT_IMPORT_CHECK=false $(JDK_BUILD_ARGUMENTS) ; )
compare-images: compare-image
compare-image:
@$(call MakeStart, jdk, compare-image)
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image )
@$(call MakeFinish, jdk, compare-image)
compare-images-clobber: compare-image-clobber
compare-image-clobber:
@$(call MakeStart, jdk, compare-image-clobber)
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image-clobber )
@$(call MakeFinish, jdk, compare-image-clobber)
.PHONY: jdk jdk-build jdk-clobber jdk-sanity