RFR(L): 8220051: Remove global safepoint code

Robbin Ehn robbin.ehn at oracle.com
Fri Mar 20 11:11:13 UTC 2020


Hi Dan,

On 2020-03-19 21:39, Daniel D. Daugherty wrote:
> Hi Robbin!
> 
> On 3/19/20 8:45 AM, Robbin Ehn wrote:
>> On 2020-03-19 13:44, Robbin Ehn wrote:
>>> Hi all, please build, test and review.
>>>
>>> We removed (obsoleted) the flag ThreadLocalHandshakes in JDK 14.
>>> Any platform defining THREAD_LOCAL_POLL can only use per thread poll.
>>> Since all platforms now define THREAD_LOCAL_POLL the global poll code 
>>> is dead.
>>> Let's remove it!
>>>
>>> Issue: https://bugs.openjdk.java.net/browse/JDK-8220051
>>> Changeset: http://cr.openjdk.java.net/~rehn/8220051/v1/webrev/index.html
> 
> Lots of files in this one. I'm gonna try to review these files
> in groups that make sense my warped mind... :-)
> 
> 
> Thumbs up on the code review.

Thanks alot!

> 
> I did my usual crawl thru review, but this is a lot of files so
> that boring detail is below...
> 
> I'm not entirely sure of the roll played by 
> SafepointMechanism::_polling_page,
> but that's probably because that didn't change except for the location of
> the _polling_page field itself.
> 
> With this kind of a change, I think you also want to get some Tier[6-8]
> test cycles in since that's where the stress tests really go to town...

Ok, testing!

Thanks, Robbin

> 
> Dan
> 
> 
> src/hotspot/share/runtime/safepointMechanism.hpp
>      No comments.
> 
> src/hotspot/share/runtime/safepointMechanism.inline.hpp
>      No comments.
> 
> src/hotspot/share/runtime/safepointMechanism.cpp
>      old L73-81: Of course, now I'm wondering where the polling_page is 
> setup...
>      Since it appears that we still have a global polling page for 
> non-JavaThreads,
>      but I gotta read on...
> 
>      I went to the bug to see if it would help my confusion, but the
>      bug has no description. That should be fixed.
> 
>      Update: The _polling_page is setup here:
> 
>      L54:     char* bad_page  = polling_page;
>      L57:     os::protect_memory(bad_page,  page_size, os::MEM_PROT_NONE);
>      L61:     _polling_page = (address)(bad_page);
> 
>      And for some reason, os/aix/safepointMechanism_aix.cpp has its own
>      copy of this logic...
> 
> src/hotspot/share/runtime/safepoint.cpp
>      No comments.
> 
> src/hotspot/share/runtime/os.hpp
>      Okay... no more OS interface to the polling page... gotta read on...
> 
> src/hotspot/share/runtime/biasedLocking.cpp
>      No comments.
> 
> src/hotspot/share/runtime/handshake.cpp
>      No comments.
> 
> src/hotspot/share/runtime/sweeper.cpp
>      No comments.
> 
> src/hotspot/share/runtime/thread.cpp
>      No comments.
> 
> src/hotspot/share/utilities/vmError.cpp
>      No comments.
> 
> 
> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
>      No comments.
> 
> src/hotspot/share/gc/z/zMark.cpp
>      No comments.
> 
> src/hotspot/share/opto/callnode.cpp
>      No comments.
> 
> src/hotspot/share/opto/machnode.hpp
>      No comments.
> 
> src/hotspot/share/opto/machnode.cpp
>      No comments.
> 
> src/hotspot/share/opto/parse1.cpp
>      No comments.
> 
> src/hotspot/share/aot/aotCodeHeap.cpp
>      No comments.
> 
> src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java 
> 
>      No comments.
> 
> src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/MarkProcessor.java 
> 
>      No comments.
> 
> 
> src/hotspot/os/bsd/os_bsd.cpp
>      No comments.
> 
> src/hotspot/os/linux/os_linux.cpp
>      No comments.
> 
> src/hotspot/os/solaris/os_solaris.cpp
>      No comments.
> 
> src/hotspot/os/windows/os_windows.cpp
>      No comments.
> 
> 
> src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp
>      No comments.
> 
> src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp
>      No comments.
> 
> src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
>      No comments.
> 
> src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.cpp
>      No comments.
> 
> src/hotspot/os_cpu/solaris_x86/os_solaris_x86.cpp
>      No comments.
> 
> 
> src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp
>      No comments.
> 
> src/hotspot/cpu/sparc/globalDefinitions_sparc.hpp
>      No comments.
> 
> src/hotspot/cpu/sparc/interp_masm_sparc.cpp
>      No comments.
> 
> src/hotspot/cpu/sparc/macroAssembler_sparc.cpp
>      No comments.
> 
> src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp
>      No comments.
> 
> src/hotspot/cpu/sparc/sparc.ad
>      No comments.
> 
> src/hotspot/cpu/sparc/templateTable_sparc.cpp
>      No comments.
> 
> 
> src/hotspot/cpu/x86/assembler_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/assembler_x86.hpp
>      No comments.
> 
> src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/globalDefinitions_x86.hpp
>      No comments.
> 
> src/hotspot/cpu/x86/interp_masm_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/jvmciCodeInstaller_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/macroAssembler_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/nativeInst_x86.hpp
>      No comments.
> 
> src/hotspot/cpu/x86/relocInfo_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/templateTable_x86.cpp
>      No comments.
> 
> src/hotspot/cpu/x86/x86_32.ad
>      No comments.
> 
> src/hotspot/cpu/x86/x86_64.ad
>      No comments.
> 
> 
> src/hotspot/os/aix/os_aix.cpp
>      No comments.
> 
> src/hotspot/os/aix/safepointMechanism_aix.cpp
>      No comments.
> 
> src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp
>      No comments.
> 
> src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
>      No comments.
> 
> src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp
>      No comments.
> 
> src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
>      No comments.
> 
> src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp
>      No comments.
> 
> 
> src/hotspot/cpu/aarch64/aarch64.ad
>      No comments.
> 
> src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
>      No comments.
> 
> src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp
>      No comments.
> 
> src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp
>      No comments.
> 
> src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
>      No comments.
> 
> src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp
>      No comments.
> 
> src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp
>      No comments.
> 
> src/hotspot/cpu/arm/arm.ad
>      No comments.
> 
> src/hotspot/cpu/arm/globalDefinitions_arm.hpp
>      No comments.
> 
> src/hotspot/cpu/arm/interp_masm_arm.cpp
>      No comments.
> 
> src/hotspot/cpu/arm/macroAssembler_arm.cpp
>      No comments.
> 
> src/hotspot/cpu/arm/sharedRuntime_arm.cpp
>      No comments.
> 
> 
> src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp
>      No comments.
> 
> src/hotspot/cpu/ppc/globalDefinitions_ppc.hpp
>      No comments.
> 
> src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp
>      No comments.
> 
> src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
>      No comments.
> 
> src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp
>      No comments.
> 
> src/hotspot/cpu/ppc/nativeInst_ppc.hpp
>      No comments.
> 
> src/hotspot/cpu/ppc/ppc.ad
>      No comments.
> 
> src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp
>      No comments.
> 
> src/hotspot/cpu/ppc/templateTable_ppc_64.cpp
>      No comments.
> 
> 
> src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp
>      No comments.
> 
> src/hotspot/cpu/s390/globalDefinitions_s390.hpp
>      No comments.
> 
> src/hotspot/cpu/s390/interp_masm_s390.cpp
>      No comments.
> 
> src/hotspot/cpu/s390/macroAssembler_s390.cpp
>      No comments.
> 
> src/hotspot/cpu/s390/s390.ad
>      No comments.
> 
> src/hotspot/cpu/s390/sharedRuntime_s390.cpp
>      No comments.
> 
> src/hotspot/cpu/s390/templateTable_s390.cpp
>      No comments.
> 
> 
> src/hotspot/cpu/zero/globalDefinitions_zero.hpp
>      No comments.
> 
> 
>>>
>>> I have built fastdebug:
>>> linux-aarch64
>>> linux-arm32
>>> linux-ppc64le
>>> linux-s390x
>>> linux-x86_64-zero
>>> linux-x86_64 (no PCH)
>>> linux-x86_64 (slowdebug) (no PCH)
>>> linux-x86
>>> osx-x86_64
>>> windows-x86_64
>>> solaris-sparcv9
>>>
>>> Tested t1-5:
>>> linux-x86_64
>>> osx-x86_64
>>> windows-x86_64
>>> solaris-sparcv9
>>>
>>> Manually:
>>> linux-aarch64
>>> linux-x86_64-zero
>>>
>>> Any extra help building and testing is appreciated, especially on 
>>> arm32, ppc64le, s390x.
>>>
>>> Thanks, Robbin
> 


More information about the hotspot-dev mailing list