Guest-Programmable ACPI Table Relocation in Virtualized Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computer systems, existing technologies lack the ability to dynamically relocate Advanced Configuration and Power Interface (ACPI) tables while maintaining the correctness of self-referencing pointers without requiring the restart of virtual machines.

Innovation Solution

A hypervisor generates a new version of ACPI tables with updated pointers to accommodate a new base address, allowing for guest-programmable relocation of these tables, enabling dynamic reorganization of memory without disrupting system operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If ACPI tables are relocated to new base addresses in virtualized systems, then memory flexibility and reorganization capability are improved, but pointer correctness and system reliability deteriorate

Engineering Contradiction:
Improvememory flexibilityVSAvoidpointer correctness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The hypervisor creates a copy of the ACPI tables at the new base address and updates all pointers within the copied tables to reflect the new location. This allows the guest OS to access ACPI tables at the new address while maintaining pointer correctness through the copying and updating process.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The hypervisor acts as an intermediary between the guest OS and the ACPI tables. It intercepts guest accesses to ACPI tables, performs the necessary pointer updates, and ensures that pointer correctness is maintained during relocation operations without requiring guest OS involvement.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If ACPI tables are dynamically relocated without restarting virtual machines, then system availability and operational continuity are improved, but system complexity and management overhead increase

Engineering Contradiction:
Improvesystem availabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system enables self-service relocation where the guest OS can programmatically specify new base addresses for ACPI tables through defined interfaces. The hypervisor then autonomously handles the relocation process, updating pointers and managing the transition without requiring system administrator intervention or VM restarts.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The ACPI table relocation mechanism is made dynamic and flexible, allowing tables to be moved to different base addresses during system operation. The hypervisor dynamically updates pointers and manages the relocation process in real-time, enabling flexible memory reorganization without static constraints.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If guests are given programmable control over ACPI table locations, then ease of operation and guest autonomy are improved, but system stability and control overhead worsen

Engineering Contradiction:
Improveguest autonomyVSAvoidsystem stability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The hypervisor implements feedback mechanisms to monitor and validate guest requests for ACPI table relocation. It verifies that requested base addresses are valid and do not conflict with other system resources, providing a controlled interface that balances guest autonomy with system stability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9852100B2Guest-programmable location of advanced configuration and power interface (ACPI) tables in virtualized systems
Publication Date: 2017.12.26 RED HAT ISRAEL
  • US9852100B2 patent drawing
  • US9852100B2 patent drawing
  • US9852100B2 patent drawing

AI summary

A system and method are disclosed for guest-programmable relocation of system tables in a virtualized computer system. In accordance with one embodiment, a hypervisor that is executed by a computer system obtains a first base address of a first portion of memory, where the first base address is in an address space of a guest of a virtual machine, and where the first base address is for a set of one or more system tables that is currently exposed by the hypervisor at a second portion of memory having a second base address in the address space of the guest. The hypervisor then generates a new version of the set of one or more system tables that is exposed to the guest at the first base address.