8011569: ARM -- avoid native stack walking
Summary: ARM compilers do not emit FramePointer on each native frame by default
Reviewed-by: dholmes, zgu
--- a/hotspot/make/linux/makefiles/vm.make Fri Jun 07 09:33:01 2013 -0700
+++ b/hotspot/make/linux/makefiles/vm.make Tue Jul 16 10:55:48 2013 -0400
@@ -46,6 +46,7 @@
include $(MAKEFILES_DIR)/zeroshark.make
else
include $(MAKEFILES_DIR)/$(BUILDARCH).make
+ -include $(HS_ALT_MAKE)/$(Platform_os_family)/makefiles/$(BUILDARCH).make
endif
# set VPATH so make knows where to look for source files
@@ -384,4 +385,4 @@
install: install_jvm install_jsig install_saproc
-.PHONY: default build install install_jvm
+.PHONY: default build install install_jvm $(HS_ALT_MAKE)/$(Platform_os_family)/makefiles/$(BUILDARCH).make
--- a/hotspot/src/share/vm/services/memTracker.cpp Fri Jun 07 09:33:01 2013 -0700
+++ b/hotspot/src/share/vm/services/memTracker.cpp Tue Jul 16 10:55:48 2013 -0400
@@ -80,13 +80,13 @@
} else if (strcmp(option_line, "=detail") == 0) {
// detail relies on a stack-walking ability that may not
// be available depending on platform and/or compiler flags
- if (PLATFORM_NMT_DETAIL_SUPPORTED) {
+#if PLATFORM_NATIVE_STACK_WALKING_SUPPORTED
_tracking_level = NMT_detail;
- } else {
+#else
jio_fprintf(defaultStream::error_stream(),
- "NMT detail is not supported on this platform. Using NMT summary instead.");
+ "NMT detail is not supported on this platform. Using NMT summary instead.\n");
_tracking_level = NMT_summary;
- }
+#endif
} else if (strcmp(option_line, "=off") != 0) {
vm_exit_during_initialization("Syntax error, expecting -XX:NativeMemoryTracking=[off|summary|detail]", NULL);
}
--- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp Fri Jun 07 09:33:01 2013 -0700
+++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp Tue Jul 16 10:55:48 2013 -0400
@@ -381,12 +381,12 @@
#endif
/*
- * If a platform does not support NMT_detail
+ * If a platform does not support native stack walking
* the platform specific globalDefinitions (above)
- * can set PLATFORM_NMT_DETAIL_SUPPORTED to false
+ * can set PLATFORM_NATIVE_STACK_WALKING_SUPPORTED to 0
*/
-#ifndef PLATFORM_NMT_DETAIL_SUPPORTED
-#define PLATFORM_NMT_DETAIL_SUPPORTED true
+#ifndef PLATFORM_NATIVE_STACK_WALKING_SUPPORTED
+#define PLATFORM_NATIVE_STACK_WALKING_SUPPORTED 1
#endif
// The byte alignment to be used by Arena::Amalloc. See bugid 4169348.