Skip to content

Commit 334fbe7

Browse files
committed
Merge tag 'mm-stable-2026-04-13-21-45' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull MM updates from Andrew Morton: - "maple_tree: Replace big node with maple copy" (Liam Howlett) Mainly prepararatory work for ongoing development but it does reduce stack usage and is an improvement. - "mm, swap: swap table phase III: remove swap_map" (Kairui Song) Offers memory savings by removing the static swap_map. It also yields some CPU savings and implements several cleanups. - "mm: memfd_luo: preserve file seals" (Pratyush Yadav) File seal preservation to LUO's memfd code - "mm: zswap: add per-memcg stat for incompressible pages" (Jiayuan Chen) Additional userspace stats reportng to zswap - "arch, mm: consolidate empty_zero_page" (Mike Rapoport) Some cleanups for our handling of ZERO_PAGE() and zero_pfn - "mm/kmemleak: Improve scan_should_stop() implementation" (Zhongqiu Han) A robustness improvement and some cleanups in the kmemleak code - "Improve khugepaged scan logic" (Vernon Yang) Improve khugepaged scan logic and reduce CPU consumption by prioritizing scanning tasks that access memory frequently - "Make KHO Stateless" (Jason Miu) Simplify Kexec Handover by transitioning KHO from an xarray-based metadata tracking system with serialization to a radix tree data structure that can be passed directly to the next kernel - "mm: vmscan: add PID and cgroup ID to vmscan tracepoints" (Thomas Ballasi and Steven Rostedt) Enhance vmscan's tracepointing - "mm: arch/shstk: Common shadow stack mapping helper and VM_NOHUGEPAGE" (Catalin Marinas) Cleanup for the shadow stack code: remove per-arch code in favour of a generic implementation - "Fix KASAN support for KHO restored vmalloc regions" (Pasha Tatashin) Fix a WARN() which can be emitted the KHO restores a vmalloc area - "mm: Remove stray references to pagevec" (Tal Zussman) Several cleanups, mainly udpating references to "struct pagevec", which became folio_batch three years ago - "mm: Eliminate fake head pages from vmemmap optimization" (Kiryl Shutsemau) Simplify the HugeTLB vmemmap optimization (HVO) by changing how tail pages encode their relationship to the head page - "mm/damon/core: improve DAMOS quota efficiency for core layer filters" (SeongJae Park) Improve two problematic behaviors of DAMOS that makes it less efficient when core layer filters are used - "mm/damon: strictly respect min_nr_regions" (SeongJae Park) Improve DAMON usability by extending the treatment of the min_nr_regions user-settable parameter - "mm/page_alloc: pcp locking cleanup" (Vlastimil Babka) The proper fix for a previously hotfixed SMP=n issue. Code simplifications and cleanups ensued - "mm: cleanups around unmapping / zapping" (David Hildenbrand) A bunch of cleanups around unmapping and zapping. Mostly simplifications, code movements, documentation and renaming of zapping functions - "support batched checking of the young flag for MGLRU" (Baolin Wang) Batched checking of the young flag for MGLRU. It's part cleanups; one benchmark shows large performance benefits for arm64 - "memcg: obj stock and slab stat caching cleanups" (Johannes Weiner) memcg cleanup and robustness improvements - "Allow order zero pages in page reporting" (Yuvraj Sakshith) Enhance free page reporting - it is presently and undesirably order-0 pages when reporting free memory. - "mm: vma flag tweaks" (Lorenzo Stoakes) Cleanup work following from the recent conversion of the VMA flags to a bitmap - "mm/damon: add optional debugging-purpose sanity checks" (SeongJae Park) Add some more developer-facing debug checks into DAMON core - "mm/damon: test and document power-of-2 min_region_sz requirement" (SeongJae Park) An additional DAMON kunit test and makes some adjustments to the addr_unit parameter handling - "mm/damon/core: make passed_sample_intervals comparisons overflow-safe" (SeongJae Park) Fix a hard-to-hit time overflow issue in DAMON core - "mm/damon: improve/fixup/update ratio calculation, test and documentation" (SeongJae Park) A batch of misc/minor improvements and fixups for DAMON - "mm: move vma_(kernel|mmu)_pagesize() out of hugetlb.c" (David Hildenbrand) Fix a possible issue with dax-device when CONFIG_HUGETLB=n. Some code movement was required. - "zram: recompression cleanups and tweaks" (Sergey Senozhatsky) A somewhat random mix of fixups, recompression cleanups and improvements in the zram code - "mm/damon: support multiple goal-based quota tuning algorithms" (SeongJae Park) Extend DAMOS quotas goal auto-tuning to support multiple tuning algorithms that users can select - "mm: thp: reduce unnecessary start_stop_khugepaged()" (Breno Leitao) Fix the khugpaged sysfs handling so we no longer spam the logs with reams of junk when starting/stopping khugepaged - "mm: improve map count checks" (Lorenzo Stoakes) Provide some cleanups and slight fixes in the mremap, mmap and vma code - "mm/damon: support addr_unit on default monitoring targets for modules" (SeongJae Park) Extend the use of DAMON core's addr_unit tunable - "mm: khugepaged cleanups and mTHP prerequisites" (Nico Pache) Cleanups to khugepaged and is a base for Nico's planned khugepaged mTHP support - "mm: memory hot(un)plug and SPARSEMEM cleanups" (David Hildenbrand) Code movement and cleanups in the memhotplug and sparsemem code - "mm: remove CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE and cleanup CONFIG_MIGRATION" (David Hildenbrand) Rationalize some memhotplug Kconfig support - "change young flag check functions to return bool" (Baolin Wang) Cleanups to change all young flag check functions to return bool - "mm/damon/sysfs: fix memory leak and NULL dereference issues" (Josh Law and SeongJae Park) Fix a few potential DAMON bugs - "mm/vma: convert vm_flags_t to vma_flags_t in vma code" (Lorenzo Stoakes) Convert a lot of the existing use of the legacy vm_flags_t data type to the new vma_flags_t type which replaces it. Mainly in the vma code. - "mm: expand mmap_prepare functionality and usage" (Lorenzo Stoakes) Expand the mmap_prepare functionality, which is intended to replace the deprecated f_op->mmap hook which has been the source of bugs and security issues for some time. Cleanups, documentation, extension of mmap_prepare into filesystem drivers - "mm/huge_memory: refactor zap_huge_pmd()" (Lorenzo Stoakes) Simplify and clean up zap_huge_pmd(). Additional cleanups around vm_normal_folio_pmd() and the softleaf functionality are performed. * tag 'mm-stable-2026-04-13-21-45' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (369 commits) mm: fix deferred split queue races during migration mm/khugepaged: fix issue with tracking lock mm/huge_memory: add and use has_deposited_pgtable() mm/huge_memory: add and use normal_or_softleaf_folio_pmd() mm: add softleaf_is_valid_pmd_entry(), pmd_to_softleaf_folio() mm/huge_memory: separate out the folio part of zap_huge_pmd() mm/huge_memory: use mm instead of tlb->mm mm/huge_memory: remove unnecessary sanity checks mm/huge_memory: deduplicate zap deposited table call mm/huge_memory: remove unnecessary VM_BUG_ON_PAGE() mm/huge_memory: add a common exit path to zap_huge_pmd() mm/huge_memory: handle buggy PMD entry in zap_huge_pmd() mm/huge_memory: have zap_huge_pmd return a boolean, add kdoc mm/huge: avoid big else branch in zap_huge_pmd() mm/huge_memory: simplify vma_is_specal_huge() mm: on remap assert that input range within the proposed VMA mm: add mmap_action_map_kernel_pages[_full]() uio: replace deprecated mmap hook with mmap_prepare in uio_info drivers: hv: vmbus: replace deprecated mmap hook with mmap_prepare mm: allow handling of stacked mmap_prepare hooks in more drivers ...
2 parents 5bdb407 + 3bac011 commit 334fbe7

381 files changed

Lines changed: 9545 additions & 6989 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/ABI/testing/sysfs-kernel-mm-damon

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,12 @@ Contact: SeongJae Park <sj@kernel.org>
316316
Description: Writing to and reading from this file sets and gets the path
317317
parameter of the goal.
318318

319+
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goal_tuner
320+
Date: Mar 2026
321+
Contact: SeongJae Park <sj@kernel.org>
322+
Description: Writing to and reading from this file sets and gets the
323+
goal-based effective quota auto-tuning algorithm to use.
324+
319325
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/sz_permil
320326
Date: Mar 2022
321327
Contact: SeongJae Park <sj@kernel.org>

Documentation/admin-guide/blockdev/zram.rst

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ know it via /sys/block/zram0/bd_stat's 3rd column.
462462
recompression
463463
-------------
464464

465-
With CONFIG_ZRAM_MULTI_COMP, zram can recompress pages using alternative
465+
With `CONFIG_ZRAM_MULTI_COMP`, zram can recompress pages using alternative
466466
(secondary) compression algorithms. The basic idea is that alternative
467467
compression algorithm can provide better compression ratio at a price of
468468
(potentially) slower compression/decompression speeds. Alternative compression
@@ -471,7 +471,7 @@ that default algorithm failed to compress). Another application is idle pages
471471
recompression - pages that are cold and sit in the memory can be recompressed
472472
using more effective algorithm and, hence, reduce zsmalloc memory usage.
473473

474-
With CONFIG_ZRAM_MULTI_COMP, zram supports up to 4 compression algorithms:
474+
With `CONFIG_ZRAM_MULTI_COMP`, zram supports up to 4 compression algorithms:
475475
one primary and up to 3 secondary ones. Primary zram compressor is explained
476476
in "3) Select compression algorithm", secondary algorithms are configured
477477
using recomp_algorithm device attribute.
@@ -495,56 +495,43 @@ configuration:::
495495
#select deflate recompression algorithm, priority 2
496496
echo "algo=deflate priority=2" > /sys/block/zramX/recomp_algorithm
497497

498-
Another device attribute that CONFIG_ZRAM_MULTI_COMP enables is recompress,
498+
Another device attribute that `CONFIG_ZRAM_MULTI_COMP` enables is `recompress`,
499499
which controls recompression.
500500

501501
Examples:::
502502

503503
#IDLE pages recompression is activated by `idle` mode
504-
echo "type=idle" > /sys/block/zramX/recompress
504+
echo "type=idle priority=1" > /sys/block/zramX/recompress
505505

506506
#HUGE pages recompression is activated by `huge` mode
507-
echo "type=huge" > /sys/block/zram0/recompress
507+
echo "type=huge priority=2" > /sys/block/zram0/recompress
508508

509509
#HUGE_IDLE pages recompression is activated by `huge_idle` mode
510-
echo "type=huge_idle" > /sys/block/zramX/recompress
510+
echo "type=huge_idle priority=1" > /sys/block/zramX/recompress
511511

512512
The number of idle pages can be significant, so user-space can pass a size
513513
threshold (in bytes) to the recompress knob: zram will recompress only pages
514514
of equal or greater size:::
515515

516516
#recompress all pages larger than 3000 bytes
517-
echo "threshold=3000" > /sys/block/zramX/recompress
517+
echo "threshold=3000 priority=1" > /sys/block/zramX/recompress
518518

519519
#recompress idle pages larger than 2000 bytes
520-
echo "type=idle threshold=2000" > /sys/block/zramX/recompress
520+
echo "type=idle threshold=2000 priority=1" > \
521+
/sys/block/zramX/recompress
521522

522523
It is also possible to limit the number of pages zram re-compression will
523524
attempt to recompress:::
524525

525-
echo "type=huge_idle max_pages=42" > /sys/block/zramX/recompress
526-
527-
During re-compression for every page, that matches re-compression criteria,
528-
ZRAM iterates the list of registered alternative compression algorithms in
529-
order of their priorities. ZRAM stops either when re-compression was
530-
successful (re-compressed object is smaller in size than the original one)
531-
and matches re-compression criteria (e.g. size threshold) or when there are
532-
no secondary algorithms left to try. If none of the secondary algorithms can
533-
successfully re-compressed the page such a page is marked as incompressible,
534-
so ZRAM will not attempt to re-compress it in the future.
535-
536-
This re-compression behaviour, when it iterates through the list of
537-
registered compression algorithms, increases our chances of finding the
538-
algorithm that successfully compresses a particular page. Sometimes, however,
539-
it is convenient (and sometimes even necessary) to limit recompression to
540-
only one particular algorithm so that it will not try any other algorithms.
541-
This can be achieved by providing a `algo` or `priority` parameter:::
542-
543-
#use zstd algorithm only (if registered)
544-
echo "type=huge algo=zstd" > /sys/block/zramX/recompress
545-
546-
#use zstd algorithm only (if zstd was registered under priority 1)
547-
echo "type=huge priority=1" > /sys/block/zramX/recompress
526+
echo "type=huge_idle priority=1 max_pages=42" > \
527+
/sys/block/zramX/recompress
528+
529+
It is advised to always specify `priority` parameter. While it is also
530+
possible to specify `algo` parameter, so that `zram` will use algorithm's
531+
name to determine the priority, it is not recommended, since it can lead to
532+
unexpected results when the same algorithm is configured with different
533+
priorities (e.g. different parameters). `priority` is the only way to
534+
guarantee that the expected algorithm will be used.
548535

549536
memory tracking
550537
===============

Documentation/admin-guide/cgroup-v2.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1734,6 +1734,11 @@ The following nested keys are defined.
17341734
zswpwb
17351735
Number of pages written from zswap to swap.
17361736

1737+
zswap_incomp
1738+
Number of incompressible pages currently stored in zswap
1739+
without compression. These pages could not be compressed to
1740+
a size smaller than PAGE_SIZE, so they are stored as-is.
1741+
17371742
thp_fault_alloc (npn)
17381743
Number of transparent hugepages which were allocated to satisfy
17391744
a page fault. This counter is not present when CONFIG_TRANSPARENT_HUGEPAGE

Documentation/admin-guide/kdump/vmcoreinfo.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ nodemask_t
141141
The size of a nodemask_t type. Used to compute the number of online
142142
nodes.
143143

144-
(page, flags|_refcount|mapping|lru|_mapcount|private|compound_order|compound_head)
144+
(page, flags|_refcount|mapping|lru|_mapcount|private|compound_order|compound_info)
145145
----------------------------------------------------------------------------------
146146

147147
User-space tools compute their values based on the offset of these

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2970,6 +2970,12 @@ Kernel parameters
29702970
Format: <bool>
29712971
Default: CONFIG_KFENCE_DEFERRABLE
29722972

2973+
kfence.fault= [MM,KFENCE] Controls the behavior when a KFENCE
2974+
error is detected.
2975+
report - print the error report and continue (default).
2976+
oops - print the error report and oops.
2977+
panic - print the error report and panic.
2978+
29732979
kfence.sample_interval=
29742980
[MM,KFENCE] KFENCE's sample interval in milliseconds.
29752981
Format: <unsigned integer>

Documentation/admin-guide/mm/damon/lru_sort.rst

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ increases and decreases the effective level of the quota aiming the LRU
9191

9292
Disabled by default.
9393

94-
Auto-tune monitoring intervals
95-
------------------------------
94+
autotune_monitoring_intervals
95+
-----------------------------
9696

9797
If this parameter is set as ``Y``, DAMON_LRU_SORT automatically tunes DAMON's
9898
sampling and aggregation intervals. The auto-tuning aims to capture meaningful
@@ -221,6 +221,10 @@ But, setting this too high could result in increased monitoring overhead.
221221
Please refer to the DAMON documentation (:doc:`usage`) for more detail. 10 by
222222
default.
223223

224+
Note that this must be 3 or higher. Please refer to the :ref:`Monitoring
225+
<damon_design_monitoring>` section of the design document for the rationale
226+
behind this lower bound.
227+
224228
max_nr_regions
225229
--------------
226230

@@ -351,3 +355,8 @@ the LRU-list based page granularity reclamation. ::
351355
# echo 400 > wmarks_mid
352356
# echo 200 > wmarks_low
353357
# echo Y > enabled
358+
359+
Note that this module (damon_lru_sort) cannot run simultaneously with other
360+
DAMON-based special-purpose modules. Refer to :ref:`DAMON design special
361+
purpose modules exclusivity <damon_design_special_purpose_modules_exclusivity>`
362+
for more details.

Documentation/admin-guide/mm/damon/reclaim.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,10 @@ monitoring. This can be used to set lower-bound of the monitoring quality.
204204
But, setting this too high could result in increased monitoring overhead.
205205
Please refer to the DAMON documentation (:doc:`usage`) for more detail.
206206

207+
Note that this must be 3 or higher. Please refer to the :ref:`Monitoring
208+
<damon_design_monitoring>` section of the design document for the rationale
209+
behind this lower bound.
210+
207211
max_nr_regions
208212
--------------
209213

@@ -318,6 +322,11 @@ granularity reclamation. ::
318322
# echo 200 > wmarks_low
319323
# echo Y > enabled
320324

325+
Note that this module (damon_reclaim) cannot run simultaneously with other
326+
DAMON-based special-purpose modules. Refer to :ref:`DAMON design special
327+
purpose modules exclusivity <damon_design_special_purpose_modules_exclusivity>`
328+
for more details.
329+
321330
.. [1] https://research.google/pubs/pub48551/
322331
.. [2] https://lwn.net/Articles/787611/
323332
.. [3] https://www.kernel.org/doc/html/latest/mm/free_page_reporting.html

Documentation/admin-guide/mm/damon/stat.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ You can enable DAMON_STAT by setting the value of this parameter as ``Y``.
4545
Setting it as ``N`` disables DAMON_STAT. The default value is set by
4646
``CONFIG_DAMON_STAT_ENABLED_DEFAULT`` build config option.
4747

48+
Note that this module (damon_stat) cannot run simultaneously with other
49+
DAMON-based special-purpose modules. Refer to :ref:`DAMON design special
50+
purpose modules exclusivity <damon_design_special_purpose_modules_exclusivity>`
51+
for more details.
52+
4853
.. _damon_stat_aggr_interval_us:
4954

5055
aggr_interval_us

Documentation/admin-guide/mm/damon/usage.rst

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ comma (",").
8383
│ │ │ │ │ │ │ │ sz/min,max
8484
│ │ │ │ │ │ │ │ nr_accesses/min,max
8585
│ │ │ │ │ │ │ │ age/min,max
86-
│ │ │ │ │ │ │ :ref:`quotas <sysfs_quotas>`/ms,bytes,reset_interval_ms,effective_bytes
86+
│ │ │ │ │ │ │ :ref:`quotas <sysfs_quotas>`/ms,bytes,reset_interval_ms,effective_bytes,goal_tuner
8787
│ │ │ │ │ │ │ │ weights/sz_permil,nr_accesses_permil,age_permil
8888
│ │ │ │ │ │ │ │ :ref:`goals <sysfs_schemes_quota_goals>`/nr_goals
8989
│ │ │ │ │ │ │ │ │ 0/target_metric,target_value,current_value,nid,path
@@ -377,9 +377,9 @@ schemes/<N>/quotas/
377377
The directory for the :ref:`quotas <damon_design_damos_quotas>` of the given
378378
DAMON-based operation scheme.
379379

380-
Under ``quotas`` directory, four files (``ms``, ``bytes``,
381-
``reset_interval_ms``, ``effective_bytes``) and two directories (``weights`` and
382-
``goals``) exist.
380+
Under ``quotas`` directory, five files (``ms``, ``bytes``,
381+
``reset_interval_ms``, ``effective_bytes`` and ``goal_tuner``) and two
382+
directories (``weights`` and ``goals``) exist.
383383

384384
You can set the ``time quota`` in milliseconds, ``size quota`` in bytes, and
385385
``reset interval`` in milliseconds by writing the values to the three files,
@@ -390,6 +390,14 @@ apply the action to only up to ``bytes`` bytes of memory regions within the
390390
quota limits unless at least one :ref:`goal <sysfs_schemes_quota_goals>` is
391391
set.
392392

393+
You can set the goal-based effective quota auto-tuning algorithm to use, by
394+
writing the algorithm name to ``goal_tuner`` file. Reading the file returns
395+
the currently selected tuner algorithm. Refer to the design documentation of
396+
:ref:`automatic quota tuning goals <damon_design_damos_quotas_auto_tuning>` for
397+
the background design of the feature and the name of the selectable algorithms.
398+
Refer to :ref:`goals directory <sysfs_schemes_quota_goals>` for the goals
399+
setup.
400+
393401
The time quota is internally transformed to a size quota. Between the
394402
transformed size quota and user-specified size quota, smaller one is applied.
395403
Based on the user-specified :ref:`goal <sysfs_schemes_quota_goals>`, the

Documentation/admin-guide/mm/kho.rst

Lines changed: 11 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,10 @@ per NUMA node scratch regions on boot.
2828
Perform a KHO kexec
2929
===================
3030

31-
First, before you perform a KHO kexec, you need to move the system into
32-
the :ref:`KHO finalization phase <kho-finalization-phase>` ::
33-
34-
$ echo 1 > /sys/kernel/debug/kho/out/finalize
35-
36-
After this command, the KHO FDT is available in
37-
``/sys/kernel/debug/kho/out/fdt``. Other subsystems may also register
38-
their own preserved sub FDTs under
39-
``/sys/kernel/debug/kho/out/sub_fdts/``.
40-
41-
Next, load the target payload and kexec into it. It is important that you
42-
use the ``-s`` parameter to use the in-kernel kexec file loader, as user
43-
space kexec tooling currently has no support for KHO with the user space
44-
based file loader ::
31+
To perform a KHO kexec, load the target payload and kexec into it. It
32+
is important that you use the ``-s`` parameter to use the in-kernel
33+
kexec file loader, as user space kexec tooling currently has no
34+
support for KHO with the user space based file loader ::
4535

4636
# kexec -l /path/to/bzImage --initrd /path/to/initrd -s
4737
# kexec -e
@@ -52,40 +42,19 @@ For example, if you used ``reserve_mem`` command line parameter to create
5242
an early memory reservation, the new kernel will have that memory at the
5343
same physical address as the old kernel.
5444

55-
Abort a KHO exec
56-
================
57-
58-
You can move the system out of KHO finalization phase again by calling ::
59-
60-
$ echo 0 > /sys/kernel/debug/kho/out/active
61-
62-
After this command, the KHO FDT is no longer available in
63-
``/sys/kernel/debug/kho/out/fdt``.
64-
6545
debugfs Interfaces
6646
==================
6747

48+
These debugfs interfaces are available when the kernel is compiled with
49+
``CONFIG_KEXEC_HANDOVER_DEBUGFS`` enabled.
50+
6851
Currently KHO creates the following debugfs interfaces. Notice that these
6952
interfaces may change in the future. They will be moved to sysfs once KHO is
7053
stabilized.
7154

72-
``/sys/kernel/debug/kho/out/finalize``
73-
Kexec HandOver (KHO) allows Linux to transition the state of
74-
compatible drivers into the next kexec'ed kernel. To do so,
75-
device drivers will instruct KHO to preserve memory regions,
76-
which could contain serialized kernel state.
77-
While the state is serialized, they are unable to perform
78-
any modifications to state that was serialized, such as
79-
handed over memory allocations.
80-
81-
When this file contains "1", the system is in the transition
82-
state. When contains "0", it is not. To switch between the
83-
two states, echo the respective number into this file.
84-
8555
``/sys/kernel/debug/kho/out/fdt``
86-
When KHO state tree is finalized, the kernel exposes the
87-
flattened device tree blob that carries its current KHO
88-
state in this file. Kexec user space tooling can use this
56+
The kernel exposes the flattened device tree blob that carries its
57+
current KHO state in this file. Kexec user space tooling can use this
8958
as input file for the KHO payload image.
9059

9160
``/sys/kernel/debug/kho/out/scratch_len``
@@ -100,8 +69,8 @@ stabilized.
10069
it should place its payload images.
10170

10271
``/sys/kernel/debug/kho/out/sub_fdts/``
103-
In the KHO finalization phase, KHO producers register their own
104-
FDT blob under this directory.
72+
KHO producers can register their own FDT or another binary blob under
73+
this directory.
10574

10675
``/sys/kernel/debug/kho/in/fdt``
10776
When the kernel was booted with Kexec HandOver (KHO),

0 commit comments

Comments
 (0)