Exploring garbage collection with haswell hardware transactional memory

Intel's latest processor microarchitecture, Haswell, adds support for a restricted form of transactional memory to the x86 programming model. We explore how this can be applied to three garbage collection scenarios in Jikes RVM: parallel copying, concurrent copying and bitmap marking. We demonstrate gains in concurrent copying speed over traditional synchronisation mechanisms of 48-101%. We also show how similar but portable performance gains can be achieved through software transactional memory techniques. We identify the architectural overhead of capturing sufficient work for transactional execution as a major stumbling block to the effective use of transactions in the other scenarios.

[1]  Chris Ryder,et al.  A study of Java object demographics , 2008, ISMM '08.

[2]  Michael Wolf,et al.  The Collie: a wait-free compacting collector , 2012, ISMM '12.

[3]  Laurent Amsaleg,et al.  Garbage collection for a client-server persistent object store , 1999, TOCS.

[4]  Jeannette M. Wing,et al.  Concurrent atomic garbage collection , 1990 .

[5]  Lieven Eeckhout,et al.  Java performance evaluation through rigorous replay compilation , 2008, OOPSLA.

[6]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[7]  Xi Yang,et al.  Barriers reconsidered, friendlier still! , 2012, ISMM '12.

[8]  Fridtjof Siebert Limits of parallel marking garbage collection , 2008, ISMM '08.

[9]  Urs Hölzle,et al.  A Study of the Allocation Behavior of the SPECjvm98 Java Benchmark , 1999, ECOOP.

[10]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[11]  Tatiana Shpeisman,et al.  Concurrent GC leveraging transactional memory , 2008, PPOPP.

[12]  Stephen M. Blackburn,et al.  TMOS: A Transactional Garbage Collector , 2000, POS.

[13]  J. Eliot B. Moss,et al.  Sapphire: copying garbage collection without stopping the world , 2003, Concurr. Comput. Pract. Exp..

[14]  Hans-Juergen Boehm,et al.  Garbage collection in an uncooperative environment , 1988, Softw. Pract. Exp..

[15]  Richard E. Jones,et al.  The Garbage Collection Handbook: The art of automatic memory management , 2011, Chapman and Hall / CRC Applied Algorithms and Data Structures Series.

[16]  Fred R. M. Barnes,et al.  An Evaluation of Intel's Restricted Transactional Memory for CPAs , 2013, CPA.

[17]  Michael Wolf,et al.  C4: the continuously concurrent compacting collector , 2011, ISMM '11.

[18]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[19]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[20]  Bowen Alpern,et al.  Implementing jalapeño in Java , 1999, OOPSLA '99.

[21]  Richard Jones,et al.  Proceedings of the 7th international symposium on Memory management , 1998, ISMM 2008.

[22]  Barry Hayes,et al.  Using key object opportunism to collect old objects , 1991, OOPSLA '91.

[23]  Tomas Kalibera,et al.  Rigorous benchmarking in reasonable time , 2013, ISMM '13.