mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/sched: Untangle credit2 vs cpu_nr_siblings()
Credit2 has no buisness including asm/cpufeature.h or asm/processor.h. This was caused by a bad original abstraction, and an even less wise attempt to fix the build on my behalf. It is also the sole reason why PPC and RISC-V need cpufeature.h header. Worst of all, cpu_data[cpu].x86_num_siblings doesn't even have the same meaning between vendors on x86 CPUS. Implement cpu_nr_siblings() locally in credit2.c, leaving behind a TODO. Drop the stub from each architecture. Fixes:8e2aa76dc1("xen: credit2: limit the max number of CPUs in a runqueue") Fixes:ad33a573c0("xen/credit2: Fix build following c/s8e2aa76dc(take 2)") Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Juergen Gross <jgross@suse.com> Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
This commit is contained in:
1 parent
9a17d5c7c9
commit
188d568db8
5 files changed
+13
-45
No files matched your search
@@ -98,11 +98,6 @@ static inline bool cpus_have_cap(unsigned int num)
|
||||
return test_bit(num, cpu_hwcaps);
|
||||
}
|
||||
|
||||
static inline int cpu_nr_siblings(unsigned int cpu)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* System capability check for constant cap */
|
||||
#define cpus_have_const_cap(num) ({ \
|
||||
register_t __ret; \
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef __ASM_PPC_CPUFEATURE_H__
|
||||
#define __ASM_PPC_CPUFEATURE_H__
|
||||
|
||||
static inline int cpu_nr_siblings(unsigned int cpu)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif /* __ASM_PPC_CPUFEATURE_H__ */
|
||||
@@ -1,23 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef ASM__RISCV__CPUFEATURE_H
|
||||
#define ASM__RISCV__CPUFEATURE_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
static inline unsigned int cpu_nr_siblings(unsigned int cpu)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* ASM__RISCV__CPUFEATURE_H */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-file-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -118,11 +118,6 @@ extern void init_intel_cacheinfo(struct cpuinfo_x86 *c);
|
||||
|
||||
unsigned int apicid_to_socket(unsigned int apicid);
|
||||
|
||||
static inline int cpu_nr_siblings(unsigned int cpu)
|
||||
{
|
||||
return cpu_data[cpu].x86_num_siblings;
|
||||
}
|
||||
|
||||
/* Some CPUID calls want 'count' to be placed in ecx */
|
||||
static inline void cpuid_count(
|
||||
unsigned int op,
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
#include <xen/trace.h>
|
||||
#include <xen/cpu.h>
|
||||
#include <xen/keyhandler.h>
|
||||
#include <asm/cpufeature.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
#include "private.h"
|
||||
|
||||
@@ -35,6 +33,19 @@
|
||||
/* #define d2printk printk */
|
||||
#define d2printk(x...)
|
||||
|
||||
/*
|
||||
* TODO: Abstract this properly, and figure out what Credit2 wants to do with
|
||||
* the fact that x86_num_siblings doesn't even have the same meaning
|
||||
* between x86 vendors.
|
||||
*/
|
||||
static unsigned int cpu_nr_siblings(unsigned int cpu)
|
||||
{
|
||||
#ifdef CONFIG_X86
|
||||
return cpu_data[cpu].x86_num_siblings;
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Credit2 tracing events ("only" 512 available!). Check
|
||||
|
||||