[PATCH 04/12] kho: add callback for table pages
Mike Rapoport
rppt at kernel.org
Mon May 11 04:50:06 PDT 2026
On Wed, Apr 29, 2026 at 03:39:06PM +0200, Pratyush Yadav wrote:
> From: "Pratyush Yadav (Google)" <pratyush at kernel.org>
>
> The KHO memory preservation radix tree does not mark the table pages
> themselves as scratch. This is done to avoid a circular dependency where
> preserving a page can lead of allocating other preserved pages. This
> means any walker looking for free ranges of memory outside of scratch
> areas will ignore the table
>
> Add a table callback that is invoked for each table page. The callback
A sentence why a table callback helps would be nice here :)
> is given the physical address of the table page.
>
> Signed-off-by: Pratyush Yadav (Google) <pratyush at kernel.org>
> ---
> include/linux/kho_radix_tree.h | 3 +++
> kernel/liveupdate/kexec_handover.c | 12 ++++++++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/include/linux/kho_radix_tree.h b/include/linux/kho_radix_tree.h
> index 030da6399d28..fe7151d89361 100644
> --- a/include/linux/kho_radix_tree.h
> +++ b/include/linux/kho_radix_tree.h
> @@ -37,12 +37,15 @@ struct kho_radix_tree {
> /**
> * struct kho_radix_walk_cb - Callbacks for KHO radix tree walk.
> * @key: Called on each present key in the radix tree.
> + * @table: Called on each table of the radix tree itself. Receives the
> + * physical address of the page containing the table.
> *
> * For each callback, a return value of 0 continues the walk and a non-zero
> * return value is directly returned to the caller.
> */
> struct kho_radix_walk_cb {
> int (*key)(unsigned long key);
> + int (*table)(phys_addr_t phys);
Naming is hard ;-)
> };
>
--
Sincerely yours,
Mike.
More information about the kexec
mailing list