Prepared by: | goetz on Wed Nov 16 16:45:45 CET 2016 |
---|---|
Workspace: | /net/sapmnt.sapjvm_work/d045726/oJ/8169373-ppc-stackFix-3-hs/hotspot |
Compare against: | http://hg.openjdk.java.net/jdk9/hs/hotspot |
Compare against version: | 12307 |
Summary of changes: | 95 lines changed: 31 ins; 13 del; 51 mod; 10712 unchg |
Patch of changes: | hotspot.patch |
Author comments: | Fix OS guard page handling and minimum stack size computations.Posix supports OS guard pages at the end of the stack. Java threads have stack guard pages handled by the VM. Thus for Java threads OS guard pages are superfluous and skipped. CompilerThread, CodeCacheSweeperThread, JvmtiAgentThread and ServiceThread are subclasses of JavaThread and thus get VM handled stack guard pages. They also get OS guard pages. This change removes the OS guard pages from these threads. Also, minimum stack sizes of JavaThread's subclasses must leave room for the VM stack guard pages. This is not considered for the compiler threads. This change simplifies compuation of these minimal sizes: The initialization of the _*_thread_min_stack_allowed now lists the minimal stack size required so that the VM starts up. This depends on the stack sizes generated by the C compiler and the C1 and C2 JIT compilers and thus is os and cpu dependent. I computed new initial values by subtracting the number of red, yellow, reserved and shadow pages configured on the corresponding platform. During startup, the space required for the guard pages is added to these minimal pages. This space depends on the os page size and thus only can be set during startup. Actually, minimal stack requirements now are less. I tested that jvm98 runs without problems with minimal stacks set. I tested and and sized on the following platforms: Thread kind: Java Compiler VM old new old new old new bsd x86_64 dbg: 240 152 64 64 64 64 opt: 240 144 64 64 64 64 linux x86_64 dbg: 240 144 64 64 64 64 opt: 232 136 64 64 64 64 solaris sparc dbg: opt: 240 192 128 128 128 128 aix ppc64 dbg: 512 384 384 384 128 64 opt: 512 384 384 384 128 64 linux ppc64 dbg: 512 384 128 256 128 64 opt: 512 384 128 256 128 64 linux ppc64le dbg: 512 384 128 256 128 64 opt: 512 384 128 256 128 64 linux s390 dbg: 236 140 128 96 128 32 opt: 236 124 128 64 128 32 |
Legend: |
Modified file Deleted file New file |
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/ppc/vm/globals_ppc.hpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch2 lines changed: 2 ins; 0 del; 0 mod; 199 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/x86/vm/globals_x86.hpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch5 lines changed: 1 ins; 0 del; 4 mod; 203 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os/posix/vm/os_posix.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch9 lines changed: 3 ins; 1 del; 5 mod; 1345 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os/posix/vm/os_posix.hpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch5 lines changed: 4 ins; 0 del; 1 mod; 116 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/aix_ppc/vm/os_aix_ppc.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch6 lines changed: 0 ins; 0 del; 6 mod; 638 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch10 lines changed: 4 ins; 3 del; 3 mod; 1091 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch5 lines changed: 2 ins; 0 del; 3 mod; 750 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch8 lines changed: 2 ins; 0 del; 6 mod; 699 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/linux_s390/vm/os_linux_s390.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch6 lines changed: 0 ins; 0 del; 6 mod; 649 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch5 lines changed: 2 ins; 0 del; 3 mod; 757 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/linux_x86/vm/os_linux_x86.cpp
rev 12307 : 8169373: Work around linux NPTL stack guard error. Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc. rev 12308 : imported patch new_os_guard_for_java_thread.patch9 lines changed: 2 ins; 2 del; 5 mod; 959 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/linux_zero/vm/os_linux_zero.cpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch1 line changed: 0 ins; 0 del; 1 mod; 520 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch8 lines changed: 2 ins; 4 del; 2 mod; 827 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch15 lines changed: 7 ins; 3 del; 5 mod; 981 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/runtime/os.hpp
rev 12308 : imported patch new_os_guard_for_java_thread.patch1 line changed: 0 ins; 0 del; 1 mod; 978 unchg
This code review page was prepared using /sapmnt/home/d045726/bin/webrev.ksh (vers 25.12-hg+openjdk.java.net).