Sub-Idle Thread Scheduling for Low-Latency CPU Idle Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current scheduling policies in computing systems do not effectively manage low-priority threads, leading to latency and inefficiencies, particularly in microservice environments and code optimization processes, as they often require interrupting higher priority threads, causing significant stalls and context switching overhead.

Innovation Solution

Introduce a sub-idle thread priority class that schedules lowest priority threads only after the CPU has been idle for a predetermined or predicted threshold time, minimizing context switching and latency by executing these threads when the CPU is idle, using machine learning models to optimize thread execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If current scheduling policies execute low-priority threads during CPU idle periods, then CPU utilization is improved, but context switching overhead and latency increase due to frequent interruptions of higher priority threads

Engineering Contradiction:
ImproveCPU utilizationVSAvoidcontext switching overhead and latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies dynamics by making the thread priority class configurable and adaptable based on system state. The scheduler dynamically adjusts which priority class to use for idle threads based on whether the system is in idle or non-idle state, allowing the scheduling behavior to change according to real-time conditions rather than being fixed

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of thread priority assignment by introducing a sub-idle priority class with specific priority values (e.g., -20 to -40) that differ from traditional idle thread priorities. This parameter change allows the system to distinguish between different types of idle thread execution and control context switching behavior through priority level adjustment

Inventive Principle:
Principle #35Parameter changes

2Productivity

If code optimization threads are scheduled with high priority, then code optimization speed is improved, but startup time and execution time of other applications increase due to resource contention

Engineering Contradiction:
Improvecode optimization speedVSAvoidstartup time and execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies local quality by assigning different priority levels to different types of threads based on their specific requirements. Code optimization threads receive appropriate priority treatment during idle periods without affecting the priority and execution timing of user application threads, allowing each thread type to have optimized characteristics suited to its function

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the thread scheduling system into distinct priority classes (realtime, normal, idle, sub-idle) with clear boundaries and specific priority ranges. This segmentation allows code optimization threads to be isolated in the sub-idle priority class, preventing them from interfering with higher priority threads while still receiving adequate CPU attention during idle periods

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12493490B2Sub-idle thread priority class
Publication Date: 2025.12.09 RED HAT LLC
  • US12493490B2 patent drawing
  • US12493490B2 patent drawing
  • US12493490B2 patent drawing

AI summary

Implementations for scheduling a sub-idle thread priority class are described. An example method may include assigning, by a scheduler of a computer system, a sub-idle execution priority class to a processing thread associated with a request queue of an input/output (I/O) device; identifying, by a processing device, a work completion request in the request queue; and responsive to predicting, for a processor of the computer system, an idle time exceeding a threshold idle period, running the processing thread.