Impact of garbage collection policies on load stalls on AArch64 in OpenJ9

Thumbnail Image



Journal Title

Journal ISSN

Volume Title


University of New Brunswick


The Java Virtual Machine (JVM) is used on many devices worldwide including the Reduced Instruction Set Computer (RISC) architecture ARM AArch64. However, AArch64—like many other modern architectures—suffers from load stalls, i.e., the delays when the Central Processing Unit (CPU) is waiting for data to be fetched from memory. This work evaluates the impact of Garbage Collection (GC) algorithms on load stalls as the algorithms can change the position of objects, which could increase locality. To analyze this impact, an algorithm to classify load stalls in Just-In-Time (JIT) compiled code is developed and, using a wide range of benchmarks, data is collected from performance counters. Comparing the obtained values between different GC algorithms and collection methods reveals that the impact of object position changes on cache performance is not as high as expected. Furthermore, the observed stalls indicate that the out-of-order pipeline is not able to keep up with the memory requests.