Hi all,

gitlab-ci spotted another randconfig build issue on arm32. To repro, use
the attached Xen config file and build with XEN_TARGET_ARCH=arm32 (you
need an appropriate cross-compiler.)  This is the error:

https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/1888385010

Also appended below for your convenience. It affects the null scheduler.
I couldn't spot anything obvious so I ran a bisection.  This is the
offending commit:

commit ab6ba8c6753fa7642de2ffc84f6decadc6c40c2c
Author: Jan Beulich <[email protected]>
Date:   Fri Dec 10 10:25:44 2021 +0100

    perfc: conditionalize credit/credit2 counters
    
    There's no point including them when the respective scheduler isn't
    enabled in the build.
    
    Signed-off-by: Jan Beulich <[email protected]>
    Reviewed-by: Luca Fancellu <[email protected]>

 xen/include/xen/perfc_defn.h | 4 ++++
 1 file changed, 4 insertions(+)


Ideas on how to fix it?

Cheers,

Stefano



In file included from /local/repos/xen-upstream/xen/include/xen/mm.h:58,
                 from 
/local/repos/xen-upstream/xen/arch/arm/include/asm/p2m.h:4,
                 from 
/local/repos/xen-upstream/xen/arch/arm/include/asm/domain.h:7,
                 from /local/repos/xen-upstream/xen/include/xen/domain.h:8,
                 from /local/repos/xen-upstream/xen/include/xen/sched.h:11,
                 from null.c:31:
null.c: In function ‘null_unit_migrate’:
/local/repos/xen-upstream/xen/include/xen/perfc.h:65:53: error: 
‘PERFC_migrate_on_runq’ undeclared (first use in this function); did you mean 
‘PERFC_migrate_running’?
   65 | #define perfc_incr(x)     (++this_cpu(perfcounters)[PERFC_ ## x])
      |                                                     ^~~~~~
/local/repos/xen-upstream/xen/include/xen/sched.h:47:46: note: in expansion of 
macro ‘perfc_incr’
   47 | #define SCHED_STAT_CRANK(_X)                (perfc_incr(_X))
      |                                              ^~~~~~~~~~
null.c:713:9: note: in expansion of macro ‘SCHED_STAT_CRANK’
  713 |         SCHED_STAT_CRANK(migrate_on_runq);
      |         ^~~~~~~~~~~~~~~~
/local/repos/xen-upstream/xen/include/xen/perfc.h:65:53: note: each undeclared 
identifier is reported only once for each function it appears in
   65 | #define perfc_incr(x)     (++this_cpu(perfcounters)[PERFC_ ## x])
      |                                                     ^~~~~~
/local/repos/xen-upstream/xen/include/xen/sched.h:47:46: note: in expansion of 
macro ‘perfc_incr’
   47 | #define SCHED_STAT_CRANK(_X)                (perfc_incr(_X))
      |                                              ^~~~~~~~~~
null.c:713:9: note: in expansion of macro ‘SCHED_STAT_CRANK’
  713 |         SCHED_STAT_CRANK(migrate_on_runq);
      |         ^~~~~~~~~~~~~~~~
/local/repos/xen-upstream/xen/include/xen/perfc.h:65:53: error: 
‘PERFC_migrated’ undeclared (first use in this function); did you mean 
‘PSCI_migrate’?
   65 | #define perfc_incr(x)     (++this_cpu(perfcounters)[PERFC_ ## x])
      |                                                     ^~~~~~
/local/repos/xen-upstream/xen/include/xen/sched.h:47:46: note: in expansion of 
macro ‘perfc_incr’
   47 | #define SCHED_STAT_CRANK(_X)                (perfc_incr(_X))
      |                                              ^~~~~~~~~~
null.c:715:5: note: in expansion of macro ‘SCHED_STAT_CRANK’
  715 |     SCHED_STAT_CRANK(migrated);
      |     ^~~~~~~~~~~~~~~~
  LD      built_in.o
make[4]: *** [/local/repos/xen-upstream/xen/Rules.mk:197: null.o] Error 1
#
# Automatically generated file; DO NOT EDIT.
# Xen/arm 4.17-unstable Configuration
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100201
CONFIG_CLANG_VERSION=0
CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE=y
CONFIG_ARM_32=y
CONFIG_ARM=y
CONFIG_ARCH_DEFCONFIG="arch/arm/configs/arm32_defconfig"

#
# Architecture Features
#
CONFIG_NR_CPUS=128
CONFIG_HVM=y
CONFIG_NEW_VGIC=y
# CONFIG_SBSA_VUART_CONSOLE is not set
# CONFIG_ARM_SSBD is not set
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_TEE=y
CONFIG_OPTEE=y
# end of Architecture Features

#
# ARM errata workaround via the alternative framework
#
# CONFIG_ARM_ERRATUM_858921 is not set
# end of ARM errata workaround via the alternative framework

CONFIG_ARM32_HARDEN_BRANCH_PREDICTOR=y
CONFIG_ALL_PLAT=y
# CONFIG_NO_PLAT is not set
CONFIG_ALL32_PLAT=y

#
# Common Features
#
# CONFIG_GRANT_TABLE is not set
CONFIG_HAS_ALTERNATIVE=y
CONFIG_HAS_DEVICE_TREE=y
CONFIG_HAS_PDX=y
CONFIG_MEM_ACCESS=y
# CONFIG_STATIC_MEMORY is not set

#
# Speculative hardening
#
CONFIG_SPECULATIVE_HARDEN_ARRAY=y
# end of Speculative hardening

CONFIG_HYPFS=y
# CONFIG_HYPFS_CONFIG is not set
CONFIG_IOREQ_SERVER=y
CONFIG_EFI_SET_VIRTUAL_ADDRESS_MAP=y
# CONFIG_XSM is not set
CONFIG_ARGO=y

#
# Schedulers
#
CONFIG_SCHED_CREDIT=y
# CONFIG_SCHED_CREDIT2 is not set
# CONFIG_SCHED_RTDS is not set
# CONFIG_SCHED_ARINC653 is not set
CONFIG_SCHED_NULL=y
CONFIG_SCHED_CREDIT_DEFAULT=y
# CONFIG_SCHED_NULL_DEFAULT is not set
CONFIG_SCHED_DEFAULT="credit"
# end of Schedulers

# CONFIG_LIVEPATCH is not set
# CONFIG_ENFORCE_UNIQUE_SYMBOLS is not set
CONFIG_SUPPRESS_DUPLICATE_SYMBOL_WARNINGS=y
CONFIG_CMDLINE=""
CONFIG_DOM0_MEM=""
CONFIG_DTB_FILE=""
CONFIG_TRACEBUFFER=y
# end of Common Features

#
# Device Drivers
#
CONFIG_HAS_NS16550=y
# CONFIG_HAS_PL011 is not set
CONFIG_HAS_EXYNOS4210=y
CONFIG_HAS_OMAP=y
# CONFIG_HAS_SCIF is not set
CONFIG_HAS_PASSTHROUGH=y
CONFIG_ARM_SMMU=y
CONFIG_IOMMU_FORCE_PT_SHARE=y
# end of Device Drivers

CONFIG_EXPERT=y
CONFIG_UNSUPPORTED=y

#
# Debugging Options
#
CONFIG_DEBUG=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_FRAME_POINTER is not set
# CONFIG_COVERAGE is not set
# CONFIG_DEBUG_LOCK_PROFILE is not set
# CONFIG_DEBUG_LOCKS is not set
CONFIG_PERF_COUNTERS=y
CONFIG_PERF_ARRAYS=y
# CONFIG_VERBOSE_DEBUG is not set
CONFIG_DEVICE_TREE_DEBUG=y
CONFIG_SCRUB_DEBUG=y
# CONFIG_DEBUG_TRACE is not set
# CONFIG_XMEM_POOL_POISON is not set
# end of Debugging Options

Reply via email to