lkml.org 
[lkml]   [2010]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC PATCH 1/4] use nr_cpus= to set nr_cpu_ids early
    on x86, before prefill_possible_map(), nr_cpu_ids will be NR_CPUS aka CONFIG_NR_CPUS

    add nr_cpus= to set nr_cpu_ids. so we can simulate cpus <=8 on normal config.
    instead of change NR_CPUS directly.

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>

    ---
    arch/ia64/kernel/acpi.c | 4 ++--
    arch/x86/kernel/smpboot.c | 7 ++++---
    init/main.c | 14 ++++++++++++++
    3 files changed, 20 insertions(+), 5 deletions(-)

    Index: linux-2.6/init/main.c
    ===================================================================
    --- linux-2.6.orig/init/main.c
    +++ linux-2.6/init/main.c
    @@ -149,6 +149,20 @@ static int __init nosmp(char *str)

    early_param("nosmp", nosmp);

    +/* this is hard limit */
    +static int __init nrcpus(char *str)
    +{
    + int nr_cpus;
    +
    + get_option(&str, &nr_cpus);
    + if (nr_cpus > 0 && nr_cpus < nr_cpu_ids)
    + nr_cpu_ids = nr_cpus;
    +
    + return 0;
    +}
    +
    +early_param("nr_cpus", nrcpus);
    +
    static int __init maxcpus(char *str)
    {
    get_option(&str, &setup_max_cpus);
    Index: linux-2.6/arch/ia64/kernel/acpi.c
    ===================================================================
    --- linux-2.6.orig/arch/ia64/kernel/acpi.c
    +++ linux-2.6/arch/ia64/kernel/acpi.c
    @@ -883,8 +883,8 @@ __init void prefill_possible_map(void)

    possible = available_cpus + additional_cpus;

    - if (possible > NR_CPUS)
    - possible = NR_CPUS;
    + if (possible > nr_cpu_ids)
    + possible = nr_cpu_ids;

    printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n",
    possible, max((possible - available_cpus), 0));
    Index: linux-2.6/arch/x86/kernel/smpboot.c
    ===================================================================
    --- linux-2.6.orig/arch/x86/kernel/smpboot.c
    +++ linux-2.6/arch/x86/kernel/smpboot.c
    @@ -1213,11 +1213,12 @@ __init void prefill_possible_map(void)

    total_cpus = max_t(int, possible, num_processors + disabled_cpus);

    - if (possible > CONFIG_NR_CPUS) {
    + /* nr_cpu_ids could be reduced via nr_cpus= */
    + if (possible > nr_cpu_ids) {
    printk(KERN_WARNING
    "%d Processors exceeds NR_CPUS limit of %d\n",
    - possible, CONFIG_NR_CPUS);
    - possible = CONFIG_NR_CPUS;
    + possible, nr_cpu_ids);
    + possible = nr_cpu_ids;
    }

    printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n",

    \
     
     \ /
      Last update: 2010-01-12 03:51    [W:0.023 / U:0.204 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site