Reducing and Eliding Read Barriers for Concurrent Garbage Collectors
I. Rogers. Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, page 5:1--5:5. New York, NY, USA, ACM, (2011)
DOI: 10.1145/2069172.2069177
Abstract
In order for a garbage collector to concurrently move an object while an application mutator thread accesses it, either read or write barriers are necessary. A read barrier places certain invariants on loaded values that allow the garbage collector and mutator to progress in parallel. However, the read barrier is performed on loads and can be viewed as an impediment to the performance of the application threads. This paper builds on the work of a highly efficiency concurrent garbage collector known as the Continuously Concurrent Compacting Collector (C4) which progresses the design of read barriers to create what is known as the Loaded Value Barrier (LVB). This paper's key insight is the dynamic number of LVBs may be dramatically reduced by a compiler using the invariants the LVB provides. The paper describes three examples of this class of transformation, and reasons about their correctness and performance. We are unaware of work describing compiler optimizations to elide read barriers or restructure code to cut their dynamic execution. We detail related work on improving read barrier efficiency.
Description
Reducing and eliding read barriers for concurrent garbage collectors
%0 Conference Paper
%1 Rogers:2011:RER
%A Rogers, Ian
%B Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
%C New York, NY, USA
%D 2011
%I ACM
%K GC Optimization ReadBarrier
%P 5:1--5:5
%R 10.1145/2069172.2069177
%T Reducing and Eliding Read Barriers for Concurrent Garbage Collectors
%X In order for a garbage collector to concurrently move an object while an application mutator thread accesses it, either read or write barriers are necessary. A read barrier places certain invariants on loaded values that allow the garbage collector and mutator to progress in parallel. However, the read barrier is performed on loads and can be viewed as an impediment to the performance of the application threads. This paper builds on the work of a highly efficiency concurrent garbage collector known as the Continuously Concurrent Compacting Collector (C4) which progresses the design of read barriers to create what is known as the Loaded Value Barrier (LVB). This paper's key insight is the dynamic number of LVBs may be dramatically reduced by a compiler using the invariants the LVB provides. The paper describes three examples of this class of transformation, and reasons about their correctness and performance. We are unaware of work describing compiler optimizations to elide read barriers or restructure code to cut their dynamic execution. We detail related work on improving read barrier efficiency.
%@ 978-1-4503-0894-6
@inproceedings{Rogers:2011:RER,
abstract = {In order for a garbage collector to concurrently move an object while an application mutator thread accesses it, either read or write barriers are necessary. A read barrier places certain invariants on loaded values that allow the garbage collector and mutator to progress in parallel. However, the read barrier is performed on loads and can be viewed as an impediment to the performance of the application threads. This paper builds on the work of a highly efficiency concurrent garbage collector known as the Continuously Concurrent Compacting Collector (C4) which progresses the design of read barriers to create what is known as the Loaded Value Barrier (LVB). This paper's key insight is the dynamic number of LVBs may be dramatically reduced by a compiler using the invariants the LVB provides. The paper describes three examples of this class of transformation, and reasons about their correctness and performance. We are unaware of work describing compiler optimizations to elide read barriers or restructure code to cut their dynamic execution. We detail related work on improving read barrier efficiency.},
acmid = {2069177},
added-at = {2014-06-02T17:47:52.000+0200},
address = {New York, NY, USA},
articleno = {5},
author = {Rogers, Ian},
biburl = {https://www.bibsonomy.org/bibtex/2761dd7863bcaa4fb25083a8a0b1b7f81/gron},
booktitle = {Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems},
description = {Reducing and eliding read barriers for concurrent garbage collectors},
doi = {10.1145/2069172.2069177},
interhash = {61608920fbdbde2fed361aa5c9266c6f},
intrahash = {761dd7863bcaa4fb25083a8a0b1b7f81},
isbn = {978-1-4503-0894-6},
keywords = {GC Optimization ReadBarrier},
location = {Lancaster, United Kingdom},
numpages = {5},
pages = {5:1--5:5},
publisher = {ACM},
series = {ICOOOLPS '11},
timestamp = {2014-06-02T17:47:52.000+0200},
title = {Reducing and Eliding Read Barriers for Concurrent Garbage Collectors},
year = 2011
}