Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
- index 8648438..cddbf02 100644
- --- a/arch/x86/xen/smp.c
- +++ b/arch/x86/xen/smp.c
- @@ -55,6 +55,25 @@ static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id);
- static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);
- static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id);
- +static bool xen_simple_topology;
- +static __init int xen_parse_topology(char *arg)
- +{
- + xen_simple_topology = true;
- + return 0;
- +}
- +early_param("xen_simple_topology", xen_parse_topology);
- +
- +static void xen_set_cpu_sibling_map(int cpu)
- +{
- + if (xen_simple_topology) {
- + cpumask_set_cpu(cpu, topology_thread_cpumask(cpu));
- + cpumask_set_cpu(cpu, cpu_llc_shared_mask(cpu));
- + cpumask_set_cpu(cpu, topology_core_cpumask(cpu));
- + } else {
- + set_cpu_sibling_map(cpu);
- + }
- +}
- +
- /*
- * Reschedule call back.
- */
- @@ -82,7 +101,7 @@ static void cpu_bringup(void)
- cpu = smp_processor_id();
- smp_store_cpu_info(cpu);
- cpu_data(cpu).x86_max_cores = 1;
- - set_cpu_sibling_map(cpu);
- + xen_set_cpu_sibling_map(cpu);
- xen_setup_cpu_clockevents();
- @@ -333,7 +352,7 @@ static void __init xen_smp_prepare_cpus(unsigned int max_cpus)
- zalloc_cpumask_var(&per_cpu(cpu_core_map, i), GFP_KERNEL);
- zalloc_cpumask_var(&per_cpu(cpu_llc_shared_map, i), GFP_KERNEL);
- }
- - set_cpu_sibling_map(0);
- + xen_set_cpu_sibling_map(0);
- if (xen_smp_intr_init(0))
- BUG();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement