|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 09/24] xen/sched: Make cpu_nr_siblings() architecture-specific
Make cpu_nr_siblings() an architecture-specific function.
This patch provides the implementation for x86 and a common
version for Device Tree-based architectures.
---
xen/arch/x86/include/asm/processor.h | 1 +
xen/common/sched/credit2.c | 23 +++++------------------
2 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/xen/arch/x86/include/asm/processor.h
b/xen/arch/x86/include/asm/processor.h
index c37bd7a176..3cd19e6d9c 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -106,6 +106,7 @@ extern void intel_init_arat(void);
#define cpu_to_core(_cpu) (cpu_data[_cpu].cpu_core_id)
#define cpu_to_socket(_cpu) (cpu_data[_cpu].phys_proc_id)
+#define cpu_nr_siblings(_cpu) (cpu_data[_cpu].x86_num_siblings)
unsigned int apicid_to_socket(unsigned int apicid);
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index dcce1e361f..2d93944824 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -29,22 +29,6 @@
/* #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;
-#elif CONFIG_DT_CPU_TOPOLOGY
- return cpu_topology[cpu].num_siblings;
-#else
- return 1;
-#endif
-}
-
/*
* Credit2 tracing events ("only" 512 available!). Check
* include/public/trace.h for more details.
@@ -884,8 +868,11 @@ cpu_runqueue_match(const struct csched2_runqueue_data
*rqd, unsigned int cpu)
* Additional checks, to avoid separating siblings in different runqueues.
* This deals with both Intel's HTs and AMD's CUs. An arch that does not have
* any similar concept will just have cpu_nr_siblings() always return 1, and
- * setup the cpu_sibling_mask-s acordingly (as currently does ARM), and things
- * will just work as well.
+ * setup the cpu_sibling_mask-s acordingly, and things will just work as well.
+ *
+ * TODO: Abstract cpu_nr_siblings 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 bool
cpu_runqueue_siblings_match(const struct csched2_runqueue_data *rqd,
--
2.43.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |