diff mbox series

[v7,02/19] xen/riscv: disable unnecessary configs

Message ID c2ba247adce76c69ecd6400d791db36495b85b75.1712137031.git.oleksii.kurochko@gmail.com (mailing list archive)
State Superseded
Headers show
Series Enable build of full Xen for RISC-V | expand

Commit Message

Oleksii Kurochko April 3, 2024, 10:19 a.m. UTC
This patch disables unnecessary configs for two cases:
1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds (GitLab CI jobs).
2. By using tiny64_defconfig for non-randconfig builds.

Only configs which lead to compilation issues were disabled.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - Disable only configs which cause compilation issues.
 - Update the commit message.
---
Changes in V6:
 - Nothing changed. Only rebase.
---
Changes in V5:
 - Rebase and drop duplicated configs in EXTRA_FIXED_RANDCONFIG list
 - Update the commit message
---
Changes in V4:
 - Nothing changed. Only rebase
---
Changes in V3:
 - Remove EXTRA_FIXED_RANDCONFIG for non-randconfig jobs.
   For non-randconfig jobs, it is sufficient to disable configs by using the defconfig.
 - Remove double blank lines in build.yaml file before archlinux-current-gcc-riscv64-debug
---
Changes in V2:
 - update the commit message.
 - remove xen/arch/riscv/Kconfig changes.
---
 automation/gitlab-ci/build.yaml         |  5 +++++
 xen/arch/riscv/configs/tiny64_defconfig | 11 +++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

Comments

Jan Beulich April 3, 2024, 10:28 a.m. UTC | #1
On 03.04.2024 12:19, Oleksii Kurochko wrote:
> This patch disables unnecessary configs for two cases:
> 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds (GitLab CI jobs).
> 2. By using tiny64_defconfig for non-randconfig builds.
> 
> Only configs which lead to compilation issues were disabled.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V7:
>  - Disable only configs which cause compilation issues.

Since the description doesn't go into details: While I can see that
PERF_COUNTERS and LIVEPATCH may require (a little / some more) extra
work, are HYPFS, ARGO, and XSM really causing issues?

> --- a/xen/arch/riscv/configs/tiny64_defconfig
> +++ b/xen/arch/riscv/configs/tiny64_defconfig
> @@ -1,12 +1,11 @@
> -# CONFIG_SCHED_CREDIT is not set
> -# CONFIG_SCHED_RTDS is not set
> -# CONFIG_SCHED_NULL is not set
> -# CONFIG_SCHED_ARINC653 is not set
> -# CONFIG_TRACEBUFFER is not set
>  # CONFIG_HYPFS is not set
>  # CONFIG_GRANT_TABLE is not set
> -# CONFIG_SPECULATIVE_HARDEN_ARRAY is not set
>  # CONFIG_MEM_ACCESS is not set
> +# CONFIG_ARGO is not set
> +# CONFIG_PERF_COUNTERS is not set
> +# CONFIG_COVERAGE is not set
> +# CONFIG_LIVEPATCH is not set
> +# CONFIG_XSM is not set
>  
>  CONFIG_RISCV_64=y
>  CONFIG_DEBUG=y

The description also says nothing about the items being removed.

Jan
Oleksii Kurochko April 3, 2024, 10:54 a.m. UTC | #2
On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
> On 03.04.2024 12:19, Oleksii Kurochko wrote:
> > This patch disables unnecessary configs for two cases:
> > 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
> > (GitLab CI jobs).
> > 2. By using tiny64_defconfig for non-randconfig builds.
> > 
> > Only configs which lead to compilation issues were disabled.
> > 
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V7:
> >  - Disable only configs which cause compilation issues.
> 
> Since the description doesn't go into details: While I can see that
> PERF_COUNTERS and LIVEPATCH may require (a little / some more) extra
> work, are HYPFS, ARGO, and XSM really causing issues?
For Argo, I recieved the following compilation errors:
   common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did you
   mean 'hvmmem_type_t'?
    1416 |     p2m_type_t p2mt;
         |     ^~~~~~~~~~
         |     hvmmem_type_t
   common/argo.c:1419:11: error: implicit declaration of function
   'check_get_page_from_gfn' [-Werror=implicit-function-declaration]
    1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt, &page);
         |           ^~~~~~~~~~~~~~~~~~~~~~~
   common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use in
   this function)
    1427 |     case p2m_ram_rw:
   
It seems it should be included xen/p2m-common.h and asm/p2m.h in
common/argo.c.

For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
overlooked that ):
   common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such file
   or directory
       1 | #include <asm/asm_defns.h>
   

For XSM, I recieved the following error:

   xsm/xsm_core.c:79:19: error: 'xsm_core_init' defined but not used [-
   Werror=unused-function]
      79 | static int __init xsm_core_init(const void *policy_buffer,
   size_t policy_size)

I'll add an information with compilation errors to the commit message.

~ Oleksii

> 
> > --- a/xen/arch/riscv/configs/tiny64_defconfig
> > +++ b/xen/arch/riscv/configs/tiny64_defconfig
> > @@ -1,12 +1,11 @@
> > -# CONFIG_SCHED_CREDIT is not set
> > -# CONFIG_SCHED_RTDS is not set
> > -# CONFIG_SCHED_NULL is not set
> > -# CONFIG_SCHED_ARINC653 is not set
> > -# CONFIG_TRACEBUFFER is not set
> >  # CONFIG_HYPFS is not set
> >  # CONFIG_GRANT_TABLE is not set
> > -# CONFIG_SPECULATIVE_HARDEN_ARRAY is not set
> >  # CONFIG_MEM_ACCESS is not set
> > +# CONFIG_ARGO is not set
> > +# CONFIG_PERF_COUNTERS is not set
> > +# CONFIG_COVERAGE is not set
> > +# CONFIG_LIVEPATCH is not set
> > +# CONFIG_XSM is not set
> >  
> >  CONFIG_RISCV_64=y
> >  CONFIG_DEBUG=y
> 
> The description also says nothing about the items being removed.
> 
> Jan
Jürgen Groß April 3, 2024, 11:18 a.m. UTC | #3
On 03.04.24 12:54, Oleksii wrote:
> On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
>> On 03.04.2024 12:19, Oleksii Kurochko wrote:
>>> This patch disables unnecessary configs for two cases:
>>> 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
>>> (GitLab CI jobs).
>>> 2. By using tiny64_defconfig for non-randconfig builds.
>>>
>>> Only configs which lead to compilation issues were disabled.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in V7:
>>>   - Disable only configs which cause compilation issues.
>>
>> Since the description doesn't go into details: While I can see that
>> PERF_COUNTERS and LIVEPATCH may require (a little / some more) extra
>> work, are HYPFS, ARGO, and XSM really causing issues?
> For Argo, I recieved the following compilation errors:
>     common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did you
>     mean 'hvmmem_type_t'?
>      1416 |     p2m_type_t p2mt;
>           |     ^~~~~~~~~~
>           |     hvmmem_type_t
>     common/argo.c:1419:11: error: implicit declaration of function
>     'check_get_page_from_gfn' [-Werror=implicit-function-declaration]
>      1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt, &page);
>           |           ^~~~~~~~~~~~~~~~~~~~~~~
>     common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use in
>     this function)
>      1427 |     case p2m_ram_rw:
>     
> It seems it should be included xen/p2m-common.h and asm/p2m.h in
> common/argo.c.
> 
> For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
> overlooked that ):
>     common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such file
>     or directory
>         1 | #include <asm/asm_defns.h>

Hmm, this seems to be needed for ASM_INT(), which is currently defined the same
way for arm and x86. Maybe we should move that macro to xen/linkage.h and
include that one instead of asm_defns.h?


Juergen
Jan Beulich April 3, 2024, 11:47 a.m. UTC | #4
On 03.04.2024 13:18, Juergen Gross wrote:
> On 03.04.24 12:54, Oleksii wrote:
>> On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
>>> On 03.04.2024 12:19, Oleksii Kurochko wrote:
>>>> This patch disables unnecessary configs for two cases:
>>>> 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
>>>> (GitLab CI jobs).
>>>> 2. By using tiny64_defconfig for non-randconfig builds.
>>>>
>>>> Only configs which lead to compilation issues were disabled.
>>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> ---
>>>> Changes in V7:
>>>>   - Disable only configs which cause compilation issues.
>>>
>>> Since the description doesn't go into details: While I can see that
>>> PERF_COUNTERS and LIVEPATCH may require (a little / some more) extra
>>> work, are HYPFS, ARGO, and XSM really causing issues?
>> For Argo, I recieved the following compilation errors:
>>     common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did you
>>     mean 'hvmmem_type_t'?
>>      1416 |     p2m_type_t p2mt;
>>           |     ^~~~~~~~~~
>>           |     hvmmem_type_t
>>     common/argo.c:1419:11: error: implicit declaration of function
>>     'check_get_page_from_gfn' [-Werror=implicit-function-declaration]
>>      1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt, &page);
>>           |           ^~~~~~~~~~~~~~~~~~~~~~~
>>     common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use in
>>     this function)
>>      1427 |     case p2m_ram_rw:
>>     
>> It seems it should be included xen/p2m-common.h and asm/p2m.h in
>> common/argo.c.
>>
>> For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
>> overlooked that ):
>>     common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such file
>>     or directory
>>         1 | #include <asm/asm_defns.h>
> 
> Hmm, this seems to be needed for ASM_INT(), which is currently defined the same
> way for arm and x86. Maybe we should move that macro to xen/linkage.h and
> include that one instead of asm_defns.h?

Indeed while doing the entry annotation work (also touching the build logic
here iirc) I was thinking of doing so.

Jan
Jürgen Groß April 3, 2024, 11:50 a.m. UTC | #5
On 03.04.24 13:47, Jan Beulich wrote:
> On 03.04.2024 13:18, Juergen Gross wrote:
>> On 03.04.24 12:54, Oleksii wrote:
>>> On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
>>>> On 03.04.2024 12:19, Oleksii Kurochko wrote:
>>>>> This patch disables unnecessary configs for two cases:
>>>>> 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
>>>>> (GitLab CI jobs).
>>>>> 2. By using tiny64_defconfig for non-randconfig builds.
>>>>>
>>>>> Only configs which lead to compilation issues were disabled.
>>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> ---
>>>>> Changes in V7:
>>>>>    - Disable only configs which cause compilation issues.
>>>>
>>>> Since the description doesn't go into details: While I can see that
>>>> PERF_COUNTERS and LIVEPATCH may require (a little / some more) extra
>>>> work, are HYPFS, ARGO, and XSM really causing issues?
>>> For Argo, I recieved the following compilation errors:
>>>      common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did you
>>>      mean 'hvmmem_type_t'?
>>>       1416 |     p2m_type_t p2mt;
>>>            |     ^~~~~~~~~~
>>>            |     hvmmem_type_t
>>>      common/argo.c:1419:11: error: implicit declaration of function
>>>      'check_get_page_from_gfn' [-Werror=implicit-function-declaration]
>>>       1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt, &page);
>>>            |           ^~~~~~~~~~~~~~~~~~~~~~~
>>>      common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use in
>>>      this function)
>>>       1427 |     case p2m_ram_rw:
>>>      
>>> It seems it should be included xen/p2m-common.h and asm/p2m.h in
>>> common/argo.c.
>>>
>>> For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
>>> overlooked that ):
>>>      common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such file
>>>      or directory
>>>          1 | #include <asm/asm_defns.h>
>>
>> Hmm, this seems to be needed for ASM_INT(), which is currently defined the same
>> way for arm and x86. Maybe we should move that macro to xen/linkage.h and
>> include that one instead of asm_defns.h?
> 
> Indeed while doing the entry annotation work (also touching the build logic
> here iirc) I was thinking of doing so.

Okay, I'm preparing a patch.


Juergen
Jan Beulich April 3, 2024, 11:53 a.m. UTC | #6
On 03.04.2024 12:54, Oleksii wrote:
> On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
>> On 03.04.2024 12:19, Oleksii Kurochko wrote:
>>> This patch disables unnecessary configs for two cases:
>>> 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
>>> (GitLab CI jobs).
>>> 2. By using tiny64_defconfig for non-randconfig builds.
>>>
>>> Only configs which lead to compilation issues were disabled.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in V7:
>>>  - Disable only configs which cause compilation issues.
>>
>> Since the description doesn't go into details: While I can see that
>> PERF_COUNTERS and LIVEPATCH may require (a little / some more) extra
>> work, are HYPFS, ARGO, and XSM really causing issues?
> For Argo, I recieved the following compilation errors:
>    common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did you
>    mean 'hvmmem_type_t'?
>     1416 |     p2m_type_t p2mt;
>          |     ^~~~~~~~~~
>          |     hvmmem_type_t
>    common/argo.c:1419:11: error: implicit declaration of function
>    'check_get_page_from_gfn' [-Werror=implicit-function-declaration]
>     1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt, &page);
>          |           ^~~~~~~~~~~~~~~~~~~~~~~
>    common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use in
>    this function)
>     1427 |     case p2m_ram_rw:
>    
> It seems it should be included xen/p2m-common.h and asm/p2m.h in
> common/argo.c.
> 
> For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
> overlooked that ):
>    common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such file
>    or directory
>        1 | #include <asm/asm_defns.h>
>    
> 
> For XSM, I recieved the following error:
> 
>    xsm/xsm_core.c:79:19: error: 'xsm_core_init' defined but not used [-
>    Werror=unused-function]
>       79 | static int __init xsm_core_init(const void *policy_buffer,
>    size_t policy_size)
> 
> I'll add an information with compilation errors to the commit message.

No need to quote full compiler diagnostics, but a hint at the problems
at least. That said, perhaps we want to rather sort the issues than
disable building stuff that sooner or later you will want to build
anyway. For hypfs we look to have an approach already. For Argo what
you suggest makes sense to me; it might be nice to understand where
the P2M headers needed are coming from on x86 and Arm. Ideally common
code .c files wouldn't include asm/*.h.

For XSM I'm a little puzzled: Shouldn't RISC-V have HAS_DEVICE_TREE=y?
Then xsm_core_init() would have a caller.

Jan
Oleksii Kurochko April 4, 2024, 3:07 p.m. UTC | #7
On Wed, 2024-04-03 at 13:53 +0200, Jan Beulich wrote:
> On 03.04.2024 12:54, Oleksii wrote:
> > On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
> > > On 03.04.2024 12:19, Oleksii Kurochko wrote:
> > > > This patch disables unnecessary configs for two cases:
> > > > 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
> > > > (GitLab CI jobs).
> > > > 2. By using tiny64_defconfig for non-randconfig builds.
> > > > 
> > > > Only configs which lead to compilation issues were disabled.
> > > > 
> > > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > > ---
> > > > Changes in V7:
> > > >  - Disable only configs which cause compilation issues.
> > > 
> > > Since the description doesn't go into details: While I can see
> > > that
> > > PERF_COUNTERS and LIVEPATCH may require (a little / some more)
> > > extra
> > > work, are HYPFS, ARGO, and XSM really causing issues?
> > For Argo, I recieved the following compilation errors:
> >    common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did
> > you
> >    mean 'hvmmem_type_t'?
> >     1416 |     p2m_type_t p2mt;
> >          |     ^~~~~~~~~~
> >          |     hvmmem_type_t
> >    common/argo.c:1419:11: error: implicit declaration of function
> >    'check_get_page_from_gfn' [-Werror=implicit-function-
> > declaration]
> >     1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt,
> > &page);
> >          |           ^~~~~~~~~~~~~~~~~~~~~~~
> >    common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use
> > in
> >    this function)
> >     1427 |     case p2m_ram_rw:
> >    
> > It seems it should be included xen/p2m-common.h and asm/p2m.h in
> > common/argo.c.
> > 
> > For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
> > overlooked that ):
> >    common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such
> > file
> >    or directory
> >        1 | #include <asm/asm_defns.h>
> >    
> > 
> > For XSM, I recieved the following error:
> > 
> >    xsm/xsm_core.c:79:19: error: 'xsm_core_init' defined but not
> > used [-
> >    Werror=unused-function]
> >       79 | static int __init xsm_core_init(const void
> > *policy_buffer,
> >    size_t policy_size)
> > 
> > I'll add an information with compilation errors to the commit
> > message.
> 
> No need to quote full compiler diagnostics, but a hint at the
> problems
> at least. That said, perhaps we want to rather sort the issues than
> disable building stuff that sooner or later you will want to build
> anyway. For hypfs we look to have an approach already. For Argo what
> you suggest makes sense to me; it might be nice to understand where
> the P2M headers needed are coming from on x86 and Arm. Ideally common
> code .c files wouldn't include asm/*.h.
I'll look at where P2M header came from on x86 and Arm.

> 
> For XSM I'm a little puzzled: Shouldn't RISC-V have
> HAS_DEVICE_TREE=y?
> Then xsm_core_init() would have a caller.
It should, but I haven't add "select HAS_DEVICE_TREE" for RISC-V as no
device tree functionality hasn't been introduced yet.

~ Oleksii
Oleksii Kurochko April 11, 2024, 2:39 p.m. UTC | #8
On Wed, 2024-04-03 at 13:53 +0200, Jan Beulich wrote:
> On 03.04.2024 12:54, Oleksii wrote:
> > On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
> > > On 03.04.2024 12:19, Oleksii Kurochko wrote:
> > > > This patch disables unnecessary configs for two cases:
> > > > 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
> > > > (GitLab CI jobs).
> > > > 2. By using tiny64_defconfig for non-randconfig builds.
> > > > 
> > > > Only configs which lead to compilation issues were disabled.
> > > > 
> > > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > > ---
> > > > Changes in V7:
> > > >  - Disable only configs which cause compilation issues.
> > > 
> > > Since the description doesn't go into details: While I can see
> > > that
> > > PERF_COUNTERS and LIVEPATCH may require (a little / some more)
> > > extra
> > > work, are HYPFS, ARGO, and XSM really causing issues?
> > For Argo, I recieved the following compilation errors:
> >    common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did
> > you
> >    mean 'hvmmem_type_t'?
> >     1416 |     p2m_type_t p2mt;
> >          |     ^~~~~~~~~~
> >          |     hvmmem_type_t
> >    common/argo.c:1419:11: error: implicit declaration of function
> >    'check_get_page_from_gfn' [-Werror=implicit-function-
> > declaration]
> >     1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt,
> > &page);
> >          |           ^~~~~~~~~~~~~~~~~~~~~~~
> >    common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use
> > in
> >    this function)
> >     1427 |     case p2m_ram_rw:
> >    
> > It seems it should be included xen/p2m-common.h and asm/p2m.h in
> > common/argo.c.
> > 
> > For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
> > overlooked that ):
> >    common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such
> > file
> >    or directory
> >        1 | #include <asm/asm_defns.h>
> >    
> > 
> > For XSM, I recieved the following error:
> > 
> >    xsm/xsm_core.c:79:19: error: 'xsm_core_init' defined but not
> > used [-
> >    Werror=unused-function]
> >       79 | static int __init xsm_core_init(const void
> > *policy_buffer,
> >    size_t policy_size)
> > 
> > I'll add an information with compilation errors to the commit
> > message.
> 
> No need to quote full compiler diagnostics, but a hint at the
> problems
> at least. That said, perhaps we want to rather sort the issues than
> disable building stuff that sooner or later you will want to build
> anyway. For hypfs we look to have an approach already. For Argo what
> you suggest makes sense to me; it might be nice to understand where
> the P2M headers needed are coming from on x86 and Arm. Ideally common
> code .c files wouldn't include asm/*.h.
It seems to me that p2m.h comes for Arm from argo.c -> xen/domain.h ->
asm/domain.h and for x86 from argo.c -> xen/guest_access.h -> #include
<asm/hvm/support.h> -> asm/p2m.h.

So I can include asm/p2m.h to asm/domain.h as p2m will be used anyway
in asm/domain.h header and drop disablement of ARGO config from
*_defconfig and build.yaml for CI. Does it make sense?

~ Oleksii
> 
> For XSM I'm a little puzzled: Shouldn't RISC-V have
> HAS_DEVICE_TREE=y?
> Then xsm_core_init() would have a caller.
> 
> Jan
Jan Beulich April 17, 2024, 1:20 p.m. UTC | #9
On 11.04.2024 16:39, Oleksii wrote:
> On Wed, 2024-04-03 at 13:53 +0200, Jan Beulich wrote:
>> On 03.04.2024 12:54, Oleksii wrote:
>>> On Wed, 2024-04-03 at 12:28 +0200, Jan Beulich wrote:
>>>> On 03.04.2024 12:19, Oleksii Kurochko wrote:
>>>>> This patch disables unnecessary configs for two cases:
>>>>> 1. By utilizing EXTRA_FIXED_RANDCONFIG for randconfig builds
>>>>> (GitLab CI jobs).
>>>>> 2. By using tiny64_defconfig for non-randconfig builds.
>>>>>
>>>>> Only configs which lead to compilation issues were disabled.
>>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> ---
>>>>> Changes in V7:
>>>>>  - Disable only configs which cause compilation issues.
>>>>
>>>> Since the description doesn't go into details: While I can see
>>>> that
>>>> PERF_COUNTERS and LIVEPATCH may require (a little / some more)
>>>> extra
>>>> work, are HYPFS, ARGO, and XSM really causing issues?
>>> For Argo, I recieved the following compilation errors:
>>>    common/argo.c:1416:5: error: unknown type name 'p2m_type_t'; did
>>> you
>>>    mean 'hvmmem_type_t'?
>>>     1416 |     p2m_type_t p2mt;
>>>          |     ^~~~~~~~~~
>>>          |     hvmmem_type_t
>>>    common/argo.c:1419:11: error: implicit declaration of function
>>>    'check_get_page_from_gfn' [-Werror=implicit-function-
>>> declaration]
>>>     1419 |     ret = check_get_page_from_gfn(d, gfn, false, &p2mt,
>>> &page);
>>>          |           ^~~~~~~~~~~~~~~~~~~~~~~
>>>    common/argo.c:1427:10: error: 'p2m_ram_rw' undeclared (first use
>>> in
>>>    this function)
>>>     1427 |     case p2m_ram_rw:
>>>    
>>> It seems it should be included xen/p2m-common.h and asm/p2m.h in
>>> common/argo.c.
>>>
>>> For CONFIG_HYPFS_CONFIG ( there is no issue with CONFIG_HYPFS,
>>> overlooked that ):
>>>    common/config_data.S:1:10: fatal error: asm/asm_defns.h: No such
>>> file
>>>    or directory
>>>        1 | #include <asm/asm_defns.h>
>>>    
>>>
>>> For XSM, I recieved the following error:
>>>
>>>    xsm/xsm_core.c:79:19: error: 'xsm_core_init' defined but not
>>> used [-
>>>    Werror=unused-function]
>>>       79 | static int __init xsm_core_init(const void
>>> *policy_buffer,
>>>    size_t policy_size)
>>>
>>> I'll add an information with compilation errors to the commit
>>> message.
>>
>> No need to quote full compiler diagnostics, but a hint at the
>> problems
>> at least. That said, perhaps we want to rather sort the issues than
>> disable building stuff that sooner or later you will want to build
>> anyway. For hypfs we look to have an approach already. For Argo what
>> you suggest makes sense to me; it might be nice to understand where
>> the P2M headers needed are coming from on x86 and Arm. Ideally common
>> code .c files wouldn't include asm/*.h.
> It seems to me that p2m.h comes for Arm from argo.c -> xen/domain.h ->
> asm/domain.h and for x86 from argo.c -> xen/guest_access.h -> #include
> <asm/hvm/support.h> -> asm/p2m.h.
> 
> So I can include asm/p2m.h to asm/domain.h as p2m will be used anyway
> in asm/domain.h header and drop disablement of ARGO config from
> *_defconfig and build.yaml for CI. Does it make sense?

Looks okay to ma, at a glance.

Jan
diff mbox series

Patch

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index aac29ee13a..43faeaed9c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -519,6 +519,11 @@  alpine-3.18-gcc-debug-arm64-boot-cpupools:
       CONFIG_EXPERT=y
       CONFIG_GRANT_TABLE=n
       CONFIG_MEM_ACCESS=n
+      CONFIG_HYPFS=n
+      CONFIG_ARGO=n
+      CONFIG_PERF_COUNTERS=n
+      CONFIG_LIVEPATCH=n
+      CONFIG_XSM=n
 
 archlinux-current-gcc-riscv64:
   extends: .gcc-riscv64-cross-build
diff --git a/xen/arch/riscv/configs/tiny64_defconfig b/xen/arch/riscv/configs/tiny64_defconfig
index 09defe236b..24a807a5f9 100644
--- a/xen/arch/riscv/configs/tiny64_defconfig
+++ b/xen/arch/riscv/configs/tiny64_defconfig
@@ -1,12 +1,11 @@ 
-# CONFIG_SCHED_CREDIT is not set
-# CONFIG_SCHED_RTDS is not set
-# CONFIG_SCHED_NULL is not set
-# CONFIG_SCHED_ARINC653 is not set
-# CONFIG_TRACEBUFFER is not set
 # CONFIG_HYPFS is not set
 # CONFIG_GRANT_TABLE is not set
-# CONFIG_SPECULATIVE_HARDEN_ARRAY is not set
 # CONFIG_MEM_ACCESS is not set
+# CONFIG_ARGO is not set
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_COVERAGE is not set
+# CONFIG_LIVEPATCH is not set
+# CONFIG_XSM is not set
 
 CONFIG_RISCV_64=y
 CONFIG_DEBUG=y