Stop and Go: Understanding Yieldpoint Behavior

Select |




Print


Lin, Yi; Blackburn, Stephen M.; Wang, Kunshan; Hosking, Tony (Antony); Norrish, Michael

Lin, Yi; Blackburn, Stephen M.; Wang, Kunshan; Hosking, Tony (Antony); Norrish, Michael


2015-06-14


Conference Material


International Symposium on Memory Management


Portland, OR, USA


70--80


Yieldpoints are critical to the implementation of high performance garbage collected languages, yet the design space is not well understood. Yieldpoints allow a running program to be interrupted at well-defined points in its execution, facilitating exact garbage collection, biased locking, on-stack replacement, profiling, and other important virtual machine behaviors. In this paper we identify and evaluate yieldpoint design choices, including previously undocumented but promising designs. One of the designs we identify opens significant new opportunities for very low overhead profiling. We measure the frequency with which yieldpoints are executed and establish a methodology for evaluating the common case execution time overhead. We also measure the median and worst case time-to-yield. We find that Java benchmarks execute about 100M yieldpoints per second, of which about 1/100000 are taken. The average execution time overhead for untaken yieldpoints ranges from 2.3% to 0.3% on modern hardware, depending on the design, and we find that the designs trade off total overhead with worst case time-to-yield. This analysis gives new insight into a critical but overlooked aspect of garbage collector implementation, and identifies a new yieldpoint design with low overhead and new opportunities for very low overhead profiling.


ACM


yieldpoints, safe points, code patching, man- aged code, managed run-time


https://doi.org/10.1145/2754169.2754187


http://conf.researchr.org/home/ismm-2015


Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author. Copyright is held by the author/owner(s). ISMM’15, June 14, 2015, Portland, OR, USA ACM 978-1-4503-3589-8/15/06 http://dx.doi.org/10.1145/10.1145/2754169.2754187


nicta:8594


Lin, Yi; Blackburn, Stephen M.; Wang, Kunshan; Hosking, Tony (Antony); Norrish, Michael. Stop and Go: Understanding Yieldpoint Behavior. In: Michael Bond Editor, editor/s. International Symposium on Memory Management; Portland, OR, USA. ACM; 2015-06-14. 70--80. https://doi.org/10.1145/2754169.2754187



Loading citation data...

Citation counts
(Requires subscription to view)