[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] smp_prepare_boot_cpu



On Mon, 2012-12-10 at 06:27 +0000, maheen butt wrote:
> Hi,
> 
> 
> In start_xen():xen/arch/x86/setup.c
> has function smp_prepare_boot_cpu() which also exist in vanilla kernel
> the kernel version is given that:

I'm not sure that you can infer that because these functions are
similarly named in Linux and Xen that they should have the same
behaviour / semantics.

> void __init native_smp_prepare_boot_cpu(void)
> {
>     int me = smp_processor_id();
>     switch_to_new_gdt(me);
>     /* already set me in cpu_online_mask in boot_cpu_init() */
>     cpumask_set_cpu(me, cpu_callout_mask);
>     per_cpu(cpu_state, me) = CPU_ONLINE;
> }
> 
> 
> Whera in case of Xen we have:
> void __init smp_prepare_boot_cpu(void)
> {
>     cpumask_set_cpu(smp_processor_id(), &cpu_online_map);
>     cpumask_set_cpu(smp_processor_id(), &cpu_present_map);
> }
> My question is that why there is no need to change gdt pointer to
> current cpu segment as it is done in case of kernel code?

Perhaps it is done somewhere else?

IIRC the gdtr contains a virtual address and Xen uses a fixed virtual
address for the GDT with per-PCPU mappings, so perhaps loading the gdtr
here is simply not necessary.

Ian.




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.