Unable to use all cores or threads

10,457

Solution 1

Resetting the BIOS settings to default solved the problem, obviously some setting I had defined created a miscommunication between the motherboard and Linux.

Solution 2

I believe this error is caused by your bios passing on incorrect information to lshw. If that is the case, you have nothing to worry about and all 4 cores should be running. Please note the last post in this thread that I am linking; https://ubuntuforums.org/showthread.php?t=2187699&page=2

Using the "top" should display all 4 cores if this is the case.

Share:
10,457

Related videos on Youtube

Diffused
Author by

Diffused

Updated on September 18, 2022

Comments

  • Diffused
    Diffused over 1 year

    There are several threads on this subject, however none seem to help in my specific predicament. As the title suggests, I am unable to take advantage of all four cores and threads on my Intel i5-7600T CPU. It's plugged into a MSI B150M ECO Motherboard.

    Please find additional output information below, and let me know if I left anything out. Thank you for your time and suggestions.

    lab_release -a

    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 16.04.3 LTS
    Release:    16.04
    Codename:   xenial
    

    sudo lshw -class cpu

      *-cpu                   
           description: CPU
           product: Intel(R) Core(TM) i5-7600T CPU @ 2.80GHz
           vendor: Intel Corp.
           physical id: 45
           bus info: cpu@0
           version: Intel(R) Core(TM) i5-7600T CPU @ 2.80GHz
           serial: To Be Filled By O.E.M.
           slot: U3E1
           size: 3599MHz
           capacity: 4005MHz
           width: 64 bits
           clock: 100MHz
           capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp cpufreq
           configuration: cores=4 enabledcores=2 threads=2
    

    /etc/default/grub

    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    #   info -f grub -n 'Simple configuration'
    
    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""
    
    # Uncomment to enable BadRAM filtering, modify to suit your needs
    # This works with Linux (no patch required) and with any kernel that obtains
    # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
    #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
    
    # Uncomment to disable graphical terminal (grub-pc only)
    #GRUB_TERMINAL=console
    
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    #GRUB_GFXMODE=640x480
    
    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true
    
    # Uncomment to disable generation of recovery mode menu entries
    #GRUB_DISABLE_RECOVERY="true"
    
    # Uncomment to get a beep at grub start
    #GRUB_INIT_TUNE="480 440 1"
    

    /proc/cpuinfo

    processor   : 0
    vendor_id   : GenuineIntel
    cpu family  : 6
    model       : 158
    model name  : Intel(R) Core(TM) i5-7600T CPU @ 2.80GHz
    stepping    : 9
    microcode   : 0x5e
    cpu MHz     : 799.975
    cache size  : 6144 KB
    physical id : 0
    siblings    : 2
    core id     : 0
    cpu cores   : 2
    apicid      : 0
    initial apicid  : 0
    fpu     : yes
    fpu_exception   : yes
    cpuid level : 22
    wp      : yes
    flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
    bugs        :
    bogomips    : 5616.00
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 39 bits physical, 48 bits virtual
    power management:
    
    processor   : 1
    vendor_id   : GenuineIntel
    cpu family  : 6
    model       : 158
    model name  : Intel(R) Core(TM) i5-7600T CPU @ 2.80GHz
    stepping    : 9
    microcode   : 0x5e
    cpu MHz     : 799.975
    cache size  : 6144 KB
    physical id : 0
    siblings    : 2
    core id     : 1
    cpu cores   : 2
    apicid      : 2
    initial apicid  : 2
    fpu     : yes
    fpu_exception   : yes
    cpuid level : 22
    wp      : yes
    flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
    bugs        :
    bogomips    : 5616.00
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 39 bits physical, 48 bits virtual
    power management:
    

    cat /sys/devices/system/cpu/online ; ls -ld /sys/devices/system/cpu/c*

    0-1
    drwxr-xr-x 10 root root 0 Aug 23 22:54 /sys/devices/system/cpu/cpu0
    drwxr-xr-x 10 root root 0 Aug 23 22:54 /sys/devices/system/cpu/cpu1
    drwxr-xr-x  4 root root 0 Aug 23 22:54 /sys/devices/system/cpu/cpufreq
    drwxr-xr-x  2 root root 0 Aug 23 22:54 /sys/devices/system/cpu/cpuidle
    

    sudo grep -i smp /var/log/syslog

    Aug 23 22:37:10 Plexerver systemd[1]: Started LSB: daemon to balance interrupts for SMP systems.
    Aug 23 22:54:30 Plexerver systemd[1]: Starting LSB: daemon to balance interrupts for SMP systems...
    Aug 23 22:54:30 Plexerver kernel: [    0.000000] Linux version 4.10.0-32-generic (buildd@lcy01-01) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #36~16.04.1-Ubuntu SMP Wed Aug 9 09:19:02 UTC 2017 (Ubuntu 4.10.0-32.36~16.04.1-generic 4.10.17)
    Aug 23 22:54:30 Plexerver kernel: [    0.000000] found SMP MP-table at [mem 0x000fcb50-0x000fcb5f] mapped at [ffff9863400fcb50]
    Aug 23 22:54:30 Plexerver kernel: [    0.000000] Using ACPI (MADT) for SMP configuration information
    Aug 23 22:54:30 Plexerver kernel: [    0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
    Aug 23 22:54:30 Plexerver kernel: [    0.034288] Freeing SMP alternatives memory: 32K
    Aug 23 22:54:30 Plexerver kernel: [    0.053161] smpboot: Max logical packages: 1
    Aug 23 22:54:30 Plexerver kernel: [    0.098459] smpboot: CPU0: Intel(R) Core(TM) i5-7600T CPU @ 2.80GHz (family: 0x6, model: 0x9e, stepping: 0x9)
    Aug 23 22:54:30 Plexerver kernel: [    0.099158] smp: Bringing up secondary CPUs ...
    Aug 23 22:54:30 Plexerver kernel: [    0.099206] x86: Booting SMP configuration:
    Aug 23 22:54:30 Plexerver kernel: [    0.100679] smp: Brought up 1 node, 2 CPUs
    Aug 23 22:54:30 Plexerver kernel: [    0.100680] smpboot: Total of 2 processors activated (11232.00 BogoMIPS)
    Aug 23 22:54:30 Plexerver irqbalance[1973]:  * Starting SMP IRQ Balancer: irqbalance
    Aug 23 22:54:30 Plexerver systemd[1]: Started LSB: daemon to balance interrupts for SMP systems.
    

    /etc/default/grub

    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    #   info -f grub -n 'Simple configuration'
    
    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""
    
    # Uncomment to enable BadRAM filtering, modify to suit your needs
    # This works with Linux (no patch required) and with any kernel that obtains
    # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
    #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
    
    # Uncomment to disable graphical terminal (grub-pc only)
    #GRUB_TERMINAL=console
    
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    #GRUB_GFXMODE=640x480
    
    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true
    
    # Uncomment to disable generation of recovery mode menu entries
    #GRUB_DISABLE_RECOVERY="true"
    
    # Uncomment to get a beep at grub start
    #GRUB_INIT_TUNE="480 440 1"
    
    • Charles Green
      Charles Green over 6 years
      Can you add the outputs of the command cat /sys/devices/system/cpu/online ; ls -ld /sys/devices/system/cpu/c*
    • Charles Green
      Charles Green over 6 years
      Also sudo grep -i smp /var/log/syslog
    • Diffused
      Diffused over 6 years
      Hi Charles, thanks so much for your quick response. I have included the outputs in my original post.
    • Charles Green
      Charles Green over 6 years
      Thanks. I have seen three posts similar to yours - two were solved by changing a boot parameter, one by reinstalling Ubuntu. Two things are worth asking: Did you run sudo update-grub after any changes to grub, and is there anything in your BIOS which might be limiting the cores? Similar questions: https://askubuntu.com/questions/864532/i5-4200u-cpu-reports-‌​only-one-core-instea‌​d-of-4
    • Charles Green
      Charles Green over 6 years
    • Charles Green
      Charles Green over 6 years
      From the line smpboot: Allowing 2 CPUs in the syslog, you are being allowed only 2 cpu's at boot time.
    • Charles Green
      Charles Green over 6 years
      Forgot to ask: have you installed intel-microcode? sudo apt install intel-microcode
    • Diffused
      Diffused over 6 years
      I did not make any changes to the grub configuration file, I will post this shortly. To answer your second question, I have not installed intel-microcode, but will do that now. Would you like to see any specific outputs from there? Otherwise I will start tinkering!
    • Charles Green
      Charles Green over 6 years
      I'm kind of tapped out at this point - the intel-microcode may help (emphasis on may) and there may be a setting in BIOS that could change your situation
  • FutureBound QuantumEntaglement
    FutureBound QuantumEntaglement over 6 years
    That /proc/cpuinfo information that you listed shows that the CPUs seem to be working with all 4 cores.
  • Diffused
    Diffused over 6 years
    Hi FutureBound, thanks for your response. If this is true, how would you suggest that I confirm? top does not show 4 cores, as you suggested, although you also point out that /proc/cpuinfo shows two CPUs with two cores each. It seems to me that several datasets are providing conflicting information. I will give my mobo manufacturer a call tomorrow regardless.
  • FutureBound QuantumEntaglement
    FutureBound QuantumEntaglement over 6 years
    I believe that you could check via "htop" as well, "top" should display all cores/threads after clicking the "1" key. I've never seen such a problem before. What did the call to your motherboard manufacturer entail? Your kernel says all cores are running fine, yet lshw doesn't know what's going on.
  • Diffused
    Diffused over 6 years
    Thanks for checking in. I have also previously checked on the number of cores using htop, only two are shown. The jist of the conversation with my motherboard manufacturer, MSI, is that they stay as far away from Linux as possible and cannot comment on how the kernel is monitoring core usage. With that said, they did say that the BIOS fully supports my intel i5-7600T CPU. us.msi.com/Motherboard/support/B150M-ECO.html#support-cpu