Lines Matching +full:hot +full:- +full:plug

2 Memory Hot(Un)Plug
5 This document describes generic Linux support for memory hot(un)plug with
13 Memory hot(un)plug allows for increasing and decreasing the size of physical
18 Memory hot(un)plug is used for various purposes:
20 - The physical memory available to a machine can be adjusted at runtime, up- or
25 - Replacing hardware, such as DIMMs or whole NUMA nodes, without downtime. One
28 - Reducing energy consumption either by physically unplugging memory modules or
31 Further, the basic memory hot(un)plug infrastructure in Linux is nowadays also
32 used to expose persistent memory, other performance-differentiated memory and
35 Linux only supports memory hot(un)plug on selected 64 bit architectures, such as
38 Memory Hot(Un)Plug Granularity
39 ------------------------------
41 Memory hot(un)plug in Linux uses the SPARSEMEM memory model, which divides the
48 granularity that can be hot(un)plugged. The default size of a memory block is
54 ------------------------
71 --------------------------
94 ------------------
112 --------------
152 -------------------------------
154 If auto-onlining of memory blocks isn't enabled, user-space has to manually
183 ------------------------------------
185 The kernel can be configured to try auto-onlining of newly added memory blocks.
189 The configured auto-online behavior can be observed via::
193 Auto-onlining can be enabled by writing ``online``, ``online_kernel`` or
201 Modifying the auto-online behavior will only affect all subsequently added
206 In corner cases, auto-onlining can fail. The kernel won't retry. Note that
207 auto-onlining is not expected to fail in default configurations.
215 -----------------------
248 ------------------------------------
250 The state (online/offline/going-offline) of a memory block can be observed
263 Configuring Memory Hot(Un)Plug
267 hot(un)plug and interact with memory blocks, especially, to online them.
269 Memory Hot(Un)Plug Configuration via Sysfs
270 ------------------------------------------
272 Some memory hot(un)plug properties can be configured or inspected via sysfs in::
279 ``auto_online_blocks`` read-write: set or get the default state of new memory
280 blocks; configure auto-onlining.
287 ``block_size_bytes`` read-only: the size in bytes of a memory block.
288 ``probe`` write-only: add (probe) selected memory blocks manually
293 ``uevent`` read-write: generic udev file for device subsystems.
294 ``crash_hotplug`` read-only: when changes to the system memory map
295 occur due to hot un/plug of memory, this file contains
309 this functionality is not really related to memory hot(un)plug or actual
313 ------------------------------------
338 ``online`` read-write: simplified interface to trigger onlining /
341 ``phys_device`` read-only: legacy interface only ever used on s390x to
343 ``phys_index`` read-only: the memory block id (XXX).
344 ``removable`` read-only: legacy interface that indicated whether a memory
348 ``state`` read-write: advanced interface to trigger onlining /
359 When reading, ``online``, ``offline`` and ``going-offline``
361 ``uevent`` read-write: generic uevent file for devices.
362 ``valid_zones`` read-only: when a block is online, shows the zone it
389 /sys/devices/system/node/node0/memory9 -> ../../memory/memory9
393 /sys/devices/system/memory/memory9/node0 -> ../../node/node0
396 -----------------------
398 Some command line parameters affect memory hot(un)plug handling. The following
402 ``memhp_default_state`` configure auto-onlining by essentially setting
405 using the ``contig-zones`` online policy. When
411 See Documentation/admin-guide/kernel-parameters.txt for a more generic
415 ------------------
431 ``memmap_on_memory`` read-write: Allocate memory for the memmap from
456 ``online_policy`` read-write: Set the basic policy used for
459 ``contig-zones`` has been the kernel default
465 When set to ``contig-zones``, the kernel will
473 When set to ``auto-movable``, the kernel will
487 firmware-provided memory map early during boot
490 done by virtio-mem or by some hypervisors
496 belonging to a virtio-mem device will be
498 special-casing units of memory blocks that can
504 ``auto_movable_ratio`` read-write: Set the maximum MOVABLE:KERNEL
505 memory ratio in % for the ``auto-movable``
532 hotplugged by a virtio-mem device that got
535 virtio-mem device.
536 ``auto_movable_numa_aware`` read-write: Configure whether the
537 ``auto_movable_ratio`` in the ``auto-movable``
571 ---------------
582 long-term pinning of pages, might not be able to deal with ZONE_MOVABLE at all.
591 ----------------------------------
599 ZONE_MOVABLE, especially when fine-tuning zone ratios:
601 - Having a lot of offline memory blocks. Even offline memory blocks consume
605 - Memory ballooning without balloon compaction is incompatible with
606 ZONE_MOVABLE. Only some implementations, such as virtio-balloon and
614 - Gigantic pages are unmovable, resulting in user space consuming a
617 - Huge pages are unmovable when an architectures does not support huge
620 - Page tables are unmovable. Excessive swapping, mapping extremely large
626 - In certain DAX configurations the memory map for the device memory will be
629 - KASAN can have a significant memory overhead, for example, consuming 1/8th of
632 - Long-term pinning of pages. Techniques that rely on long-term pinnings
648 Documentation/admin-guide/kernel-parameters.rst for their description.
651 ---------------------------------
656 - Memory blocks with memory holes; this applies to memory blocks present during
658 Hyper-V balloon.
660 - Mixed NUMA nodes and mixed zones within a single memory block prevent memory
663 - Special memory blocks prevented by the system from getting offlined. Examples
668 - Memory blocks overlapping with CMA areas cannot be offlined, this applies to
671 - Concurrent activity that operates on the same physical memory area, such as
674 - Out of memory when dissolving huge pages, especially when HugeTLB Vmemmap
689 (-> BUG), memory offlining will keep retrying until it eventually succeeds.