ACPI-Based System Device Hot-Plugging Framework

Posted by Michael Larabel on October 07, 2012

For several months there have been developers at Huawei and elsewhere working on an ACPI-based system device hot-plug framework for the Linux kernel.

Now up to its third revision, this hot-plugging framework written against the Advanced Configuration and Power Interface (ACPI) specification continues to advance.

As far as what this hot-plug framework means, Huawei's Jiang Liu describes it as:
Modern high-end server may support advanced hotplug features for system devices, including physical processor, memory board, IO extension board and/or computer node. The ACPI specifications have provided standard interfaces between firmware and OS to support device hotplug at runtime. This patch series provide an ACPI based hotplug framework to support system device hotplug at runtime, which will replace current existing ACPI device driver based CPU/memory/CONTAINER hotplug mechanism.

The new ACPI system device hotplug framework has following design goals:

1) Provide a mechanism to detect hotplug slots by checking ACPI _EJ0 method, ACPI PRCT (platform RAS capabilities table) and other platform specific mechanisms.
2) Unify the way to enumerate ACPI based hotplug slots. All hotplug slots will be enumerated by the enumeration driver, instead of by ACPI device drivers.
3) Unify the way to handle ACPI hotplug events. All ACPI hotplug events for system devices will be handled by a generic ACPI hotplug driver, instead of handled by ACPI device drivers.
4) Solve dependencies among hotplug slots. You need first to remove the memory device before removing a physical processor if a hotpluggable memory device is connected to a hotpluggable physical processor.
5) Provide better error handling and recover.
6) Provide interface to cancel ongoing hotplug operations. It may take a very long time to remove a memory device, so provide interface to cancel the operation. This is important especially for memory hot-removal.
7) Support new RAS features, such as socket/memory migration.
8) Provide better user interfaces to the hotplug functionalities.
9) Trigger hotplug events/operations by software. This feature is useful for hardware fault management and power saving.

The new ACPI based hotplug framework is modelled after PCI hotplug architecture, which uses a hotplug driver to manage hotplug operations and different device drivers to manage individual devices.
The latest v3 patches can be found on the kernel mailing list and will hopefully be merged into a future Linux kernel release. The third version of these kernel patches fix minor bugs, refine the code, implement fake slot enumator for testing purposes, enhance the ACPI container driver for the new framework, enhance the ACPI processor driver for the new framework, and resolve dependencies among slots.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. The Cost Of Ubuntu Disk Encryption
  2. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  3. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  4. F2FS File-System Shows Regressions On Linux 3.10
Latest Linux News
  1. Mageia 3 Released, Still Using Legacy GRUB
  2. NetBSD 6.1 Brings In More Features
  3. Using Six Monitors With AMD's Open-Source Linux Driver
  4. Benchmarking The Intel P-State, CPUfreq Changes
  5. FreeBSD Still Working On Next-Gen Package Manager
  6. DNF Still Advancing As Experimental Yum For Fedora
  7. Logitech Begins Supporting Linux Users
  8. Modern Intel Gallium3D Driver Still Being Toyed With
  9. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  10. GCC 4.8.1 Compiler Due To Be Out Next Week
  11. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
Latest Forum Talk
  1. Mageia 3 Released, Still Using Legacy GRUB
  2. The Cost Of Ubuntu Disk Encryption
  3. Logitech Begins Supporting Linux Users
  4. Logitech supports linux!
  5. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  6. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite