Lock Dependency Graph for Inter-Processor Interrupt Deadlocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing deadlock detection methods in computer systems are limited in handling complex processor deadlocks, particularly in modeling and recording lock dependency graphs, as they fail to effectively capture restrictions on processor access such as disabling interrupts and inter-processor interrupts with synchronous waiting.

Innovation Solution

The method involves modeling and storing locking primitive information in a lock dependency graph for restrictions like disabling interrupts and sending inter-processor interrupts with synchronous waiting, treating these actions as locking primitives to predict and detect deadlocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional locking primitives are used in lock dependency graph, then the graph can track traditional locks, but it cannot detect deadlocks involving interrupt disabling or inter-processor interrupts

Engineering Contradiction:
Improvedeadlock detection capabilityVSAvoidcoverage of processor access restrictions
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent extends the lock dependency graph to handle multiple types of processor access restrictions uniformly. By treating interrupt disabling and inter-processor interrupts as locking primitives equivalent to traditional locks, the system achieves universal deadlock detection across diverse synchronization mechanisms. The graph structure remains the same, but now accommodates conventional locks, interrupt disable regions, and IPI operations through a unified representation framework.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces new parameters and attributes to the lock dependency graph to represent non-traditional locking behaviors. Specifically, it adds parameters to track interrupt state (enabled/disabled) and IPI synchronization status, transforming the graph's capability to model these operations. This parameter extension allows the existing graph structure to detect deadlocks involving processor access restrictions without fundamental architectural changes.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If the lock dependency graph is extended to model interrupt disabling and IPI operations, then deadlock detection improves, but the complexity of the graph increases

Engineering Contradiction:
Improvedeadlock detection accuracyVSAvoidlock dependency graph structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the representation of processor access restrictions into distinct locking primitive types within the lock dependency graph. Each type (conventional lock, interrupt disable, IPI operation) is represented as a separate node or edge type with specific attributes. This segmentation allows the graph to handle complexity through structured classification rather than monolithic representation, making the system manageable while maintaining comprehensive deadlock detection.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer of abstraction between the hardware-level processor operations and the software-level deadlock detection. By defining a standardized interface that maps interrupt disabling and IPI operations to locking primitive concepts, the system mediates between these different operational domains. This intermediary representation simplifies the graph structure by providing a common language for diverse synchronization mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10579441B2Detecting deadlocks involving inter-processor interrupts
Publication Date: 2020.03.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10579441B2 patent drawing
  • US10579441B2 patent drawing

AI summary

Creating, maintaining and using a lock dependency graph in a way that includes the following steps: (i) acquiring a first restriction on processor access in a multi-processor computer system; (ii) modeling the first restriction as first locking primitive information; and (iii) storing data corresponding to the first locking primitive information in a lock dependency graph. The first restriction on processor access is one of the following two types: (i) disabling the interrupts on a given processor; and/or (ii) sending inter-processor interrupts with synchronous waiting from one processor to another (including itself).