[aarch64-port-dev ] RFR: JDK-8169177 Aarch64: SIGSEGV when "-XX:+ZeroTLAB" is specified along with GC options
Kavitha Natarajan
kavitha.natarajan at linaro.org
Fri Nov 11 17:21:45 UTC 2016
Hi Derek,
Thanks a lot for your review. MacroAssembler::zero_words() seems more
optimized than MacroAssembler::zero_memory() as you suggested. I will send
the modified code after testing.
Regards,
Kavitha
On 11 November 2016 at 03:44, White, Derek <Derek.White at cavium.com> wrote:
> Hi Kavitha,
>
> That's a great find!
>
> My major comment is that the tlab zeroing code should use the macro
> MacroAssembler::zero_words() already in macroAssembler_aarch64.cpp.
> zero_words has code to quickly handle zeroing large blocks (using DC ZVA if
> enabled), and TLABS are relatively large (at least 2KB).
>
> I have an additional question (for the world) if we really need
> MacroAssembler::zero_memory(), but that can be set aside for a later fix if
> needed.
>
> Thanks,
>
> - Derek
>
> Details:
> -------------------------------------
> c1_MacroAssembler_aarch64.cpp:
> - What happened to the assertions in C1_MacroAssembler::initialize_
> body()?
> - Keep MacroAssembler::zero_memory() here.
> - Think about calling zero_words instead.
>
> c1_MacroAssembler_aarch64.hpp
> - Don't remove decl of zero_memory() (unless you decide to change all
> callers to use zero_words instead).
>
> c1_Runtime1_aarch64.cpp:
> - OK
>
> macroAssembler_aarch64.cpp
> - In MacroAssembler::tlab_refill(), call zero_words() instead of
> zero_memory().
> -zero_words has optimized cases for large zeroing.
> - Don't move zero_memory here.
>
> macroAssembler_aarch64.hpp:
> - Don't add decl for zero_memory().
>
> -----Original Message-----
> From: aarch64-port-dev [mailto:aarch64-port-dev-bounces at openjdk.java.net]
> On Behalf Of Kavitha Natarajan
> Sent: Thursday, November 10, 2016 6:30 AM
> To: aarch64-port-dev at openjdk.java.net; hotspot-compiler-dev at openjdk.
> java.net
> Subject: [aarch64-port-dev ] RFR: JDK-8169177 Aarch64: SIGSEGV when
> "-XX:+ZeroTLAB" is specified along with GC options
>
> Hi,
>
> The following are the jtreg test cases that fail with SIGSEGV on aarch64
> when "-XX:+ZeroTLAB" is specified along with GC options:
>
> hotspot/test/compiler/stringopts/TestStringObjectInitialization.java
> hotspot/test/gc/TestSystemGC.java
> hotspot/test/gc/arguments/TestAlignmentToUseLargePages.java
> hotspot/test/gc/cms/TestBubbleUpRef.java
> hotspot/test/gc/metaspace/TestMetaspacePerfCounters.java
> hotspot/test/gc/parallel/TestDynShrinkHeap.java
> hotspot/test/gc/stress/TestGCOld.java
>
> Bug fix for JDK-8086053
> <https://bugs.openjdk.java.net/browse/JDK-8086053> (Address
> inconsistencies regarding ZeroTLAB) fixes similar issue on x86 and sparc.
> This is now ported to aarch64 and the above test cases now pass on aarch64
> as well.
>
> Below is the webrev for the changes:
>
> http://people.linaro.org/~kavitha.natarajan/8169177/webrev.00/
>
> Can someone please review ?
>
> Thanks,
> Kavitha
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20161111/69f41d7b/attachment.html>
More information about the hotspot-compiler-dev
mailing list