Interposing Library for Page Size Dependency Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing operating systems face challenges in detecting and managing page size dependencies between user-level and kernel-level applications, which can lead to functional issues when the default page size is modified, as these dependencies are often subtle and difficult to detect using static analysis.

Innovation Solution

An interposing library is used to intercept and modify calls between user-level applications and the kernel, emulating a non-native page size without changing the native page size, allowing for the identification of applications with page size dependencies by providing a modified interface that operates on the native page size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the page size is increased to improve TLB coverage and system performance, then memory mapping efficiency improves, but applications with page size dependencies cease to function correctly

Engineering Contradiction:
Improvememory mapping efficiencyVSAvoidapplication functionality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an interposing library as an intermediary layer between user-level applications and the kernel. This library intercepts system calls related to memory management and emulates the requested page size by performing additional translations and adjustments. The interposing library allows applications to operate as if a larger page size is available while the kernel continues to use the native page size, thus resolving the contradiction between improved memory efficiency and application compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If static analysis is used to detect page size dependencies, then analysis simplicity is maintained, but detection accuracy is insufficient due to subtle and implicit dependencies

Engineering Contradiction:
Improveanalysis simplicityVSAvoiddependency detection accuracy
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The patent creates a copy or emulation of the page size interface through the interposing library. Instead of attempting to statically analyze and detect subtle dependencies, the system creates a virtual copy of the desired page size environment. Applications are run in this emulated environment, and their behavior is observed. This dynamic copying approach allows for accurate detection of dependencies that would be invisible to static analysis tools.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If the kernel is modified to support alternate page sizes for testing, then testing capability is improved, but kernel complexity increases

Engineering Contradiction:
Improvetesting capabilityVSAvoidkernel complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the page size emulation functionality from the kernel and places it in a separate user-level interposing library. This extraction allows the kernel to remain unchanged and maintain its simplicity, while the testing capability is provided by the external library that intercepts and modifies system calls. The complex emulation logic is isolated in the interposing library, preventing kernel complexity from increasing.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7434210B1Interposing library for page size dependency checking
Publication Date: 2008.10.07 ORACLE AMERICAN INC
  • US7434210B1 patent drawing
  • US7434210B1 patent drawing
  • US7434210B1 patent drawing

AI summary

A method for checking page size dependency including generating an interposing library comprising a first modified interface, wherein the first modified interface is dependent on a native page size, intercepting a call into a kernel by the interposing library, wherein the call is dependent on a non-native page size, modifying the call using the first modified interface to obtain a modified call, and generating a response to the modified call by the kernel using the native page size.