Kernel Memory Free Algorithm for Bus Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches confine kernel pages to a limited subset of system boards, making them non-relocatable, which leads to system bus contention and performance degradation, especially when device drivers use Direct Memory Access (DMA), resulting in data corruption or recursive page faults.

Innovation Solution

The solution involves partitioning virtual memory address space into relocatable and non-relocatable regions, allowing identification and management of memory allocations to enable relocation of kernel pages, and modifying non-conforming drivers to use appropriate memory allocation and freeing functions to avoid recursive page faults.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If kernel pages are confined to a limited subset of system boards to ensure stability, then system reliability is improved, but system bus contention increases and performance degrades

Engineering Contradiction:
Improvesystem reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments kernel pages into two categories: relocatable kernel pages and non-relocatable kernel pages. Relocatable kernel pages can be moved across system boards to balance the load and reduce bus contention, while non-relocatable kernel pages remain fixed to ensure system stability. This segmentation allows the system to simultaneously achieve both reliability and performance goals.

Inventive Principle:
Principle #1Segmentation

2Productivity

If kernel pages are made relocatable to improve system bus efficiency, then system performance is improved, but data corruption may occur due to DMA access

Engineering Contradiction:
Improvesystem bus efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a dynamic approach where kernel pages can change their relocatability status based on system conditions. Pages that were initially non-relocatable can become relocatable when device drivers are updated to support relocation, allowing the system to adapt and improve performance while maintaining data integrity through controlled transitions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of relocatability for kernel pages based on driver capabilities and system state. By monitoring whether device drivers conform to relocation requirements, the system dynamically adjusts which kernel pages can be relocated, thereby optimizing system bus efficiency while preventing data corruption through informed decision-making.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If non-conforming device drivers are allowed to maintain compatibility, then ease of operation is improved, but recursive page faults occur causing system instability

Engineering Contradiction:
Improvedriver compatibilityVSAvoidsystem stability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary actions by updating device drivers before kernel page relocation occurs. The system checks whether device drivers are conforming (i.e., updated to support relocation) before attempting to relocate kernel pages. This preliminary verification prevents recursive page faults and system instability while maintaining compatibility with non-conforming drivers through controlled migration paths.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7472249B2Kernel memory free algorithm
Publication Date: 2008.12.30 ORACLE AMERICAN INC
  • US7472249B2 patent drawing
  • US7472249B2 patent drawing
  • US7472249B2 patent drawing

AI summary

An approach for freeing memory based upon its relocatable or non-relocatable property is provided. In one embodiment, drivers and other processes that do not provide callback methods or similar capability to route DMA requests to the correct physical address are identified and all memory allocations made by the driver or other process are made from the appropriate region.