Kernel Profiler Sampling Instruction Pointers to Manage CPU Spikes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing devices with non-preemptive kernels, long-running processes can cause excessive latency, leading to protocol expiries and connection drops, particularly in network devices where efficient processor resource management is crucial.

Innovation Solution

A profiler is implemented to sample the instruction pointer of processes, update profile data, and determine if a process executes for longer than a set time, stopping profiling and clearing data when it does, thereby identifying and managing long-running processes that consume excessive processor resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a non-preemptive kernel is used to reduce overhead and improve efficiency, then processor switching overhead is reduced and process execution efficiency is improved, but latency increases and protocol expiries occur

Engineering Contradiction:
Improveprocess execution efficiencyVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The profiler performs preliminary sampling of instruction pointers and accumulation of execution time data before a process actually causes protocol expiry. By continuously monitoring and storing profile data during process execution, the system prepares advance detection information that enables timely identification of long-running processes before they impact network protocols.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by continuously monitoring process execution time through instruction pointer sampling and comparing it against threshold values. When a process exceeds the predetermined execution time threshold, the profiler generates feedback signals that trigger context switching or process termination, thereby preventing latency-induced protocol expiries while maintaining non-preemptive kernel efficiency.

Inventive Principle:
Principle #23Feedback

2Measurement precision

If continuous profiling of all processes is performed to detect long-running processes, then process monitoring accuracy is improved, but processor resource consumption increases

Engineering Contradiction:
Improveprocess execution time detection accuracyVSAvoidprocessor resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

Instead of continuously profiling all process instructions, the system applies partial action by sampling instruction pointers at specific intervals and only analyzing processes that exceed the execution time threshold. This selective profiling approach maintains adequate measurement precision for detecting long-running processes while significantly reducing the processor resources consumed by profiling operations.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The profiler dynamically adjusts monitoring parameters based on process execution characteristics. By changing the sampling frequency and analysis threshold parameters according to process state, the system optimizes between measurement precision and resource consumption. Processes executing below the threshold are monitored lightly, while those exceeding the threshold trigger intensive analysis and context switching.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the profiler continuously collects and analyzes profile data for all processes, then long-running process identification is improved, but system complexity and data management overhead increase

Engineering Contradiction:
Improvelong-running process identification accuracyVSAvoidprofile data management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system extracts and isolates only the critical information needed for detecting long-running processes - specifically, execution time data and instruction pointer samples - from the complete process state. By taking out only these essential parameters and storing them in a simplified profile data structure, the system maintains reliable identification accuracy while reducing data management complexity and memory requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The profiler segments the profiling function into distinct phases: sampling phase (collecting instruction pointers), accumulation phase (aggregating execution time data), and analysis phase (comparing against thresholds). This segmentation allows each phase to operate independently with optimized data structures, reducing overall system complexity while maintaining reliable long-running process detection.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9098267B2Analysis of short term CPU spikes in an operating system kernel
Publication Date: 2015.08.04 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9098267B2 patent drawing
  • US9098267B2 patent drawing
  • US9098267B2 patent drawing

AI summary

A profiler may analyze processes being run by a processor. The profiler may include logic to periodically sample a value of an instruction pointer that indicates an instruction in the first process that is currently being executed by the processor and logic to update profile data based on the sampled value. The profiler may additionally include logic to determine, in response to a context switch that includes the operating system switching the active process from the first process to another of the plurality of processes, whether the first process executes for greater than a first length of time; logic to stop operation of the profiler when the first process executes for greater than the first length of time; and logic to clear the profile data when the first process fails to execute for greater than the first length of time.