Re: [PATCH v6 04/13] liveupdate: register luo_ser as KHO subtree

2026-06-03 Thread Mike Rapoport
On Wed, 03 Jun 2026 03:28:55 +, Pasha Tatashin  
wrote:
> Entirely remove the LUO FDT wrapper since the FDT only carries the
> compatible string and the pointer to the centralized struct luo_ser.
> Instead, register the struct luo_ser via the KHO raw subtree
> API, placing the compatibility string inside the structure itself.

Acked-by: Mike Rapoport (Microsoft) 

-- 
Sincerely yours,
Mike.




Re: [PATCH v6 04/13] liveupdate: register luo_ser as KHO subtree

2026-06-03 Thread Mike Rapoport
On Wed, Jun 03, 2026 at 09:50:24AM +0300, Mike Rapoport wrote:
> # Add your code comments below. There is no need to trim or delete
> # any existing content -- just insert your comments under the relevant
> # lines of code. Lines starting with "> " are quoted diff context and
> # lines starting with "| " are comments from other reviewers.
> # The final email will be reformatted automatically to include only
> # the sections that have your comments.
> #

looks like b4 review bug or misuse from my side :)

-- 
Sincerely yours,
Mike.



Re: [PATCH v6 04/13] liveupdate: register luo_ser as KHO subtree

2026-06-02 Thread Mike Rapoport
# Add your code comments below. There is no need to trim or delete
# any existing content -- just insert your comments under the relevant
# lines of code. Lines starting with "> " are quoted diff context and
# lines starting with "| " are comments from other reviewers.
# The final email will be reformatted automatically to include only
# the sections that have your comments.
#
> Entirely remove the LUO FDT wrapper since the FDT only carries the
> compatible string and the pointer to the centralized struct luo_ser.
> Instead, register the struct luo_ser via the KHO raw subtree
> API, placing the compatibility string inside the structure itself.
> 
> Signed-off-by: Pasha Tatashin 
>
> diff --git a/include/linux/kho/abi/luo.h b/include/linux/kho/abi/luo.h
> index 1b2f865a771a..9a4fe491812b 100644
> --- a/include/linux/kho/abi/luo.h
> +++ b/include/linux/kho/abi/luo.h
> @@ -10,11 +10,11 @@
>   *
>   * Live Update Orchestrator uses the stable Application Binary Interface
>   * defined below to pass state from a pre-update kernel to a post-update
> - * kernel. The ABI is built upon the Kexec HandOver framework and uses a
> - * Flattened Device Tree to describe the preserved data.
> + * kernel. The ABI is built upon the Kexec HandOver framework and registers
> + * the central `struct luo_ser` via the KHO raw subtree API.
>   *
> - * This interface is a contract. Any modification to the FDT structure, node
> - * properties, compatible strings, or the layout of the `__packed` 
> serialization
> + * This interface is a contract. Any modification to the structure fields,
> + * compatible strings, or the layout of the `__packed` serialization
>   * structures defined here constitutes a breaking change. Such changes 
> require
>   * incrementing the version number in the relevant `_COMPATIBLE` string to
>   * prevent a new kernel from misinterpreting data from an old kernel.
> @@ -23,31 +23,15 @@
>   * however, backward/forward compatibility is only guaranteed for kernels
>   * supporting the same ABI version.
>   *
> - * FDT Structure Overview:
> + * KHO Structure Overview:
>   *   The entire LUO state is encapsulated within a single KHO entry named 
> "LUO".
> - *   This entry contains an FDT with the following layout:
> - *
> - *   .. code-block:: none
> - *
> - * / {
> - * compatible = "luo-v2";
> - * luo-abi-header = ;
> - * };
> - *
> - * Main LUO Node (/):
> - *
> - *   - compatible: "luo-v2"
> - * Identifies the overall LUO ABI version.
> - *   - luo-abi-header: u64
> - * The physical address of `struct luo_ser`.
> + *   This entry contains the `struct luo_ser` structure.
>   *
>   * Serialization Structures:
> - *   The FDT properties point to memory regions containing arrays of simple,
> - *   `__packed` structures. These structures contain the actual preserved 
> state.
> - *
>   *   - struct luo_ser:
>   * The central ABI structure that contains the overall state of the LUO.
> - * It includes the liveupdate-number and pointers to sessions and FLBs.
> + * It includes the compatibility string, the liveupdate-number, and 
> pointers
> + * to sessions and FLBs.
>   *
>   *   - struct luo_session_header_ser:
>   * Header for the session array. Contains the total page count of the
> @@ -78,26 +62,27 @@
>  #ifndef _LINUX_KHO_ABI_LUO_H
>  #define _LINUX_KHO_ABI_LUO_H
>  
> +#include 
>  #include 
>  
>  /*
> - * The LUO FDT hooks all LUO state for sessions, fds, etc.
> + * The LUO state is registered under this KHO entry name.
>   */
> -#define LUO_FDT_SIZE PAGE_SIZE
> -#define LUO_FDT_KHO_ENTRY_NAME   "LUO"
> -#define LUO_FDT_COMPATIBLE   "luo-v2"
> -#define LUO_FDT_ABI_HEADER   "luo-abi-header"
> +#define LUO_KHO_ENTRY_NAME   "LUO"
> +#define LUO_ABI_COMPATIBLE   "luo-v3"
> +#define LUO_ABI_COMPAT_LEN   ALIGN(sizeof(LUO_ABI_COMPATIBLE), 8)
>  
>  /**
>   * struct luo_ser - Centralized LUO ABI header.
> + * @compatible: Compatibility string identifying the LUO ABI version.
>   * @liveupdate_num: A counter tracking the number of successful live updates.
>   * @sessions_pa:Physical address of the first session block header.
>   * @flbs_pa:Physical address of the FLB header.
>   *
> - * This structure is the root of all preserved LUO state. It is pointed to by
> - * the "luo-abi-header" property in the LUO FDT.
> + * This structure is the root of all preserved LUO state.
>   */
>  struct luo_ser {
> + char compatible[LUO_ABI_COMPAT_LEN];
>   u64 liveupdate_num;
>   u64 sessions_pa;
>   u64 flbs_pa;
> @@ -111,7 +96,7 @@ struct luo_ser {
>   * @data:Private data
>   * @token:   User provided token for this file
>   *
> - * If this structure is modified, LUO_SESSION_COMPATIBLE must be updated.
> + * If this structure is modified, `LUO_ABI_COMPATIBLE` must be updated.
>   */
>  struct luo_file_ser {
>   char compatible[LIVEUPDATE_HNDL_COMPAT_LENGTH];
> @@ -142,7 +127,7 @@ struct luo_file_set_ser {
>   * physica