[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 0/8] Move parts of Arm's Dom0less to common code



The patch series needs to be rebased. Actually, I couldn't find a
baseline where to apply patch #2 successfully

On Mon, 14 Apr 2025, Oleksii Kurochko wrote:
> Some parts of Arm's Dom0less solution could be moved to common code as they 
> are
> not truly Arm-specific.
> 
> Most of the code is moved as is, with only minor changes introduced to provide
> abstractions that hide Arm-specific details, while maintaining functional
> equivalence with original Arm's code.
> 
> There are several open questions:
> 1. Probably, the introduced headers currently placed in asm-generic should
>    instead reside in the xen/include folder.
> 2. Perhaps the introduced *.c files should always be placed elsewhere. They
>    have been put in device-tree common as they somewhat depend on device tree
>    functionality.
> 3. The u64 and u32 types are widely used in the code where device tree
>    functionality is implemented because these types are used in device tree
>    function arguments.
>    Should this be reworked to use uint32_t and uint64_t instead? If so, will 
> it
>    also be necessary to change the type of variables passed to dt-related
>    functions, or should the argument types of device tree functions be updated
>    too? For example:
>    ```
>     u64 mem;
>     ...
>     rc = dt_property_read_u64(node, "memory", &mem);
>    ```
>    where dt_property_read_u64 is declared as:
>      bool dt_property_read_u64(... , u64 *out_value);
> 4. Instead of providing init_intc_phandle() (see the patch: [1]), perhaps it
>    would be better to add a for loop in domain_handle_dtb_bootmodule()?
>    Something like:
>    ```
>     bool is_intc_phandle_inited = false;
>     for ( unsigned int i = 0; i < ARRAY_SIZE(intc_names_array); i++ )
>     {
>         if ( dt_node_cmp(name, intc_names_array[i]) == 0 )
>         {
>             uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);
> 
>             if ( phandle_intc != 0 )
>                 kinfo->phandle_intc = phandle_intc;
> 
>             is_intc_phandle_inited = true;
>             break;
>         }
>     }
> 
>     if ( is_intc_phandle_inited ) continue;
>   ```
> 
> [1]] [PATCH v1 9/9] xen/common: dom0less: introduce common dom0less-build.c
> 
> ---
> Changes in v2:
> - Update cover letter message.
> - Rebase on top of the current staging.
> - Drop patches:
>    - asm-generic: move Arm's static-memory.h to asm-generic
>    - asm-generic: move Arm's static-shmem.h to asm-generic
>   as in the nearest future there is no real users of STATIC_MEMORY and
>   STATIC_SHMEM.
> - Add new cleanup patch:
>   [PATCH v2 1/8] xen/arm: drop declaration of handle_device_interrupts()
> - All other changes are patch specific. Please check them seprately for each
>   patch
> ---
> 
> Oleksii Kurochko (8):
>   xen/arm: drop declaration of handle_device_interrupts()
>   xen/common: dom0less: make some parts of Arm's CONFIG_DOM0LESS common
>   asm-generic: move parts of Arm's asm/kernel.h to common code
>   arm/static-shmem.h: drop inclusion of asm/setup.h
>   asm-generic: move some parts of Arm's domain_build.h to common
>   xen/common: dom0less: introduce common kernel.c
>   xen/common: dom0less: introduce common domain-build.c
>   xen/common: dom0less: introduce common dom0less-build.c
> 
>  xen/arch/arm/Kconfig                      |  10 +-
>  xen/arch/arm/acpi/domain_build.c          |   4 +-
>  xen/arch/arm/dom0less-build.c             | 997 +++-------------------
>  xen/arch/arm/domain_build.c               | 411 +--------
>  xen/arch/arm/include/asm/Makefile         |   1 +
>  xen/arch/arm/include/asm/dom0less-build.h |  32 -
>  xen/arch/arm/include/asm/domain_build.h   |  31 +-
>  xen/arch/arm/include/asm/kernel.h         | 126 +--
>  xen/arch/arm/include/asm/static-memory.h  |   2 +-
>  xen/arch/arm/include/asm/static-shmem.h   |   2 +-
>  xen/arch/arm/kernel.c                     | 234 +----
>  xen/arch/arm/static-memory.c              |   1 +
>  xen/arch/arm/static-shmem.c               |   3 +-
>  xen/common/Kconfig                        |  19 +
>  xen/common/device-tree/Makefile           |   3 +
>  xen/common/device-tree/dom0less-build.c   | 891 +++++++++++++++++++
>  xen/common/device-tree/domain-build.c     | 404 +++++++++
>  xen/common/device-tree/dt-overlay.c       |   4 +-
>  xen/common/device-tree/kernel.c           | 242 ++++++
>  xen/include/asm-generic/dom0less-build.h  |  82 ++
>  xen/include/xen/fdt-domain-build.h        |  77 ++
>  xen/include/xen/fdt-kernel.h              | 146 ++++
>  22 files changed, 2013 insertions(+), 1709 deletions(-)
>  delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
>  create mode 100644 xen/common/device-tree/dom0less-build.c
>  create mode 100644 xen/common/device-tree/domain-build.c
>  create mode 100644 xen/common/device-tree/kernel.c
>  create mode 100644 xen/include/asm-generic/dom0less-build.h
>  create mode 100644 xen/include/xen/fdt-domain-build.h
>  create mode 100644 xen/include/xen/fdt-kernel.h
> 
> -- 
> 2.49.0
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.