changeset 23438:acf5ee723439

Merge
author asaha
date Wed, 09 Sep 2015 10:58:32 -0700
parents c1374141598c (diff) 822b661ed05a (current diff)
children 565881d71b60
files .hgtags
diffstat 6 files changed, 25 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Sep 08 15:13:28 2015 -0700
+++ b/.hgtags	Wed Sep 09 10:58:32 2015 -0700
@@ -748,3 +748,4 @@
 8a23b6392c590b7bf5f6ad2c4746dc03981a7f60 jdk8u66-b11
 ab64d7ea4f48ea4bdbcc43d4a653be157d9c29e3 jdk8u66-b12
 4d699853544cf869d4edaf23b7cc9cfbb2900a2b jdk8u66-b13
+b8f426369187c32551f0a3d571d933908988c81c jdk8u72-b00
--- a/src/os/linux/vm/os_linux.cpp	Tue Sep 08 15:13:28 2015 -0700
+++ b/src/os/linux/vm/os_linux.cpp	Wed Sep 09 10:58:32 2015 -0700
@@ -5922,9 +5922,11 @@
         status = pthread_mutex_unlock(_mutex);
         assert (status == 0, "invariant");
       } else {
+        // must capture correct index before unlocking
+        int index = _cur_index;
         status = pthread_mutex_unlock(_mutex);
         assert (status == 0, "invariant");
-        status = pthread_cond_signal (&_cond[_cur_index]);
+        status = pthread_cond_signal (&_cond[index]);
         assert (status == 0, "invariant");
       }
     } else {
--- a/src/os/linux/vm/perfMemory_linux.cpp	Tue Sep 08 15:13:28 2015 -0700
+++ b/src/os/linux/vm/perfMemory_linux.cpp	Wed Sep 09 10:58:32 2015 -0700
@@ -217,9 +217,9 @@
     //
     return false;
   }
-  // See if the uid of the directory matches the effective uid of the process.
-  //
-  if (statp->st_uid != geteuid()) {
+  // If user is not root then see if the uid of the directory matches the effective uid of the process.
+  uid_t euid = geteuid();
+  if ((euid != 0) && (statp->st_uid != euid)) {
     // The directory was not created by this user, declare it insecure.
     //
     return false;
--- a/src/os/solaris/vm/perfMemory_solaris.cpp	Tue Sep 08 15:13:28 2015 -0700
+++ b/src/os/solaris/vm/perfMemory_solaris.cpp	Wed Sep 09 10:58:32 2015 -0700
@@ -219,9 +219,9 @@
     //
     return false;
   }
-  // See if the uid of the directory matches the effective uid of the process.
-  //
-  if (statp->st_uid != geteuid()) {
+  // If user is not root then see if the uid of the directory matches the effective uid of the process.
+  uid_t euid = geteuid();
+  if ((euid != 0) && (statp->st_uid != euid)) {
     // The directory was not created by this user, declare it insecure.
     //
     return false;
--- a/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp	Tue Sep 08 15:13:28 2015 -0700
+++ b/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp	Wed Sep 09 10:58:32 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2015, 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,10 @@
   return cpuinfo_field_contains("cpu", "Niagara");
 }
 
+static bool detect_M_family() {
+  return cpuinfo_field_contains("cpu", "SPARC-M");
+}
+
 static bool detect_blkinit() {
   return cpuinfo_field_contains("cpucaps", "blkinit");
 }
@@ -66,6 +70,11 @@
     features = niagara1_m | T_family_m;
   }
 
+  if (detect_M_family()) {
+    NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Detected Linux on M family");)
+    features = sun4v_m | generic_v9_m | M_family_m | T_family_m;
+  }
+
   if (detect_blkinit()) {
     features |= blk_init_instructions_m;
   }
--- a/src/share/vm/runtime/objectMonitor.cpp	Tue Sep 08 15:13:28 2015 -0700
+++ b/src/share/vm/runtime/objectMonitor.cpp	Wed Sep 09 10:58:32 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, 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
@@ -226,7 +226,8 @@
 //
 // * The monitor entry list operations avoid locks, but strictly speaking
 //   they're not lock-free.  Enter is lock-free, exit is not.
-//   See http://j2se.east/~dice/PERSIST/040825-LockFreeQueues.html
+//   For a description of 'Methods and apparatus providing non-blocking access
+//   to a resource,' see U.S. Pat. No. 7844973.
 //
 // * The cxq can have multiple concurrent "pushers" but only one concurrent
 //   detaching thread.  This mechanism is immune from the ABA corruption.
@@ -1955,7 +1956,8 @@
 // (duration) or we can fix the count at approximately the duration of
 // a context switch and vary the frequency.   Of course we could also
 // vary both satisfying K == Frequency * Duration, where K is adaptive by monitor.
-// See http://j2se.east/~dice/PERSIST/040824-AdaptiveSpinning.html.
+// For a description of 'Adaptive spin-then-block mutual exclusion in
+// multi-threaded processing,' see U.S. Pat. No. 8046758.
 //
 // This implementation varies the duration "D", where D varies with
 // the success rate of recent spin attempts. (D is capped at approximately