Proceedings of the 36th International Conference on Software Engineering 2014
DOI: 10.1145/2568225.2568236
|View full text |Cite
|
Sign up to set email alerts
|

CARE: cache guided deterministic replay for concurrent Java programs

Abstract: Deterministic replay tools help programmers debug concurrent programs. However, for long-running programs, a replay tool may generate huge log of shared memory access dependences. In this paper, we present CARE, an application-level deterministic record and replay technique to reduce the log size. The key idea of CARE is logging read-write dependences only at per-thread value prediction cache misses. This strategy records only a subset of all exact read-write dependences, and reduces synchronizations protectin… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
13
0

Year Published

2015
2015
2020
2020

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 21 publications
(13 citation statements)
references
References 44 publications
0
13
0
Order By: Relevance
“…If the current node satisfies the second condition, it is inserted into the previous position of tei nearest , and the current two nodes are merged into a new node (lines [12][13][14][15]). If the current node satisfies the third condition and is closer to tei nearest , it is inserted into the previous position of tei nearest , and the current two nodes are merged into a new node (lines [16][17][18][19][20][21][22][23]. If the current node satisfies the third condition and is closer to tei deped_n , it is inserted into the previous position of tei deped_n (lines 24-26).…”
Section: Backward Refactoring the Context Switch Linked Listmentioning
confidence: 99%
See 1 more Smart Citation
“…If the current node satisfies the second condition, it is inserted into the previous position of tei nearest , and the current two nodes are merged into a new node (lines [12][13][14][15]). If the current node satisfies the third condition and is closer to tei nearest , it is inserted into the previous position of tei nearest , and the current two nodes are merged into a new node (lines [16][17][18][19][20][21][22][23]. If the current node satisfies the third condition and is closer to tei deped_n , it is inserted into the previous position of tei deped_n (lines 24-26).…”
Section: Backward Refactoring the Context Switch Linked Listmentioning
confidence: 99%
“…The reasons are that: (1) multiple threads can access shared memory without any restrictions in concurrent programs, which easily leads to a variety of potential concurrency bugs; (2) concurrency bugs only occur for specific input and thread scheduling, making them difficult to reproduce; and (3) concurrency bugs are difficult to diagnose, and frequent context switches hinder developers from understanding the concurrent program execution trace.Previous studies have proposed many approaches to expose and to detect varieties of concurrency bugs, such as deadlocks, 2,3 data races, 4-9 atomicity violations, 10-12 and order violations. [13][14][15] Besides, a rich body of deterministic record and replay techniques [16][17][18] have been developed to replay concurrency bugs effectively and efficiently. However, few approaches attempt to reason about concurrency bugs.…”
mentioning
confidence: 99%
“…Regarding software-based systems, they can be broadly classified as order-based or search-based. LEAP, [6] Order, [18] and CARE [19] are state-of-the-art order-based solutions that record the exact read-write linkage of shared-memory accesses. They essentially vary in the technique used to minimize contention when recording the order of events: LEAP tracks shared accesses on a per-variable basis, Order traces thread interleavings at the object instance level, and CARE exploits thread local caches to identify the subset of all exact read-write linkages that have to be recorded.…”
Section: Related Workmentioning
confidence: 99%
“…Consequently, if a concurrency bug manifests in the field, the ability to reproduce the bug on the same input can be extremely challenging. This has lead to the design of a number of concurrency bug detection [47,37] and reproduction approaches [16,19]. Also, there has been a significant effort in reducing (or eliminating) the non-determinism by restricting the feasible schedule(s) for a given input.…”
Section: Introductionmentioning
confidence: 99%