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

4 Memory Hot(Un)Plug
7 This document describes generic Linux support for memory hot(un)plug with
15 Memory hot(un)plug allows for increasing and decreasing the size of physical
20 Memory hot(un)plug is used for various purposes:
22 - The physical memory available to a machine can be adjusted at runtime, up- or
27 - Replacing hardware, such as DIMMs or whole NUMA nodes, without downtime. One
30 - Reducing energy consumption either by physically unplugging memory modules or
33 Further, the basic memory hot(un)plug infrastructure in Linux is nowadays also
34 used to expose persistent memory, other performance-differentiated memory and
37 Linux only supports memory hot(un)plug on selected 64 bit architectures, such as
40 Memory Hot(Un)Plug Granularity
41 ------------------------------
43 Memory hot(un)plug in Linux uses the SPARSEMEM memory model, which divides the
50 granularity that can be hot(un)plugged. The default size of a memory block is
56 ------------------------
73 --------------------------
96 ------------------
114 --------------
154 -------------------------------
156 If auto-onlining of memory blocks isn't enabled, user-space has to manually
186 ------------------------------------
188 The kernel can be configured to try auto-onlining of newly added memory blocks.
192 The configured auto-online behavior can be observed via::
196 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.
301 this functionality is not really related to memory hot(un)plug or actual
305 ------------------------------------
330 ``online`` read-write: simplified interface to trigger onlining /
333 ``phys_device`` read-only: legacy interface only ever used on s390x to
335 ``phys_index`` read-only: the memory block id (XXX).
336 ``removable`` read-only: legacy interface that indicated whether a memory
340 ``state`` read-write: advanced interface to trigger onlining /
351 When reading, ``online``, ``offline`` and ``going-offline``
353 ``uevent`` read-write: generic uevent file for devices.
354 ``valid_zones`` read-only: when a block is online, shows the zone it
381 /sys/devices/system/node/node0/memory9 -> ../../memory/memory9
385 /sys/devices/system/memory/memory9/node0 -> ../../node/node0
388 -----------------------
390 Some command line parameters affect memory hot(un)plug handling. The following
394 ``memhp_default_state`` configure auto-onlining by essentially setting
402 ------------------
418 ``memmap_on_memory`` read-write: Allocate memory for the memmap from the
452 ---------------
463 long-term pinning of pages, might not be able to deal with ZONE_MOVABLE at all.
472 ----------------------------------
480 ZONE_MOVABLE, especially when fine-tuning zone ratios:
482 - Having a lot of offline memory blocks. Even offline memory blocks consume
486 - Memory ballooning without balloon compaction is incompatible with
487 ZONE_MOVABLE. Only some implementations, such as virtio-balloon and
495 - Gigantic pages are unmovable, resulting in user space consuming a
498 - Huge pages are unmovable when an architectures does not support huge
501 - Page tables are unmovable. Excessive swapping, mapping extremely large
507 - In certain DAX configurations the memory map for the device memory will be
510 - KASAN can have a significant memory overhead, for example, consuming 1/8th of
513 - Long-term pinning of pages. Techniques that rely on long-term pinnings
529 Documentation/admin-guide/kernel-parameters.rst for their description.
532 ---------------------------------
537 - Memory blocks with memory holes; this applies to memory blocks present during
539 Hyper-V balloon.
541 - Mixed NUMA nodes and mixed zones within a single memory block prevent memory
544 - Special memory blocks prevented by the system from getting offlined. Examples
549 - Memory blocks overlapping with CMA areas cannot be offlined, this applies to
552 - Concurrent activity that operates on the same physical memory area, such as
555 - Out of memory when dissolving huge pages, especially when freeing unused
570 (-> BUG), memory offlining will keep retrying until it eventually succeeds.