Time Memory Page Mapping for Kernel Bypass

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems require frequent system calls to the kernel to obtain the current time value, leading to inefficiencies and potential disruptions, especially when multiple applications need updated time values.

Innovation Solution

A method and system where a time memory page is created, allowing applications to map their address space to access the current time value directly, with a time writer thread updating the page periodically, enabling multiple read requests without kernel intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If applications issue frequent system calls to the kernel to obtain current time values, then applications can access updated time values, but system performance deteriorates due to frequent context switches and kernel mode transitions

Engineering Contradiction:
Improvetime for system callsVSAvoidsystem efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The kernel pre-allocates a time memory page and sets up memory mappings for applications before they need to access time values. The time writer thread is pre-configured to periodically update the time memory page, so applications can directly read updated time values without issuing system calls, thus eliminating context switches and improving system efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A time memory page is introduced as an intermediary between the kernel's hardware clock and application programs. This intermediate memory page allows applications to access time values through direct memory access rather than system calls, while the time writer thread acts as a mediator to keep the time memory page synchronized with the hardware clock

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the kernel directly provides time values to applications through system calls, then time values are accurately provided, but system complexity increases due to frequent kernel involvement

Engineering Contradiction:
Improvetime value accuracyVSAvoidkernel involvement complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The time provision system is segmented into distinct components: a time memory page for storing time values, a time writer thread for updating the time memory page from the hardware clock, and memory mappings for application access. This segmentation allows the kernel to set up the system once and then step back, reducing frequent kernel involvement while maintaining time value accuracy through the dedicated time writer thread

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Applications are enabled to self-service by directly reading time values from the time memory page through memory mappings, eliminating the need for kernel mediation on each time value access. The time writer thread autonomously updates the time memory page from the hardware clock, providing accurate time values without requiring kernel intervention for each update

Inventive Principle:
Principle #25Self-service

3Loss of time

If multiple applications access time values through separate system calls, then each application obtains current time values, but energy consumption increases due to frequent processor mode switching

Engineering Contradiction:
Improvetime access frequencyVSAvoidprocessor energy consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Multiple applications share a common time memory page through memory mappings, merging their time access needs into a single shared resource. This eliminates the need for each application to separately invoke system calls, reducing processor mode switching and energy consumption while still providing current time values to all applications

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8473772B2Method and system for providing a current time value
Publication Date: 2013.06.25 ORACLE INT CORP
  • US8473772B2 patent drawing
  • US8473772B2 patent drawing
  • US8473772B2 patent drawing

AI summary

A method for providing applications with a current time value includes receiving a trap for an application to access a time memory page, creating, in a memory map corresponding to the application, a mapping between an address space of the application and the time memory page in response to the trap, accessing, based on the trap, a hardware clock to obtain a time value, and updating the time memory page with the time value. The application reads the time value from the time memory page using the memory map.