RFR: 8265756: AArch64: initialize memory allocated for locals according to Windows AArch64 stack page growth requirement in template interpreter

Aleksei Voitylov avoitylov at openjdk.java.net
Thu Apr 22 16:01:53 UTC 2021


Hi,

please review this PR which fixes several JCK test failures on Windows AArch64. On Windows AArch64, the order in which the pages are touched during stack allocation, matters. Here is a quote: "Functions that allocate 4k or more worth of stack must ensure that each page prior to the final page is touched in order" [1]. Since on Linux and Mac the order does not matter, the suggested fix reverses the order in which memory pages are touched during stack allocation for locals in template interpreter for all platforms.

Testing: JCK, jtreg, newly developed regression test on Linux AArch64, Windows AArch64, Mac AArch64, Pre-submit tests (which includes the newly developed test).

[1] https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-160#stack

-------------

Commit messages:
 - add reproducer to jtreg
 - JDK-8265756: AArch64: initialize memory allocated for locals according to Windows AArch64 stack page growth requirement in template interpreter

Changes: https://git.openjdk.java.net/jdk/pull/3633/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3633&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8265756
  Stats: 112 lines in 3 files changed: 105 ins; 5 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3633.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3633/head:pull/3633

PR: https://git.openjdk.java.net/jdk/pull/3633


More information about the hotspot-dev mailing list