[PATCH 0/5] Fine granular configuration

Luca Fancellu posted 5 patches 8 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20230808080010.3858575-1-luca.fancellu@arm.com
There is a newer version of this series
xen/arch/arm/Kconfig                      |   28 +
xen/arch/arm/Makefile                     |    7 +-
xen/arch/arm/bootfdt.c                    |  161 +-
xen/arch/arm/dom0less-build.c             | 1086 ++++++
xen/arch/arm/domain_build.c               | 4096 ++++++---------------
xen/arch/arm/efi/efi-boot.h               |    4 +
xen/arch/arm/gic-v3.c                     |    4 +
xen/arch/arm/include/asm/dom0less-build.h |   35 +
xen/arch/arm/include/asm/domain_build.h   |   33 +
xen/arch/arm/include/asm/kernel.h         |    1 +
xen/arch/arm/include/asm/setup.h          |    1 -
xen/arch/arm/include/asm/static-memory.h  |   50 +
xen/arch/arm/include/asm/static-shmem.h   |   72 +
xen/arch/arm/setup.c                      |   58 +-
xen/arch/arm/static-memory.c              |  294 ++
xen/arch/arm/static-shmem.c               |  515 +++
xen/arch/arm/vgic.c                       |    2 +
xen/arch/arm/vgic/Makefile                |    4 +-
18 files changed, 3357 insertions(+), 3094 deletions(-)
create mode 100644 xen/arch/arm/dom0less-build.c
create mode 100644 xen/arch/arm/include/asm/dom0less-build.h
create mode 100644 xen/arch/arm/include/asm/static-memory.h
create mode 100644 xen/arch/arm/include/asm/static-shmem.h
create mode 100644 xen/arch/arm/static-memory.c
create mode 100644 xen/arch/arm/static-shmem.c
[PATCH 0/5] Fine granular configuration
Posted by Luca Fancellu 8 months, 3 weeks ago
This serie aims to add more modularity to some feature that can be excluded
without issues from the build.

The first patch is already reviewed.

Luca Fancellu (5):
  arm/gicv2: make GICv2 driver and vGICv2 optional
  xen/arm: Add asm/domain.h include to kernel.h
  arm/dom0less: put dom0less feature code in a separate module
  xen/arm: Move static memory build code in separate modules
  arm/dom0less: introduce Kconfig for dom0less feature

 xen/arch/arm/Kconfig                      |   28 +
 xen/arch/arm/Makefile                     |    7 +-
 xen/arch/arm/bootfdt.c                    |  161 +-
 xen/arch/arm/dom0less-build.c             | 1086 ++++++
 xen/arch/arm/domain_build.c               | 4096 ++++++---------------
 xen/arch/arm/efi/efi-boot.h               |    4 +
 xen/arch/arm/gic-v3.c                     |    4 +
 xen/arch/arm/include/asm/dom0less-build.h |   35 +
 xen/arch/arm/include/asm/domain_build.h   |   33 +
 xen/arch/arm/include/asm/kernel.h         |    1 +
 xen/arch/arm/include/asm/setup.h          |    1 -
 xen/arch/arm/include/asm/static-memory.h  |   50 +
 xen/arch/arm/include/asm/static-shmem.h   |   72 +
 xen/arch/arm/setup.c                      |   58 +-
 xen/arch/arm/static-memory.c              |  294 ++
 xen/arch/arm/static-shmem.c               |  515 +++
 xen/arch/arm/vgic.c                       |    2 +
 xen/arch/arm/vgic/Makefile                |    4 +-
 18 files changed, 3357 insertions(+), 3094 deletions(-)
 create mode 100644 xen/arch/arm/dom0less-build.c
 create mode 100644 xen/arch/arm/include/asm/dom0less-build.h
 create mode 100644 xen/arch/arm/include/asm/static-memory.h
 create mode 100644 xen/arch/arm/include/asm/static-shmem.h
 create mode 100644 xen/arch/arm/static-memory.c
 create mode 100644 xen/arch/arm/static-shmem.c

-- 
2.34.1
Moving Dom0less to common, Was: [PATCH 0/5] Fine granular configuration
Posted by Stefano Stabellini 8 months, 3 weeks ago
Adding hyperlaunch and x86 maintainers.


Hi Luca,

This patch series is very timely. You might not have realized but we
were just discussing with the hyperlaunch guys to move dom0less code to
common.

Your series is a great step in the right direction. However, we don't
want to move the dom0less code twice because it would make 'git blame'
very hard to use.

I wonder if I could ask you to move the code to xen/common/ instead. I
am not asking you to make it buildable on x86, as that would take more
work and also something along the lines of this patch series from
Christopher:
https://patchew.org/Xen/20230701071835.41599-1-christopher.w.clark@gmail.com/

The new code could be protected by CONFIG_DOM0LESS, and CONFIG_DOM0LESS
could only be selectable on ARM, not on x86.

Would you be OK with doing some extra work to move it to xen/common
instead?

Would the x86 maintainers be OK with it too? Of course further changes
will be needed to make it useable on x86, but looking at the series from
Christopher, the two sets of internal interfaces (dom0less/ARM and
hyperlaunch/x86) are very much aligned and similar already.

Cheers,

Stefano


On Tue, 8 Aug 2023, Luca Fancellu wrote:
> This serie aims to add more modularity to some feature that can be excluded
> without issues from the build.
> 
> The first patch is already reviewed.
> 
> Luca Fancellu (5):
>   arm/gicv2: make GICv2 driver and vGICv2 optional
>   xen/arm: Add asm/domain.h include to kernel.h
>   arm/dom0less: put dom0less feature code in a separate module
>   xen/arm: Move static memory build code in separate modules
>   arm/dom0less: introduce Kconfig for dom0less feature
> 
>  xen/arch/arm/Kconfig                      |   28 +
>  xen/arch/arm/Makefile                     |    7 +-
>  xen/arch/arm/bootfdt.c                    |  161 +-
>  xen/arch/arm/dom0less-build.c             | 1086 ++++++
>  xen/arch/arm/domain_build.c               | 4096 ++++++---------------
>  xen/arch/arm/efi/efi-boot.h               |    4 +
>  xen/arch/arm/gic-v3.c                     |    4 +
>  xen/arch/arm/include/asm/dom0less-build.h |   35 +
>  xen/arch/arm/include/asm/domain_build.h   |   33 +
>  xen/arch/arm/include/asm/kernel.h         |    1 +
>  xen/arch/arm/include/asm/setup.h          |    1 -
>  xen/arch/arm/include/asm/static-memory.h  |   50 +
>  xen/arch/arm/include/asm/static-shmem.h   |   72 +
>  xen/arch/arm/setup.c                      |   58 +-
>  xen/arch/arm/static-memory.c              |  294 ++
>  xen/arch/arm/static-shmem.c               |  515 +++
>  xen/arch/arm/vgic.c                       |    2 +
>  xen/arch/arm/vgic/Makefile                |    4 +-
>  18 files changed, 3357 insertions(+), 3094 deletions(-)
>  create mode 100644 xen/arch/arm/dom0less-build.c
>  create mode 100644 xen/arch/arm/include/asm/dom0less-build.h
>  create mode 100644 xen/arch/arm/include/asm/static-memory.h
>  create mode 100644 xen/arch/arm/include/asm/static-shmem.h
>  create mode 100644 xen/arch/arm/static-memory.c
>  create mode 100644 xen/arch/arm/static-shmem.c
> 
> -- 
> 2.34.1
>
Re: Moving Dom0less to common, Was: [PATCH 0/5] Fine granular configuration
Posted by Jan Beulich 8 months, 3 weeks ago
On 09.08.2023 21:51, Stefano Stabellini wrote:
> Would the x86 maintainers be OK with it too? Of course further changes
> will be needed to make it useable on x86, but looking at the series from
> Christopher, the two sets of internal interfaces (dom0less/ARM and
> hyperlaunch/x86) are very much aligned and similar already.

Moving common code to common/ is surely okay with me. How much wants
moving is (apparently) a different question.

Jan
Re: Moving Dom0less to common, Was: [PATCH 0/5] Fine granular configuration
Posted by Luca Fancellu 8 months, 3 weeks ago

> On 10 Aug 2023, at 10:07, Jan Beulich <jbeulich@suse.com> wrote:
> 
> On 09.08.2023 21:51, Stefano Stabellini wrote:
>> Would the x86 maintainers be OK with it too? Of course further changes
>> will be needed to make it useable on x86, but looking at the series from
>> Christopher, the two sets of internal interfaces (dom0less/ARM and
>> hyperlaunch/x86) are very much aligned and similar already.
> 
> Moving common code to common/ is surely okay with me. How much wants
> moving is (apparently) a different question.

Would x86 maintainers (and who is taking care of common/) be ok for the dom0less
code to be part of common/ but in this first stage be protected by a dependency on the
Kconfig ARM?

In a second stage the hyperlaunch people would do the proper modification to use the
common boot modules to delete that dependency.

Provided that we have an answer for the question Michal raised.

Cheers,
Luca
Re: Moving Dom0less to common, Was: [PATCH 0/5] Fine granular configuration
Posted by Jan Beulich 8 months, 3 weeks ago
On 10.08.2023 12:43, Luca Fancellu wrote:
>> On 10 Aug 2023, at 10:07, Jan Beulich <jbeulich@suse.com> wrote:
>> On 09.08.2023 21:51, Stefano Stabellini wrote:
>>> Would the x86 maintainers be OK with it too? Of course further changes
>>> will be needed to make it useable on x86, but looking at the series from
>>> Christopher, the two sets of internal interfaces (dom0less/ARM and
>>> hyperlaunch/x86) are very much aligned and similar already.
>>
>> Moving common code to common/ is surely okay with me. How much wants
>> moving is (apparently) a different question.
> 
> Would x86 maintainers (and who is taking care of common/) be ok for the dom0less
> code to be part of common/ but in this first stage be protected by a dependency on the
> Kconfig ARM?

It's actually more than just being okay with this: I wouldn't be okay with
there not being such a guard, as then x86 binaries would carry dead code.

Jan
Re: Moving Dom0less to common, Was: [PATCH 0/5] Fine granular configuration
Posted by Michal Orzel 8 months, 3 weeks ago

On 09/08/2023 21:51, Stefano Stabellini wrote:
> 
> 
> Adding hyperlaunch and x86 maintainers.
> 
> 
> Hi Luca,
> 
> This patch series is very timely. You might not have realized but we
> were just discussing with the hyperlaunch guys to move dom0less code to
> common.
> 
> Your series is a great step in the right direction. However, we don't
> want to move the dom0less code twice because it would make 'git blame'
> very hard to use.
> 
> I wonder if I could ask you to move the code to xen/common/ instead. I
> am not asking you to make it buildable on x86, as that would take more
> work and also something along the lines of this patch series from
> Christopher:
> https://patchew.org/Xen/20230701071835.41599-1-christopher.w.clark@gmail.com/
The question is whether we want to move everything related to dom0less parse/build to common.
There are parts that make sense only for Arm. Also, a plain move might not be what
hyperlaunch wants and what Daniel described in his plans for the future. FWIU, hyperlaunch
wants to operate on flattened device tree whereas the majority of dom0less build/parse code
is done using unflattened device tree (FDT is used at the very early stage of the boot and is contained
in bootfdt.c). Maintaining two sets of parsers is not the best idea.

@Daniel,Christopher, what is the reason of using FDT and not DT on hyperlaunch?
Is is because there are parts of configuration that you want to probe early (e.g. XSM module)?

~Michal