Work stealing for concurrent marking garbage collection with finger pointer
AssigneeInternational Business Machines Corporation
InventorsMichihiro Horie, Kazunori Ogata
Life of this patent
Estimating the term…
Abstract
A computer-implemented method, system, and computer program product are provided. The approach includes popping a first task from a queue of a garbage collection thread. The approach also includes identifying a second task from the popped first task, where the second task is associated with a bit of a bitmap and the bit is located at a location within the bitmap that has not yet been passed by a finger pointer. The approach also includes pushing the second task to the queue of the garbage collection thread.
Claims25
A computer-implemented method comprising:
- popping a first task from a queue of a garbage collection thread;
- identifying a second task from the popped first task, wherein:
- the second task is associated with a bit of a bitmap;
- and
- the bit is located at a location within the bitmap that has not yet been passed by a finger pointer;
- and
- pushing the second task to the queue of the garbage collection thread.
A computer-implemented method comprising:
- popping a first task from a queue of a garbage collection thread;
- identifying a second task and a third task from the popped first task, wherein:
- the second task is associated with a first bit of a bitmap;
- the first bit is located at a first location within the bitmap that has not yet been passed by a finger pointer;
- the third task is associated with a second bit of the bitmap;
- and
- the second bit is located at a second location within the bitmap that has been passed by the finger pointer;
- pushing the third task to the queue of the garbage collection thread;
- and
- determining whether a first number of tasks in the queue of the garbage collection thread is equal to or smaller than a first threshold number of tasks.
A computer program product comprising:
- one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising:
- program instructions to popping a first task from a queue of a garbage collection thread;
- program instructions to identify a second task from the popped first task, wherein:
- the second task is associated with a bit of a bitmap;
- and
- the bit is located at a location within the bitmap that has not yet been passed by a finger pointer;
- and
- program instructions to push the second task to the queue of the garbage collection thread.
A computer program product comprising:
- one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising:
- program instructions to pop a first task from a queue of a garbage collection thread;
- program instructions to identify a second task and a third task from the popped first task, wherein:
- the second task is associated with a first bit of a bitmap;
- the first bit is located at a first location within the bitmap that has not yet been passed by a finger pointer;
- the third task is associated with a second bit of the bitmap;
- and
- the second bit is located at a second location within the bitmap that has been passed by the finger pointer;
- program instructions to push the third task to the queue of the garbage collection thread;
- program instructions to determine whether a first number of tasks in the queue of the garbage collection thread is equal to or smaller than a first threshold number of tasks.
A computer system comprising:
- one or more computer processors, including one or more threads, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:
- program instructions to popping a first task from a queue of a garbage collection thread;
- program instructions to identify a second task from the popped first task, wherein:
- the second task is associated with a bit of a bitmap;
- and
- the bit is located at a location within the bitmap that has not yet been passed by a finger pointer;
- and
- program instructions to push the second task to the queue of the garbage collection thread.
Dependencies are inferred from the claim text.