Persistent Memory Kernel Hot Upgrade

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems face challenges in performing hot upgrades of kernel components without disrupting application operations, particularly due to the need for system reboots which can result in loss of application data and disruptions.

Innovation Solution

A persistent memory space is configured to store application data, preventing the kernel from accessing it, allowing an updated kernel to be loaded without affecting existing data, enabling a hot upgrade without rebooting the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a system reboot is performed to upgrade the kernel, then the kernel can be updated, but application data in shared memory segments and driver memory pools is lost and application operations are disrupted

Engineering Contradiction:
Improveapplication data integrityVSAvoidsystem downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The memory space is segmented into kernel-accessible memory and persistent memory spaces that are isolated from the kernel. This segmentation allows the kernel to be upgraded by replacing kernel images in kernel-accessible memory while leaving persistent memory spaces intact, thereby preserving application data and enabling hot upgrades without system reboot

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Application data is extracted from kernel-managed memory spaces and placed into persistent memory spaces that are explicitly excluded from kernel access. This extraction ensures that when the kernel is upgraded or replaced, the application data remains untouched and accessible, eliminating data loss and reducing upgrade downtime

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If the kernel is updated by loading a new kernel image, then the kernel version is upgraded, but the update process disrupts application operations and may cause data loss

Engineering Contradiction:
Improvekernel update capabilityVSAvoidapplication operation continuity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Persistent memory spaces are pre-configured and allocated before the kernel upgrade process begins. By establishing these isolated memory regions in advance, the system ensures that application data has a protected destination before the kernel is replaced, allowing seamless kernel updates without disrupting application operations

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Persistent memory spaces act as an intermediary between the kernel and applications. This intermediary layer allows the kernel to be updated independently while maintaining application access to their data, thus enabling kernel adaptability without compromising application operation continuity

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10817354B2Upgrading a kernel or kernel module with a configured persistent memory unused by the kernel
Publication Date: 2020.10.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10817354B2 patent drawing
  • US10817354B2 patent drawing
  • US10817354B2 patent drawing

AI summary

A computer program product, system, and method are provided for upgrading a kernel or kernel module with a configured persistent memory. A persistent memory space is configured in the memory to store application data from applications in user mode. A kernel executing in the memory is prevented from accessing the persistent memory space. A service is called to load an updated kernel in the memory to replace the kernel, wherein the applications have access to the persistent memory space after the updated kernel is loaded. The service may comprise a kernel execution mechanism that directly loads the updated kernel into the memory without a full reboot of the computer system. An extended memory kernel service may be loaded during a boot operation to reserve the persistent memory space as an extended memory space for use by the applications and prevent the kernel from accessing the persistent memory space.