Thread Handoff Mechanism for Multiprocessor Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multiprocessor systems face performance throughput issues due to the mechanism of using run queues to manage runnable threads, particularly when processors are idle.

Innovation Solution

Implementing a mechanism where a scheduler identifies runnable threads and transfers them directly to idle processors, bypassing the local run queue, by using a handoff state variable to indicate readiness and manage thread allocation efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If threads are placed on run queues for management, then thread scheduling is simplified, but performance throughput deteriorates due to idle processor waiting time

Engineering Contradiction:
Improvethread scheduling managementVSAvoidperformance throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the thread management process into two distinct paths: the traditional run queue path for general thread scheduling, and a direct handoff path for threads ready to execute on idle processors. This segmentation allows the system to bypass the run queue bottleneck for specific thread-handoff scenarios while maintaining the run queue mechanism for overall thread management, thereby resolving the contradiction between simplified scheduling and performance throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the direct handoff path with processor state checking) between the thread creation/scheduling system and the processor execution unit. This intermediary allows threads to be directly transferred to idle processors without going through the run queue, effectively mediating between the scheduling simplicity requirement and the performance throughput requirement.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If threads wait in run queues for processor availability, then processor allocation is centralized, but processor utilization deteriorates with idle processors

Engineering Contradiction:
Improveprocessor allocation managementVSAvoidprocessor utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements preliminary action by checking processor idle status before thread placement. When a processor is identified as idle, the system proactively establishes a direct handoff path for threads, preventing the thread from waiting in the run queue. This preliminary identification and preparation of processor status resolves the contradiction by maintaining centralized allocation management while preventing processor idle time.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the run queue mechanism is used for thread management, then thread scheduling is standardized, but context switching frequency increases

Engineering Contradiction:
Improvethread scheduling flexibilityVSAvoidcontext switching time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent extracts the thread handoff operation from the traditional run queue mechanism. By removing the run queue placement step for threads destined for idle processors, the system eliminates the associated context switching overhead and lock acquisition delays. This extraction maintains standardized scheduling for threads that require it while reducing context switching time for direct handoff scenarios.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8032884B2Thread hand off
Publication Date: 2011.10.04 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8032884B2 patent drawing
  • US8032884B2 patent drawing
  • US8032884B2 patent drawing

AI summary

Systems, methods, and devices, including computer executable instructions for transferring threads are described. The method comprises determining an idle processor by checking a handoff state of the processor prior to placing an identified runnable thread in a run queue of an idle processor. The method also comprises transferring the runnable thread to a determined idle processor by setting the handoff state of the processor to a handle of the runnable thread.