Dynamic Domain Allocation for Hyper-Threading Interference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hyper-threading in processors leads to decreased performance in systems like storage servers due to resource interference and suboptimal processor utilization, with conventional scheduling algorithms only achieving about half the maximum possible processor utilization.

Innovation Solution

A scheduling algorithm that dynamically allocates multiple domains to subsets of logical processors based on measured processor utilization, allowing for adaptive resource allocation and minimizing interference by moving high-utilization domains to dedicated physical processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional scheduling algorithms treat logical processors as physically separate processors, then functional independence is achieved, but processor utilization decreases to about half of maximum possible utilization

Engineering Contradiction:
Improvefunctional independenceVSAvoidprocessor utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The scheduling algorithm dynamically adapts its behavior based on system state. It monitors processor utilization and dynamically adjusts domain allocation between logical processors and physical processors, transitioning between different scheduling modes to optimize both functional independence and processor utilization under varying workload conditions

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes scheduling parameters based on measured processor utilization. When utilization exceeds thresholds, the algorithm modifies allocation parameters to move domains from shared logical processors to dedicated physical processors, thereby adjusting the degree of resource sharing to maintain performance while improving utilization

Inventive Principle:
Principle #35Parameter changes

2Productivity

If multiple processes share the execution engine and system bus interface through hyper-threading, then concurrent execution is enabled, but resource interference increases and performance decreases

Engineering Contradiction:
Improveconcurrent execution capabilityVSAvoidresource interference
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The system segments processes into domains and allocates them to different subsets of logical processors. This segmentation reduces resource interference by ensuring that not all processes compete for the same shared resources simultaneously, while still enabling concurrent execution through the hyper-threading architecture

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

When processor utilization exceeds thresholds, the scheduling algorithm extracts high-utilization domains from shared logical processors and moves them to dedicated physical processors. This extraction removes the harmful resource interference from the shared execution engine and system bus interface while maintaining the benefits of hyper-threading for other processes

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8171480B2Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor
Publication Date: 2012.05.01 NETAPP INC
  • US8171480B2 patent drawing
  • US8171480B2 patent drawing
  • US8171480B2 patent drawing

AI summary

In a processing system which includes a physical processor that includes multiple logical processors, multiple domains are defined for multiple processes that can execute on the physical processor. Each of the processes is assigned to one of the domains. Processor utilization associated with the logical processors is measured, and each of the domains is allocated to a subset of the logical processors according to the processor utilization.