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