Recursive Spinlock with Recursion Counter for SMP Livelock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional spinlocks do not support recursive locking, leading to livelock situations when attempting to lock a spinlock already held by a task or Interrupt Service Routine (ISR), which is a limitation in porting older software to Symmetric Multiprocessor (SMP) architectures.

Innovation Solution

Implementing a recursive spinlock system that stores a recursion level in memory, allowing for incremental acquisition and release, and using a software wrapper to support recursive locks, ensuring safe and efficient locking and unlocking operations without causing livelock or deadlock scenarios.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a conventional spinlock is used on SMP architectures, then efficient mutual exclusion is achieved, but recursive locking capability is lost causing livelock situations

Engineering Contradiction:
Improverecursive locking capabilityVSAvoidlivelock situation
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent implements recursive spinlock capability by nesting a recursion counter variable within the spinlock data structure. When a task attempts to acquire the spinlock, the system checks if the task already holds the lock by examining the owner field, and if so, increments the recursion counter instead of causing a livelock. This nested structure allows the spinlock to contain state information about recursive acquisition depth.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent introduces an intermediary recursion counter mechanism that mediates between the spinlock acquisition and release operations. This counter acts as a buffer that tracks the depth of recursive locking, allowing the system to differentiate between initial acquisition and recursive calls. The intermediary prevents the harmful livelock by providing a controlled state transition path for recursive lock attempts.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If spinlocks are held until explicitly released, then efficient short-term blocking is achieved, but recursive calls by the same task cause livelock

Engineering Contradiction:
Improvelocking efficiencyVSAvoidrecursive call safety
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback by continuously monitoring the recursion counter value during spinlock operations. When a task attempts to acquire the lock, the system provides feedback about the current recursion depth. This feedback mechanism allows the spinlock to adapt its behavior - incrementing the counter for recursive calls by the same task versus granting exclusive access to different tasks. The release operation also uses feedback by checking the counter value to determine when to actually release the lock.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent makes the spinlock dynamic by allowing its ownership state to change based on the recursion depth. The spinlock transitions from a static exclusive state to a dynamic state where the same task can hold the lock multiple times with different recursion levels. This dynamic behavior is controlled by the owner field and recursion counter, which adjust the lock's accessibility based on the current task's acquisition history.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If a recursion counter is added to support recursive locking, then recursive spinlock capability is enabled, but device complexity increases

Engineering Contradiction:
Improverecursive spinlock supportVSAvoidspinlock data structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges the recursion counter and owner tracking fields directly into the existing spinlock data structure rather than creating separate mechanisms. By combining these functionality into a unified structure, the patent reduces overall system complexity compared to having separate recursive lock management systems. The merged structure allows atomic operations to manage both ownership and recursion depth simultaneously.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent makes the spinlock data structure universal by designing it to handle both traditional exclusive locking and recursive locking through the same structure. The recursion counter and owner field serve multiple functions: tracking ownership, measuring recursion depth, and controlling release semantics. This multi-functionality eliminates the need for separate data structures for different locking modes.

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

Data Source

PatentUS10310914B2Methods and systems for recursively acquiring and releasing a spinlock
Publication Date: 2019.06.04 CIENA CORP
  • US10310914B2 patent drawing
  • US10310914B2 patent drawing
  • US10310914B2 patent drawing

AI summary

A computer-implemented method for a recursive spinlock includes storing a recursion level for the recursive spinlock in memory; responsive to a request to acquire the recursive spinlock by a process, performing one of (i) acquiring the recursive spinlock if not presently held by the process and incrementing the recursion level and (ii) incrementing the recursion level if the recursive spinlock is presently held by the process; and responsive to a request to release the recursive spinlock by the process, decrementing the recursion level and releasing the recursive spinlock if the recursion level is zero. The recursive spinlock can be implemented in a software wrapper used with existing software which supports recursive locks and the recursive spinlock is used in place of the recursive locks in the existing software. The computer-implemented method can be performed on a Symmetric Multiprocessor (SMP) hardware system.