# HG changeset patch # User phh # Date 1324359531 28800 # Node ID 7d28e253b4b0e7d240767e50e57b79f6940db265 # Parent e2dd3c32a7cb62fc8a12da4b435d45a55acd0a73# Parent 8d06f82cbd114e5db81a852f02936304bc04ea65 Merge diff -r e2dd3c32a7cb -r 7d28e253b4b0 .hgtags --- a/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -138,3 +138,4 @@ 9ffaa48dbfb0f5936c2b789867d0785faec7071d jdk8-b14 b5060eae3b32fd9f884a09774338cd8186d7fafa jdk8-b15 736a63b854f321c7824b7e47890135f80aee05e3 jdk8-b16 +f0eccb2946986fb9626efde7d8ed9c8192623f5c jdk8-b17 diff -r e2dd3c32a7cb -r 7d28e253b4b0 .hgtags-top-repo --- a/.hgtags-top-repo Mon Dec 19 15:50:47 2011 -0500 +++ b/.hgtags-top-repo Mon Dec 19 21:38:51 2011 -0800 @@ -137,3 +137,5 @@ 26fb81a1e9ceb9baffba216acd9ded62e9e9d5ab jdk8-b13 23aa7f2c80a2fa354c80decf03e7c2018177ef4e jdk8-b14 a4f28069d44a379cda99dd1d921d19f819726d22 jdk8-b15 +4e06ae613e99549835896720c7a68c29ad5543f5 jdk8-b17 +4e06ae613e99549835896720c7a68c29ad5543f5 jdk8-b16 diff -r e2dd3c32a7cb -r 7d28e253b4b0 corba/.hgtags --- a/corba/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/corba/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -137,3 +137,5 @@ 5b9d9b839d3d7fe02347827221c97c6d242a6f96 jdk8-b13 e59c47de1ad8982ff3b0e843773a6902b36c2337 jdk8-b14 7da69e7175a7c7564ee6d0e52255cbb8a57ef577 jdk8-b15 +82dc033975bb9b553b4ef97b6d483eda8de32e0f jdk8-b17 +82dc033975bb9b553b4ef97b6d483eda8de32e0f jdk8-b16 diff -r e2dd3c32a7cb -r 7d28e253b4b0 hotspot/.hgtags --- a/hotspot/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/hotspot/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -201,4 +201,7 @@ 088d09a130ff02d8f5f05e92256baabe412f0439 jdk8-b14 6c2a55d4902f202e1c2de1df17b7da083a2c31e8 hs23-b06 fde2a39ed7f39233b287fbc278f437aac06c275b jdk8-b15 +d1f29d4e0bc60e8bd7ae961f1306d8ab33290212 jdk8-b17 +d1f29d4e0bc60e8bd7ae961f1306d8ab33290212 jdk8-b16 6de8c9ba5907e4c5ca05ac4b8d84a8e2cbd92399 hs23-b07 +a2fef924d8e6f37dac2a887315e3502876cc8e24 hs23-b08 diff -r e2dd3c32a7cb -r 7d28e253b4b0 hotspot/make/hotspot_version --- a/hotspot/make/hotspot_version Mon Dec 19 15:50:47 2011 -0500 +++ b/hotspot/make/hotspot_version Mon Dec 19 21:38:51 2011 -0800 @@ -35,7 +35,7 @@ HS_MAJOR_VER=23 HS_MINOR_VER=0 -HS_BUILD_NUMBER=08 +HS_BUILD_NUMBER=09 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff -r e2dd3c32a7cb -r 7d28e253b4b0 hotspot/src/cpu/x86/vm/assembler_x86.cpp --- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp Mon Dec 19 15:50:47 2011 -0500 +++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp Mon Dec 19 21:38:51 2011 -0800 @@ -5968,7 +5968,9 @@ assert(number_of_arguments >= 0 , "cannot have negative number of arguments"); LP64_ONLY(assert(java_thread == r15_thread, "unexpected register")); #ifdef ASSERT - LP64_ONLY(if (UseCompressedOops) verify_heapbase("call_VM_base");) + // TraceBytecodes does not use r12 but saves it over the call, so don't verify + // r12 is the heapbase. + LP64_ONLY(if (UseCompressedOops && !TraceBytecodes) verify_heapbase("call_VM_base");) #endif // ASSERT assert(java_thread != oop_result , "cannot use the same register for java_thread & oop_result"); diff -r e2dd3c32a7cb -r 7d28e253b4b0 hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp Mon Dec 19 15:50:47 2011 -0500 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp Mon Dec 19 21:38:51 2011 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. 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 @@ -53,6 +53,9 @@ case noop_task: result = "noop task"; break; + case idle_task: + result = "idle task"; + break; } return result; }; @@ -782,6 +785,12 @@ void GCTaskManager::execute_and_wait(GCTaskQueue* list) { WaitForBarrierGCTask* fin = WaitForBarrierGCTask::create(); list->enqueue(fin); + // The barrier task will be read by one of the GC + // workers once it is added to the list of tasks. + // Be sure that is globally visible before the + // GC worker reads it (which is after the task is added + // to the list of tasks below). + OrderAccess::storestore(); add_list(list); fin->wait_for(true /* reset */); // We have to release the barrier tasks! @@ -833,11 +842,15 @@ IdleGCTask* IdleGCTask::create() { IdleGCTask* result = new IdleGCTask(false); + assert(UseDynamicNumberOfGCThreads, + "Should only be used with dynamic GC thread"); return result; } IdleGCTask* IdleGCTask::create_on_c_heap() { IdleGCTask* result = new(ResourceObj::C_HEAP) IdleGCTask(true); + assert(UseDynamicNumberOfGCThreads, + "Should only be used with dynamic GC thread"); return result; } diff -r e2dd3c32a7cb -r 7d28e253b4b0 hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp Mon Dec 19 15:50:47 2011 -0500 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp Mon Dec 19 21:38:51 2011 -0800 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. 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 @@ -129,6 +129,8 @@ for (; /* break */; ) { // This will block until there is a task to be gotten. GCTask* task = manager()->get_task(which()); + // Record if this is an idle task for later use. + bool is_idle_task = task->is_idle_task(); // In case the update is costly if (PrintGCTaskTimeStamps) { timer.update(); @@ -137,9 +139,13 @@ jlong entry_time = timer.ticks(); char* name = task->name(); + // If this is the barrier task, it can be destroyed + // by the GC task manager once the do_it() executes. task->do_it(manager(), which()); - if (!task->is_idle_task()) { + // Use the saved value of is_idle_task because references + // using "task" are not reliable for the barrier task. + if (!is_idle_task) { manager()->note_completion(which()); if (PrintGCTaskTimeStamps) { diff -r e2dd3c32a7cb -r 7d28e253b4b0 jaxp/.hgtags --- a/jaxp/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/jaxp/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -137,3 +137,5 @@ bcc739229f6384786c7ac0b52c1822c85674dcf1 jdk8-b13 9d0c9d638757cb09de18933b946fa04b4f3fb94f jdk8-b14 804f666d6d44e33caac12ad8da3d2780ac44ef72 jdk8-b15 +09eb517404b059607aca30cdd1af83ffc57eafeb jdk8-b17 +09eb517404b059607aca30cdd1af83ffc57eafeb jdk8-b16 diff -r e2dd3c32a7cb -r 7d28e253b4b0 jaxws/.hgtags --- a/jaxws/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/jaxws/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -137,3 +137,5 @@ adf2a6b5fde14090beb9ebc40c4114132ddee731 jdk8-b13 54c4bf4b83ecc191351747d5d28da849d34c0243 jdk8-b14 c9ab96ff23d52d85d5dcce1f9c0fd7a3de418c74 jdk8-b15 +3d45ab79643d5b4cc7e050ae2d9c08b4d89d665e jdk8-b17 +3d45ab79643d5b4cc7e050ae2d9c08b4d89d665e jdk8-b16 diff -r e2dd3c32a7cb -r 7d28e253b4b0 jdk/.hgtags --- a/jdk/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/jdk/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -137,3 +137,5 @@ 4cb2e8679b27432854690cb688ea06d3b2d8e008 jdk8-b13 99632935785e2038b2fc836da9f2ede69dea294b jdk8-b14 3c248d0e2c486624cc0d7aba1e4df45ae5774ff7 jdk8-b15 +b71d1acfae5240d8c1359443cd02b5ddb587231c jdk8-b17 +929597c6e777f742ad252660045ebaa4a3ea4772 jdk8-b16 diff -r e2dd3c32a7cb -r 7d28e253b4b0 jdk/make/common/shared/Sanity.gmk --- a/jdk/make/common/shared/Sanity.gmk Mon Dec 19 15:50:47 2011 -0500 +++ b/jdk/make/common/shared/Sanity.gmk Mon Dec 19 21:38:51 2011 -0800 @@ -1555,60 +1555,6 @@ endif endif - -###################################################### -# SECURITY_BASELINE_131 test -###################################################### -security_baseline_131: -ifeq ($(PLATFORM), windows) - @if [ -z "$(SECURITY_BASELINE_131)" ]; then \ - $(ECHO) "WARNING: Your SECURITY_BASELINE_131 setting is empty.\n" \ - " Setting it to the default value of 1.3.1_20.\n" \ - " It is recommended to set SECURITY_BASELINE_131.\n" \ - "" >> $(WARNING_FILE) ; \ - fi -endif - -###################################################### -# SECURITY_BASELINE_142 test -###################################################### -security_baseline_142: -ifeq ($(PLATFORM), windows) - @if [ -z "$(SECURITY_BASELINE_142)" ]; then \ - $(ECHO) "WARNING: Your SECURITY_BASELINE_142 setting is empty.\n" \ - " Setting it to the default value of 1.4.2_10.\n" \ - " It is recommended to set SECURITY_BASELINE_142.\n" \ - "" >> $(WARNING_FILE) ; \ - fi -endif - -###################################################### -# SECURITY_BASELINE_150 test -###################################################### -security_baseline_150: -ifeq ($(PLATFORM), windows) - @if [ -z "$(SECURITY_BASELINE_150)" ]; then \ - $(ECHO) "WARNING: Your SECURITY_BASELINE_150 setting is empty.\n" \ - " Setting it to the default value of 1.5.0_07.\n" \ - " It is recommended to set SECURITY_BASELINE_150.\n" \ - "" >> $(WARNING_FILE) ; \ - fi -endif - -###################################################### -# SECURITY_BASELINE_160 test -###################################################### -security_baseline_160: -ifeq ($(PLATFORM), windows) - @if [ -z "$(SECURITY_BASELINE_160)" ]; then \ - $(ECHO) "WARNING: Your SECURITY_BASELINE_160 setting is empty.\n" \ - " Setting it to the default value of 1.6.0_11.\n" \ - " It is recommended to set SECURITY_BASELINE_160.\n" \ - "" >> $(WARNING_FILE) ; \ - fi -endif - - ###################################################### # this should be the last rule in any target's sanity rule. ###################################################### diff -r e2dd3c32a7cb -r 7d28e253b4b0 langtools/.hgtags --- a/langtools/.hgtags Mon Dec 19 15:50:47 2011 -0500 +++ b/langtools/.hgtags Mon Dec 19 21:38:51 2011 -0800 @@ -137,3 +137,5 @@ ae25163501bc7477cd907e26a006a6f1b05fdb6d jdk8-b13 58f1325d72b2bacc901f5189ee5e4e81e81ea657 jdk8-b14 07599bd780cab1f40da7915e1dc6774629b0cf8c jdk8-b15 +1cbe86c11ba69521875c0b0357d7540781eb334d jdk8-b17 +ec2c0973cc31e143cffc05ceb63d98fae76f97d4 jdk8-b16