From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Sharma Subject: [Patch 1/2]xen boot_cpu_data initialize Date: Mon, 9 Mar 2015 12:48:16 +0530 Message-ID: <20150309071816.GA3629@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: dario.faggioli@citrix.com, George.Dunlap@citrix.com List-Id: xen-devel@lists.xenproject.org This patch inserts some boot data initilization in xen/arch and function definition in xen/include. Signed-off-by: Uma Sharma --- diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index d316212..4f3ce15 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1259,6 +1259,11 @@ void __init noreturn __start_xen(unsigned long mbi_p) microcode_grab_module(module_map, mbi, bootstrap_map); timer_init(); + /* + * Identify the boot CPU, in case the scheduler initialization + * needs to know about it (e.g., topology, etc.) + */ + identify_cpu(&boot_cpu_data); init_idle_domain(); @@ -1270,8 +1275,6 @@ void __init noreturn __start_xen(unsigned long mbi_p) arch_init_memory(); - identify_cpu(&boot_cpu_data); - if ( cpu_has_fxsr ) set_in_cr4(X86_CR4_OSFXSR); if ( cpu_has_xmm ) diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 7ae561c..b4c4cc2 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -59,7 +59,8 @@ DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask); cpumask_t cpu_online_map __read_mostly; EXPORT_SYMBOL(cpu_online_map); -struct cpuinfo_x86 cpu_data[NR_CPUS]; +struct cpuinfo_x86 cpu_data[NR_CPUS] = + { [0 ... NR_CPUS-1] = { .phys_proc_id=-1, .cpu_core_id=-1 } }; u32 x86_cpu_to_apicid[NR_CPUS] __read_mostly = { [0 ... NR_CPUS-1] = BAD_APICID }; diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h index 87d80ff..6ec9588 100644 --- a/xen/include/asm-x86/processor.h +++ b/xen/include/asm-x86/processor.h @@ -214,7 +214,9 @@ extern void detect_extended_topology(struct cpuinfo_x86 *c); extern void detect_ht(struct cpuinfo_x86 *c); +#define boot_cpu_to_core() (boot_cpu_data.cpu_core_id) #define cpu_to_core(_cpu) (cpu_data[_cpu].cpu_core_id) +#define boot_cpu_to_socket() (boot_cpu_data.phys_proc_id) #define cpu_to_socket(_cpu) (cpu_data[_cpu].phys_proc_id) unsigned int apicid_to_socket(unsigned int);