Deadlock resolution through lock requeuing
First Claim
1. A method for resolving a deadlock in a computing system, comprising:
- identifying a first request for an exclusive lock that is associated with a resource, the first request forming part of a deadlock in which the deadlock cannot be resolved unless the first request is granted;
allowing a period of time for the first request to be granted;
if the first request cannot be granted during the period of time, then identifying whether a second request for a shared lock exists behind the first request in a lock request queue; and
reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the present configuration of locks allows the second request to be granted, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for using a requeueing procedure to resolve deadlocks in a computing system is disclosed. A request for a resource may be requeued after a designated period of time or wait cycles if it is blocked from being granted. For example, a request for exclusive ownership of a resource could be requeued if it cannot be granted within an appropriate period of time. These types of requests are requeued to allow other requests for the same resource to move ahead in the wait queue. This allows other grantable requests behind the blocked request to be immediately granted. Using this approach, it is possible that allowing the other requests behind the timed-out request to move ahead in the queue will set off a chain reaction of accesses to resources which will clear the deadlock situation that initially causes the requeued request(s) to be blocked.
207 Citations
30 Claims
-
1. A method for resolving a deadlock in a computing system, comprising:
-
identifying a first request for an exclusive lock that is associated with a resource, the first request forming part of a deadlock in which the deadlock cannot be resolved unless the first request is granted;
allowing a period of time for the first request to be granted;
if the first request cannot be granted during the period of time, then identifying whether a second request for a shared lock exists behind the first request in a lock request queue; and
reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the present configuration of locks allows the second request to be granted, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for resolving a deadlock in a computing system, comprising:
-
identifying a first request that is associated with a resource, the first request forming part of a deadlock;
allowing a period of time for the first request to be granted;
if the first request cannot be granted during the period of time, then identifying whether a second request exists behind the first request in a lock request queue; and
reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the reordering action allows the second request to be granted ahead of the first request, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer program product comprising a computer usable medium having executable code to execute a process for resolving a deadlock in a computing system, the process comprising the steps of:
-
identifying a first request that is associated with a resource, the first request forming part of a deadlock;
allowing a period of time for the first request to be granted;
if the first request cannot be granted during the period of time, then identifying whether a second request exists behind the first request in a lock request queue; and
reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the reordering action allows the second request to be granted ahead of the first request, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted.
-
-
28. A system for resolving a deadlock in a computing system, comprising:
-
means for identifying a first request that is associated with a resource, the first request forming part of a deadlock;
means for allowing a period of time for the first request to be granted;
means for identifying whether a second request exists behind the first request in a lock request queue if the first request cannot be granted during the period of time; and
means for reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the reordering action allows the second request to be granted ahead of the first request, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted.
-
-
29. A computer program product comprising a computer usable medium having executable code to execute a process for resolving a deadlock in a computing system, the process comprising the steps of:
-
identifying a first request for an exclusive lock that is associated with a resource, the first request forming part of a deadlock in which the deadlock cannot be resolved unless the first request is granted;
allowing a period of time for the first request to be granted;
if the first request cannot be granted during the period of time, then identifying whether a second request for a shared lock exists behind the first request in a lock request queue; and
reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the present configuration of locks allows the second request to be granted, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted.
-
-
30. A system for resolving a deadlock in a computing system, comprising:
-
means for identifying a first request for an exclusive lock that is associated with a resource, the first request forming part of a deadlock in which the deadlock cannot be resolved unless the first request is granted;
means for allowing a period of time for the first request to be granted;
means for identifying whether a second request for a shared lock exists behind the first request in a lock request queue if the first request cannot be granted during the period of time; and
means for reordering the lock request queue to place the second request ahead of the first request in the lock request queue, wherein the present configuration of locks allows the second request to be granted, and the granting of the second request initiates a chain of resource accesses that resolves the deadlock and allows the first request to be granted.
-
Specification