changeset 5012:659dc7b310ea

Merge jdk7u51-b31
author andrew
date Fri, 17 Jan 2014 20:22:50 +0000
parents a8a33cc2dd4b (current diff) cf4110c35afb (diff)
children cbeecad5efcb
files .hgtags make/hotspot_version src/os/linux/vm/os_linux.cpp src/share/vm/runtime/os.cpp src/share/vm/utilities/vmError.cpp
diffstat 5 files changed, 45 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Jan 14 16:26:34 2014 -0500
+++ b/.hgtags	Fri Jan 17 20:22:50 2014 +0000
@@ -606,3 +606,20 @@
 3677c8cc3c89c0fa608f485b84396e4cf755634b jdk7u45-b30
 b59e02d9e72bb06d5cbff39605bce1d2695dbdd0 icedtea-2.4.3
 9def299ab058289926f8e1dbf86c9d5a95eb9738 icedtea-2.4.4
+520b7b3d9153c1407791325946b07c5c222cf0d6 jdk7u45-b31
+c373a733d5d5147f99eaa2b91d6b937c28214fc9 jdk7u45-b33
+0bcb43482f2ac5615437541ffb8dc0f79ece3148 jdk7u45-b34
+429884602206fcf5314c8b953c06d54d337558ca jdk7u51-b00
+68f03ff066f2341b89b52a6d6e21ae09de008351 jdk7u51-b01
+67910a581eca113847c5320c49436a9816c5d5c6 jdk7u51-b02
+4138fb11955a528e5ee5448d9c6c8e88e0e268b2 jdk7u51-b03
+683458c333ced92d515daa1b9bcdb5be679e535a jdk7u51-b04
+ed2db7a82229e7adbfe8a8166bf98f3ef4a09be5 jdk7u51-b05
+fec027762cf37d033d82d5b3725020f40c771690 jdk7u51-b06
+f673c581ebf91073b5bbdbdc5e4d4407910fa006 jdk7u51-b07
+b0a355aae00427e74cc0b89697c7c7f6fb520176 jdk7u51-b08
+4f56f2e206fd878809f70ca06f4bc21563a7c530 jdk7u51-b09
+1b7aaef3df78970c9a5ef5cc353ca927241555ee jdk7u51-b10
+1f11dff734af98f5bf11d4fceeda221ab1416971 jdk7u51-b11
+dee2a38ef6b26534c44c550ef4da2c3146c612c2 jdk7u51-b12
+6c6a2299029ad02fa2820b8ff8c61c2bbcae799c jdk7u51-b13
--- a/make/hotspot_version	Tue Jan 14 16:26:34 2014 -0500
+++ b/make/hotspot_version	Fri Jan 17 20:22:50 2014 +0000
@@ -34,8 +34,8 @@
 HOTSPOT_VM_COPYRIGHT=Copyright 2013
 
 HS_MAJOR_VER=24
-HS_MINOR_VER=45
-HS_BUILD_NUMBER=08
+HS_MINOR_VER=51
+HS_BUILD_NUMBER=03
 
 JDK_MAJOR_VER=1
 JDK_MINOR_VER=7
--- a/src/os/linux/vm/os_linux.cpp	Tue Jan 14 16:26:34 2014 -0500
+++ b/src/os/linux/vm/os_linux.cpp	Fri Jan 17 20:22:50 2014 +0000
@@ -2739,6 +2739,14 @@
           alignment_hint, exec, strerror(err), err);
 }
 
+static void warn_fail_commit_memory(char* addr, size_t size,
+                                    size_t alignment_hint, bool exec,
+                                    int err, const char* msg) {
+  warning("INFO: os::commit_memory(" PTR_FORMAT ", " SIZE_FORMAT
+          ", " SIZE_FORMAT ", %d) failed; error='%s' (errno=%d); %s", addr, size,
+          alignment_hint, exec, strerror(err), err, msg);
+}
+
 // NOTE: Linux kernel does not really reserve the pages for us.
 //       All it does is to check if there are enough free pages
 //       left at the time of mmap(). This could be a potential
@@ -2789,6 +2797,8 @@
 #define MADV_HUGEPAGE 14
 #endif
 
+volatile jint os::Linux::num_largepage_commit_fails = 0;
+
 int os::Linux::commit_memory_impl(char* addr, size_t size,
                                   size_t alignment_hint, bool exec) {
   int err;
@@ -2813,7 +2823,9 @@
       // from the loss. For now, we just issue a warning and we don't
       // call vm_exit_out_of_memory(). This issue is being tracked by
       // JBS-8007074.
-      warn_fail_commit_memory(addr, size, alignment_hint, exec, err);
+      Atomic::inc(&os::Linux::num_largepage_commit_fails);
+      warn_fail_commit_memory(addr, size, alignment_hint, exec, err,
+        "Cannot allocate large pages, falling back to regular pages");
 //    vm_exit_out_of_memory(size, "committing reserved memory.");
     }
     // Fall through and try to use small pages
--- a/src/os/linux/vm/os_linux.hpp	Tue Jan 14 16:26:34 2014 -0500
+++ b/src/os/linux/vm/os_linux.hpp	Fri Jan 17 20:22:50 2014 +0000
@@ -100,6 +100,7 @@
 
  public:
   static bool _stack_is_executable;
+  static volatile jint num_largepage_commit_fails;
   static void *dlopen_helper(const char *name, char *ebuf, int ebuflen);
   static void *dll_load_in_vmthread(const char *name, char *ebuf, int ebuflen);
 
--- a/src/share/vm/utilities/vmError.cpp	Tue Jan 14 16:26:34 2014 -0500
+++ b/src/share/vm/utilities/vmError.cpp	Fri Jan 17 20:22:50 2014 +0000
@@ -706,6 +706,18 @@
        st->cr();
      }
 
+#ifdef LINUX
+  STEP(193, "(printing large pages allocation errors)")
+
+     if (_verbose) {
+       jint largepage_failures = os::Linux::num_largepage_commit_fails;
+       if (largepage_failures > 0) {
+         st->print_cr("Large page allocation failures have occurred " INT32_FORMAT " times", largepage_failures);
+         st->cr();
+       }
+     }
+#endif
+
   STEP(195, "(printing code cache information)" )
 
      if (_verbose && Universe::is_fully_initialized()) {