lkml.org 
[lkml]   [2011]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 05/16] x86: Always use x86_cpu_to_logical_apicid for cpu -> logical apic id
    On Thu, 30 Dec 2010, Tejun Heo wrote:

    > diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
    > index ba78b1e..8ad231c 100644
    > --- a/arch/x86/kernel/apic/apic.c
    > +++ b/arch/x86/kernel/apic/apic.c
    > @@ -1252,6 +1252,14 @@ void __cpuinit setup_local_APIC(void)
    > */
    > apic->init_apic_ldr();
    >
    > +#ifdef CONFIG_X86_32
    > + /*
    > + * APIC LDR is initialized. Fetch and store logical_apic_id.
    > + */
    > + early_per_cpu(x86_cpu_to_logical_apicid, cpu) =
    > + logical_smp_processor_id();
    > +#endif
    > +
    > /*
    > * Set Task Priority to 'accept all'. We never change this
    > * later on.

    You can remove the initialization of x86_cpu_to_logical_apicid in the
    ->init_apic_ldr() callback in x2apic_cluster.c now too?

    [snip]

    > diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
    > index eb04f30..0768761 100644
    > --- a/arch/x86/kernel/smpboot.c
    > +++ b/arch/x86/kernel/smpboot.c
    > @@ -168,19 +168,18 @@ static void unmap_cpu_to_node(int cpu)
    > static void map_cpu_to_logical_apicid(void)
    > {
    > int cpu = smp_processor_id();
    > - int apicid = logical_smp_processor_id();
    > - int node = apic->apicid_to_node(apicid);
    > + int logical_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu);
    > + int node;
    >
    > + node = apic->apicid_to_node(logical_apicid);
    > if (!node_online(node))
    > node = first_online_node;
    >
    > - early_per_cpu(x86_cpu_to_logical_apicid, cpu) = apicid;
    > map_cpu_to_node(cpu, node);
    > }
    >
    > void numa_remove_cpu(int cpu)
    > {
    > - early_per_cpu(x86_cpu_to_logical_apicid, cpu) = BAD_APICID;
    > unmap_cpu_to_node(cpu);
    > }
    > #else

    I don't see where this is reset to BAD_APICID when numa_remove_cpu() is
    called when disabling a cpu after the patch.


    \
     
     \ /
      Last update: 2011-01-13 03:43    [W:0.044 / U:63.212 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site