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