Sub-idle Thread Priority Class for CPU Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current scheduling policies lack a method to efficiently manage lowest priority threads without introducing latency in higher priority threads, especially in microservice environments where context switching can cause significant delays.

Innovation Solution

Introducing a sub-idle thread priority class that is scheduled to run only after the CPU has been idle for a certain threshold period, allowing for optimized code generation and execution without interrupting higher priority tasks, thereby reducing latency and resource overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If lowest priority threads are scheduled to run when CPU is idle, then processor utilization is improved, but latency is introduced in higher priority threads due to context switching

Engineering Contradiction:
Improveprocessor utilizationVSAvoidlatency in higher priority threads
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces a dynamic sub-idle priority class that adapts its scheduling behavior based on system conditions. The scheduler dynamically adjusts thread execution by monitoring CPU idle states and determining when to activate sub-idle threads, creating a flexible scheduling mechanism that responds to real-time system state rather than using fixed priority rules

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the scheduling parameter by introducing a new sub-idle priority level between idle and normal priority threads. This parameter modification allows the system to distinguish between different idle states and control when context switching occurs, thereby managing the trade-off between processor utilization and latency for higher priority threads

Inventive Principle:
Principle #35Parameter changes

2Productivity

If context switching is performed to run lowest priority threads, then code optimization is achieved, but resource overhead increases

Engineering Contradiction:
Improvecode optimizationVSAvoidresource overhead from context switching
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by having the sub-idle priority class perform code optimization tasks during predetermined CPU idle periods before higher priority threads need to execute. By preparing optimized code in advance during idle time, the system reduces the need for frequent context switching and resource overhead during active execution phases

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11537429B2Sub-idle thread priority class
Publication Date: 2022.12.27 RED HAT INC
  • US11537429B2 patent drawing
  • US11537429B2 patent drawing
  • US11537429B2 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 code optimization thread; responsive to determining that a central processing unit has been idle for at least a threshold period of time, running the code optimization thread; and generating, by the code optimization thread, an optimized code of a program executable by the computer system. The method may further execute the optimized code.