lkml.org 
[lkml]   [2008]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 34/79] [PATCH] move impress_friends and smp_check to cpus_done
    Date
    From: Glauber Costa <gcosta@redhat.com>

    the cpu count is changed accordingly: now, what matters is
    online cpus.
    Also, we add those functions for x86_64

    Signed-off-by: Glauber Costa <gcosta@redhat.com>
    ---
    arch/x86/kernel/smpboot.c | 4 ++--
    arch/x86/kernel/smpboot_32.c | 22 ++++++++++++----------
    arch/x86/kernel/smpboot_64.c | 8 ++++++++
    3 files changed, 22 insertions(+), 12 deletions(-)

    diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
    index ddb94ef..6978f1b 100644
    --- a/arch/x86/kernel/smpboot.c
    +++ b/arch/x86/kernel/smpboot.c
    @@ -114,7 +114,7 @@ void smp_checks(void)
    * approved Athlon
    */
    if (tainted & TAINT_UNSAFE_SMP) {
    - if (cpus_weight(cpu_present_map))
    + if (num_online_cpus())
    printk(KERN_INFO "WARNING: This combination of AMD"
    "processors is not suitable for SMP.\n");
    else
    @@ -258,7 +258,7 @@ void impress_friends(void)
    bogosum += cpu_data(cpu).loops_per_jiffy;
    printk(KERN_INFO
    "Total of %d processors activated (%lu.%02lu BogoMIPS).\n",
    - cpus_weight(cpu_present_map),
    + num_online_cpus(),
    bogosum/(500000/HZ),
    (bogosum/(5000/HZ))%100);

    diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
    index 361851c..1736404 100644
    --- a/arch/x86/kernel/smpboot_32.c
    +++ b/arch/x86/kernel/smpboot_32.c
    @@ -788,8 +788,6 @@ static int __init smp_sanity_check(unsigned max_cpus)
    return 0;
    }

    -extern void impress_friends(void);
    -extern void smp_checks(void);
    /*
    * Cycle through the processors sending APIC IPIs to boot each.
    */
    @@ -858,14 +856,6 @@ static void __init smp_boot_cpus(unsigned int max_cpus)
    }

    /*
    - * Cleanup possible dangling ends...
    - */
    - smpboot_restore_warm_reset_vector();
    -
    - impress_friends();
    -
    - smp_checks();
    - /*
    * construct cpu_sibling_map, so that we can tell sibling CPUs
    * efficiently.
    */
    @@ -959,8 +949,20 @@ int __cpuinit native_cpu_up(unsigned int cpu)
    return 0;
    }

    +extern void impress_friends(void);
    +extern void smp_checks(void);
    +
    void __init native_smp_cpus_done(unsigned int max_cpus)
    {
    + /*
    + * Cleanup possible dangling ends...
    + */
    + smpboot_restore_warm_reset_vector();
    +
    + Dprintk("Boot done.\n");
    +
    + impress_friends();
    + smp_checks();
    #ifdef CONFIG_X86_IO_APIC
    setup_ioapic_dest();
    #endif
    diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
    index a9cc911..c3e770b 100644
    --- a/arch/x86/kernel/smpboot_64.c
    +++ b/arch/x86/kernel/smpboot_64.c
    @@ -824,12 +824,20 @@ int __cpuinit native_cpu_up(unsigned int cpu)
    return err;
    }

    +extern void impress_friends(void);
    +extern void smp_checks(void);
    +
    /*
    * Finish the SMP boot.
    */
    void __init native_smp_cpus_done(unsigned int max_cpus)
    {
    smp_cleanup_boot();
    +
    + Dprintk("Boot done.\n");
    +
    + impress_friends();
    + smp_checks();
    setup_ioapic_dest();
    check_nmi_watchdog();
    }
    --
    1.5.0.6


    \
     
     \ /
      Last update: 2008-03-19 21:33    [W:5.344 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site