online, possible and disabled cpus

Robert P. J. Day rpjday at crashcourse.ca
Mon Oct 22 12:47:14 EDT 2012


  at this point, i'm trying to rationalize why i'm seeing this in the
output of dmesg:

[    0.000000] smpboot: Allowing 16 CPUs, 8 hotplug CPUs

on my quad-core asus laptop, as in -- where is that "16" coming from?
if i list /proc/cpuinfo, i see 8 processors, so i'm just trying to
understand what "16" represents, so let's read backwards.

  first, that line above seems to be printed from
arch/x86/kernel/smpboot.c:

        pr_info("Allowing %d CPUs, %d hotplug CPUs\n",
                possible, max_t(int, possible - num_processors, 0));

so, *apparently*, by that time, the boot process has established that
there are 16 "possible" processors, but only 8 actual ones.  but who
decided there were 16 "possible" processors?

  just above that in the same file, we have:

        if (setup_possible_cpus == -1) {
                possible = num_processors;
  #ifdef CONFIG_HOTPLUG_CPU
                if (setup_max_cpus)
                        possible += disabled_cpus;
  #else
                if (possible > i)
                        possible = i;
  #endif
        } else
                possible = setup_possible_cpus;

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

  whoa, so it appears that we get "possible" cpus from adding the
number of *actual* cpus to the number of "disabled" cpus.  but what is
a "disabled" cpu, and who decides how many there are?

  last thing i notice is this earlier in my dmesg output:

[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x08] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x09] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x0a] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x0b] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x0c] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x0d] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x0e] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x10] lapic_id[0x0f] disabled)

which certainly seems to be related to all of this -- 8 enabled and 8
disabled.  so i'm going to keep following this back, unless someone
wants to break it to me what is going on.

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the Kernelnewbies mailing list