Incremental lock-free stack scanning for garbage collection
First Claim
Patent Images
1. A system of incremental lock free stack frame scanning, the system comprising:
- a mutator stack comprising a mutator stack frame, the stack frame comprising a pointer value;
a summary data structure comprising a summary of the mutator stack frame;
a mutator reading the mutator stack frame and creating a summary of the pointer value and inserting the summary of the pointer value into the summary data structure when an atomic insertion operation is successful, the mutator being permitted to read, or modify, or both, the mutator stack, and wherein the mutator inserts the summary into the summary data structure before modifying the contents of the mutator stack frame; and
a garbage collector concurrently reading the mutator stack frame and creating a summary of the pointer and inserting the summary of the pointer into the summary data structure when an atomic insertion operation is successful, the garbage collector being permitted to read the mutator stack.
2 Assignments
0 Petitions
Accused Products
Abstract
Concurrent, incremental, and lock-free stack scanning for garbage collectors is disclosed. This method uses a summary table and return barriers to allow high responsiveness. The method also supports programs that employ fine-synchronization to avoid locks, imposes negligible overhead on program execution, can be used with existing concurrent collectors, and supports the special in-stack references existing in languages such as C#.
43 Citations
20 Claims
-
1. A system of incremental lock free stack frame scanning, the system comprising:
-
a mutator stack comprising a mutator stack frame, the stack frame comprising a pointer value; a summary data structure comprising a summary of the mutator stack frame; a mutator reading the mutator stack frame and creating a summary of the pointer value and inserting the summary of the pointer value into the summary data structure when an atomic insertion operation is successful, the mutator being permitted to read, or modify, or both, the mutator stack, and wherein the mutator inserts the summary into the summary data structure before modifying the contents of the mutator stack frame; and a garbage collector concurrently reading the mutator stack frame and creating a summary of the pointer and inserting the summary of the pointer into the summary data structure when an atomic insertion operation is successful, the garbage collector being permitted to read the mutator stack. - View Dependent Claims (2, 3, 4)
-
-
5. A system comprising;
-
a memory comprising a computer readable storage medium; a processor coupled to the memory; and a garbage collector and a mutator stored in the memory and configured to execute on the processor and concurrently scan a stack comprising stack frames. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method comprising;
-
scanning a stack comprising stack fragments concurrently with a garbage collector and a mutator; updating a summary data structure using an atomic insertion operation initiated by the garbage collector or the mutator, wherein the updating occurs during separate concurrent scans of the stack by the garbage collector and the mutator; permitting the garbage collector to read from the stack; and permitting the mutator to read, or write, or both, to the stack. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification