Lines Matching full:kho
9 #define pr_fmt(fmt) "KHO: " fmt
25 * KHO is tightly coupled with mm init and needs access to some of mm
31 #define KHO_FDT_COMPATIBLE "kho-v1"
47 early_param("kho", kho_parse_enable);
50 * Keep track of memory that is to be preserved across KHO.
233 * but the KHO successor kernel only needs to process them once in order.
376 * With KHO enabled, memory can become fragmented because KHO regions may
378 * safe zones that we will never see KHO allocations from. This is where we
499 * With KHO we can preserve arbitrary pages in the system. To ensure we still
503 * problem for us during KHO because we can just move them somewhere else.
603 * kho_add_subtree - record the physical address of a sub FDT in KHO root tree.
604 * @ser: serialization control object passed by KHO notifiers.
608 * Creates a new child node named @name in KHO root FDT and records
610 * by KHO for the new kernel to retrieve it after kexec.
613 * ``/sys/kernel/debug/kho/out/sub_fdts/@name``.
639 struct mutex lock; /* protects KHO FDT finalization */
673 * Instructs KHO to preserve the whole folio across kexec. The order
696 * Instructs KHO to preserve the memory range from @phys to @phys + @size
736 /* Handling for debug/kho/out */
787 pr_err("Failed to abort KHO finalization: %d\n", err); in kho_abort()
805 * KHO callers. in kho_finalize()
834 pr_err("Failed to convert KHO state tree: %d\n", err); in kho_finalize()
990 /* Handling for debugfs/kho/in */
1054 debugfs_root = debugfs_create_dir("kho", NULL); in kho_init()
1067 * Failure to create /sys/kernel/debug/kho/in does not prevent in kho_init()
1068 * reviving state from KHO and setting up KHO for the next in kho_init()
1140 pr_warn("failed to restore folio for KHO fdt\n"); in kho_memory_init()
1225 pr_warn("disabling KHO revival: %d\n", err); in kho_populate()
1239 image->kho.fdt = page_to_phys(kho_out.ser.fdt); in kho_fill_kimage()
1255 image->kho.scratch = &image->segment[image->nr_segments - 1]; in kho_fill_kimage()
1272 /* Try to fit the kimage into our KHO scratch region */ in kho_walk_scratch()