IP Library Granted Patent US 7,975,114
Granted Patent B2
US 7,975,114 · App. 12/151,430 · Granted Jul 5, 2011

Memory management based on concurrent garbage collection using safepoints

Assignee: Azul Systems, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,975,114
App. No.
12/151,430
Granted
Jul 5, 2011
Kind
B2
Abstract

Managing memory comprises execute a mutator comprising a plurality of mutator threads, and concurrently execute a garbage collector. Each of the plurality of mutator threads is separately stopped and notified, and is interrupted at a respective safepoint. In some cases executing the garbage collector includes remapping one or more references to one or more objects in an existing from-space, releasing the existing from-space, relocating one or more live objects that currently reside in a new from-space to one or more corresponding new locations, and identifying a set of one or more candidate pages suitable for forming next from-space during next garbage collection iteration.

Claims (34)

1. A system comprising:

one or more processors configured to:

execute a mutator comprising a plurality of mutator threads; and

concurrently execute a garbage collector, including separately stopping and notifying each of the plurality of mutator threads, and interrupting each of the plurality of mutator threads at a respective safepoint; and

a memory coupled to the one or more processors, configured to provide the one or more processors with instructions.

2. The system of claim 1 , wherein executing the garbage collector comprises:

remapping one or more references to one or more objects in an existing from-space;

releasing the existing from-space;

relocating one or more live objects that currently reside in a new from-space to one or more corresponding new locations; and

identifying a set of one or more candidate pages suitable for forming next from-space during next garbage collection iteration.

3. The system of claim 2 , wherein executing the garbage collector further comprises marking all live objects in memory.

4. The system of claim 2 , wherein the one or more references are remapped according to one or more forwarding pointers associated with the one or more objects.

5. The system of claim 2 , wherein executing the garbage collector further comprises placing forwarding pointers on the existing from-space copies of the live objects that are relocated.

6. The system of claim 2 , wherein the new from-space includes one or more sparsely populated pages.

7. The system of claim 2 , wherein the next from-space includes one or more sparsely populated pages, and relocating the one or more live objects includes relocating objects into compacted mostly-contiguous areas.

8. The system of claim 2 , wherein the existing from-space includes one or more candidate pages identified in a previous garbage collection iteration.

9. The system of claim 2 , wherein executing the garbage collector further comprises updating page population statistics.

10. The system of claim 2 , wherein executing the garbage collector further comprises updating page population statistics, and the set of one or more candidate pages are identified based at least in part on the page population statistics.

11. The system of claim 1 , wherein the mutator maintains a set of one or more mutator invariants.

12. The system of claim 1 , wherein the mutator maintains a set of one or more mutator invariants to prevent concurrency error.

13. The system of claim 2 , wherein the mutator maintains a set of one or more mutator invariants to detect whether a loaded reference has not yet been marked through.

14. The system of claim 2 , wherein the mutator maintains a set of one or more mutator invariants to detect whether a reference points to a memory object in the existing from-space.

15. The system of claim 2 , wherein the mutator maintains a set of one or more mutator invariants to detect whether a reference points to a memory object in the next from-space.

16. The system of claim 1 , wherein the mutator maintains a set of one or more mutator invariants by using a Loaded Value Barrier (LVB).

17. The system of claim 1 , wherein the mutator maintains a set of one or more mutator invariants by using a Loaded Value Barrier (LVB), and the LVB triggers when a load operation is attempted on a reference that has not been marked through.

18. The system of claim 1 , wherein the mutator maintains a set of one or more mutator invariants by using an Access Barrier (AB).

19. The system of claim 1 , wherein each mutator thread is configured to clean its corresponding local registers and stack to remove reference that have not yet been marked through or have not yet been logged for later marking.

20. The system of claim 1 , placing forwarding pointers on the one or more live objects that are relocated.

21. A method of managing memory, comprising:

executing a mutator comprising a plurality of mutator threads; and

executing a garbage collector concurrently, including separately stopping and notifying each of the plurality of mutator threads, and interrupting each of the plurality of mutator threads at a respective safepoint.

22. A computer program product for managing memory, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

executing a mutator comprising a plurality of mutator threads; and

executing a garbage collector concurrently, including separately stopping and notifying each of the plurality of mutator threads, and interrupting each of the plurality of mutator threads at a respective safepoint.

Assignments (7)
RELEASE OF SECURITY INTERESTS IN PATENTS RECORDED AT REEL/FRAME 052293/0121 Recorded Dec 3, 2025
From: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
To: AZUL SYSTEMS, INC.
Reel/Frame 073466/0064 →
SECURITY INTEREST Recorded Dec 3, 2025
From: AZUL SYSTEMS, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073828/0083 →
SECURITY INTEREST Recorded Apr 2, 2020
From: AZUL SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 052293/0121 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: AZUL SYSTEMS, INC.
Reel/Frame 052293/0869 →
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: AZUL SYSTEMS, INC.
Reel/Frame 048411/0138 →
SECURITY INTEREST Recorded Mar 1, 2016
From: AZUL SYSTEMS, INC.
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 037959/0694 →
SECURITY AGREEMENT Recorded Nov 18, 2009
From: AZUL SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 023538/0316 →
Continuity (2)
Continuation 11031015 · Jan 7, 2005
Related Publication 20080281888A1 · Nov 13, 2008