My cpu works only with 2 cores

Hello everybody, as the title suggest, recently I had a problem with my CPU (intel core i7-4500U), when my system starts it works only with 2 cores (checked with system monitor and cpufreq extension, the last says that cores are offline) and there’s no way to turn them on the last says that cores are offline) and there’s no way to turn them on, I tried with cpufreqctl, editing MAKEFLAGS parameter in makepkg.conf and manually (echo 1 >…).
This is my output of lscpu and lscpu -a --extended:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0,2
Off-line CPU(s) list: 1,3

CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ
0 0 0 0 0:0:0:0 si 3000,0000 800,0000 1694.941
1 - - - - no - - -
2 0 0 1 1:1:1:0 si 3000,0000 800,0000 1695.824
3 - - - - no - - -

I haven’t seen something like that discussed on forum, could someone help me?
I hope you will answer me quickly

Hello!

What is the output of:
sudo cat /sys/devices/system/cpu/cpu1/online
sudo cat /sys/devices/system/cpu/cpu3/online

If the output is 0 try:
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu3/online

That should enable the cores.
Hope it helps!

Hello @Danielecia :wink:

Here it is described:

https://www.cyberciti.biz/faq/debian-rhel-centos-redhat-suse-hotplug-cpu/

However… maybe it is disabled at your BIOS/UEFI? On some you can disable Cores.

1 Like

The output of cat for both cpu is 0, the output of sudo echo 1 > for both cpu is
warning: An error occurred while redirecting file ‘/sys/devices/system/cpu/cpu1/online’
open: permission deny

finally the output of sudo cpufreqctl --on
/usr/bin/cpufreqctl: riga 428: echo: writing error: Operation not allowed
/usr/bin/cpufreqctl: riga 428: echo: writing error: Operation not allowed

I forgot to add the sudo. Try this:

sudo echo 1 > /sys/devices/system/cpu/cpu1/online
sudo echo 1 > /sys/devices/system/cpu/cpu3/online

That hasn’t worked in years.

The command gives root permission to echo which doesn’t need it, then bash which is running as your user tries to redirect the output and fails since it doesn’t have root permission.

This would be the proper way to issue such a command:

echo 1 | sudo tee  /sys/devices/system/cpu/cpu1/online

If you want to append to a file then you need to use tee -a. Read man tee.

You can also use the root account, or this command:

sudo bash -c "echo 1 >  /sys/devices/system/cpu/cpu1/online"

Even with sudo the permission is deny, and it’s very strange

It works if you use the root account.

[ACER ~]# echo 0 > /sys/devices/system/cpu/cpu4/online
[ACER ~]# cat /sys/devices/system/cpu/cpu4/online
0
[ACER ~]# grep “processor” /proc/cpuinfo
processor : 0
processor : 1
processor : 2
processor : 3
processor : 5
processor : 6
processor : 7
[ACER ~]# echo 1 > /sys/devices/system/cpu/cpu4/online
[ACER ~]# grep “processor” /proc/cpuinfo
processor : 0
processor : 1
processor : 2
processor : 3
processor : 4
processor : 5
processor : 6
processor : 7

I mostly use the root account so I’m not an expert on sudo, however from time to time I find that this works:

sudo su -c “echo 1 > /sys/devices/system/cpu/cpu1/online”

I make a message for all your answers
I tried right now with root account sudo echo 1 > … and the output didn’t change (
echo: write error: Operation not allowed)
Even with echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online the error is similar:
tee: /sys/devices/system/cpu/cpu1/online: Operation not allowed

Try with

sudo su -c “echo 1 > /sys/devices/system/cpu/cpu1/online”

If it doesn’t work, switch to the root account:

sudo su -

and then issue the commands:

echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu3/online

1 Like

As he sayed, root-permission is necessary, sudo is not enough…
(Btw: sometimes the number of cores can be altered by BIOS entry…)

As I written before, even from root the operation isn’t allowed and my cores are still offline
I didn’t change nothing in BIOS, virtualization is enabled and there arent’t edited settings.
Unfortunately I cannot upload photos to check

I give up

Not all i7 CPU are equipped with 4 physical cores. Some models has only 2 physical cores and utiliize hyper threading to create the next 2 cores.

If your cpu is vulnerable to some of the speculative attacks uncovered 12-18 months ago then a mitigation may have disabled the hyper threading.

You can add a kernel command line argument to disable all mitigations - I will check but I think something like below will do it

mitigations=off

Is such cpu - with 2 physical cores and hyperthreading creating the other two - making 4 cores total.

2 Likes

thanks, when I added mitigation=off in grub after reboot i can handle how many core are online.

2 Likes

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.