RE: online, possible and disabled cpus

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

 



> -----Original Message-----
> From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx [mailto:kernelnewbies-
> bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Robert P. J. Day
> Sent: Monday, October 22, 2012 12:47 PM
> To: Kernel Newbies
> Subject: online, possible and disabled cpus
> 
> 
>   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.
> 

You'll have to investigate those disabled CPUs, but I'm guessing that
the presence
or absence of hyperthreading may have something to do with it.

Craig Jackson

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux