Solved CPU1 running at 98% Constantly.....CPU2 running at 15% varying with load

Solved issue
Do I turn off one at a time, and rule them out by the process of elimination....or am I barking right up the wrong tree?

The amount of time the PC was shut off would be irrelevant - unless it's a thermal issue.

I believe you'll see higher CPU usage with ACPI turned off - 'cause then the kernel has to do more.

See this page:


So, with ACPI disabled, the kernel's gotta figure all that stuff out on its own.

What might be the best course would be to enable ACPI, check to see if CPU usage is 'normal', and then address your shutdown issue. There are options...

Like, instead of using the Magic SysReq keys to reboot (REISUB) you can tell it to shutdown (REISUO).
 


Sorry, I was out of state for a couple of weeks. Just saw this.

I tend to agree with KGIII here, it looks to be kacpid related. ( see last picture in post #1 ).
This appears to be a desktop system? I usually only see acpid issues on laptops.

Is acpi enabled/disabled in BIOS? Try switching it to the opposite of what it currently is.
 
Is acpi enabled/disabled in BIOS? Try switching it to the opposite of what it currently is.
@dos2unix , in bios there are two entries for acpi
1. suspend to RAM....Auto
2. acpi hpet table...Enabled

I switched BOTH to Disabled

Saved and exited....the pc rebooted, and there is NO 100% usage on cpu 1

I shut the pc down....then restart.......cpu 1 is back to 100%
 
One last idea,
what is output of ...

systemctl status -l kacpid
 
brian@brian-desktop:~$ systemctl status -l kacpid
Unit kacpid.service could not be found.
brian@brian-desktop:~$
 
Code:
top - 09:08:52 up 4 min,  1 user,  load average: 2.11, 1.38, 0.62
Tasks: 239 total,   4 running, 235 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.5 us, 52.1 sy,  0.0 ni, 45.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15681.7 total,  12377.3 free,   1361.1 used,   1943.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  13528.1 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                     
    391 root      20   0       0      0      0 R  97.0   0.0   4:12.57 kworker/0:4+kacpid                           
    355 root      19  -1   80796  21132  19800 R   7.3   0.1   0:20.33 systemd-journal                             
   2307 brian     20   0 1129.9g 199816 117112 S   2.0   1.2   0:07.42 brave                                       
   1396 brian     20   0 4079608 193300 103200 S   1.0   1.2   0:11.18 cinnamon                                     
   2188 brian     20   0  481248  52956  32300 S   1.0   0.3   0:01.29 mintreport-tray                             
   2276 brian     20   0   32.6g 154952 106640 S   1.0   1.0   0:02.65 brave                                       
    897 root      20   0  829084 103152  66672 S   0.7   0.6   0:07.41 Xorg                                         
   2474 brian     20   0  590644  70228  54928 S   0.7   0.4   0:03.15 tilix                                       
   1425 root      20   0  173884  14640  11860 S   0.3   0.1   0:00.03 cups-browsed                                 
      1 root      20   0  101060  11776   8232 S   0.0   0.1   0:00.80 systemd                                     
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kthreadd                                     
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                       
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                   
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                       
      6 root      20   0       0      0      0 I   0.0   0.0   0:00.89 kworker/0:0-kacpi_notify                     
      7 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri                 
      8 root      20   0       0      0      0 I   0.0   0.0   0:00.62 kworker/u4:0-events_unbound                 
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                 
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_tasks_rude_                             
     11 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_tasks_trace                             
     12 root      20   0       0      0      0 S   0.0   0.0   0:00.82 ksoftirqd/0                                 
     13 root      20   0       0      0      0 I   0.0   0.0   0:00.18 rcu_sched                                   
     14 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0                                 
     15 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0                               
     16 root      20   0       0      0      0 I   0.0   0.0   0:05.04 kworker/0:1-events                           
     17 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                     
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1                                     
     19 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/1                               
     20 root      rt   0       0      0      0 S   0.0   0.0   0:00.14 migration/1                                 
     21 root      20   0       0      0      0 R   0.0   0.0   0:00.56 ksoftirqd/1                                 
     22 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0-events                           
     23 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-events_highpri                 
     24 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmpfs                                   
     25 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 inet_frag_wq                                 
     26 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kauditd
 
Last edited by a moderator:
brian@brian-desktop:~$ systemctl status -l kacpid
Unit kacpid.service could not be found.
brian@brian-desktop:~$
kacpid is a kernel thread, not a systemd service. It's "kernel acpi daemon" and is an internal process from the kernel.

If, when checking out the htop output, kacpid is using up huge amounts of cpu, then perhaps have a look at: https://unix.stackexchange.com/ques...ead-kacpid-notify-kacpid-hogging-60-70-of-cpu, and see if those suggestions there work.

If post #30 above in this thread was in code tags the columns would be preserved and it would be clearer to read.
 
Last edited:
If post #30 was in code tags the columns would be preserved and it would be clearer to read.

I got it.

At first I thought you meant at unix.stackexchange.com and I was gonna fix that one, but then I realized it wasn't a 3 and was a 30.
 
I got it.

At first I thought you meant at unix.stackexchange.com and I was gonna fix that one, but then I realized it wasn't a 3 and was a 30.
I amended my post, but see that Condobloke's post has been beautified, so my comment no longer applies. Thanks. All clear.
 
@osprey, thank you for that link !

I ran:
brian@brian-desktop:~$ grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1

and got the reply:
/sys/firmware/acpi/interrupts/gpe6F: 4283388 STS enabled unmasked

SO,
I ran sudo echo disable > /sys/firmware/acpi/interrupts/gpe6F

and CPU 1 came to a screeching halt !!!!

1672620883189.png

The nxt line on that page you linked says:
If you want to automate this process you can simply create a script with the following:

echo disable > $(grep -Ev '^[ ]*0' /sys/firmware/acpi/interrupts/gpe6F | sort --field-separator=: --key=2 --numeric --reverse | head -1 | awk -F: '{print $1}')

What does that mean?.....will that somehow run automatically each time the pc is rebooted /restarted??
 
Glad that result was so clear Condobloke.

There are a number of ways to make the command permanent, some of which are outlined here: https://unix.stackexchange.com/questions/242013/disable-gpe-acpi-interrupts-on-boot/528300#528300

I note that some respondents there mention echoing "mask" rather than "disable", which makes sense since the relevant files use "unmasked" as a configuration. Personally, I would lean towards creating a systemd service which is described on that link above which you can start and stop, enable and disable easily through systemctl commands. Good controls there. For example, if you upgrade the kernel, the behaviour of your system may change, and with simple systemctl commands you can start and stop the matter and see what happens without having to echo or fiddle around with other commands. YMMV.
 
Did not survive a shut down and restart

It did survive the reboot
<<<<<<<<<<
 
Success.

There was an 'interrupt' causing this problem of cpu @ 98%

grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1
The above snippet will look at all the interrupts, sort them numerically, and show you the one with the highest count.
In my case it was/is GPE6F

do this as root

sudo -s
sudo echo disable > /sys/firmware/acpi/interrupts/gpe6F (......stopped interrupt gpe6F)

I then needed to make the fix permanent
So,

then...
# crontab -e
This opens your favourite editor. Add these lines:

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe6F

That's it.


I have rebooted numerous times and also restarted numerous times, and system monitor appears normal....SHowing a tad high here because I had just opened an app

1672646401671.png
 
@dos2unix ....I altered the changes made to acpi in bios.
 
@Lord Boltar, I will take a serious look at that.
Currently looking at:

OR

I may even bite the bullet and see if I can put windows 10 on a usb stick, so that I can update the bios. (i may even have to take a disc image of linux and actually install win 10 to do that. I am not sure.

AsRock do not supply bios updates for Linux.
 
AsRock do not supply bios updates for Linux.

A lot of times, those BIOS updates can be done by simply putting them on a USB and they work outside the operating system. You might have to elect to boot to USB. I seem to recall the system somehow automatically recognizing it and entering the BIOS update process without any special steps.

Is there even a new-ish BIOS update available? A lot of times they only make those for a few years. Though, some did release updates for Spectre and the other major bug whose name I'm forgetting.

Edit: Meltdown. That's the other one. Meltdown and Spectre. A lot of OEMs updated to fix those problems (when they could), as my dim memory suggests. I knew I'd remember right after hitting the post button.
 
AsRock do not supply bios updates for Linux.

All of my ASrock systems let me update in the BIOS from USB. One or two of the newer ones will update directly from the internet. (while in the UEFI).
 
So, you update the necessary from : https://www.asrock.com/mb/Intel/B150M Pro4/#BIOS
In my case this will be 1.7 on that link's list....because lshw -c memory tells me the current version is:

description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: P1.60
date: 11/09/2015




....Save it to a usb (fat32) and then boot to that usb...??
 
Last edited:
@Condobloke :-

That "kworker" thing, Brian; I sometimes get it doing the same in Puppy. I usually use either Mate-system-monitor (or Gnome-system-monitor, depending on what I have installed) to kill it using the 'Processes' tab.

AFAICT, if you have any kind of KDE-related software on your system.....and it'll be there even if you're just running any kind of KDE AppImage, or standalone application.....it's in the background, because it's part of the Plasma-related software that every KDE app is built around. Sometimes, for no apparent reason, it just kicks off by itself & starts hogging CPU time.

(Another frequent one to watch out for is "nacl-helper", which is part of the background stuff on any Chromium-based browser..... This will do exactly the same thing. And there's no rational explanation for WHY it does, it's just one of those occasional glitches you learn to live with.

Not to disagree with Lord Boltar, but for the kind of stuff you do that dual-core Pentium should EASILY handle it. I run a newer version - a G5400 'Gold' - and it's effectively a quad-core anyway because of Hyperthreading. It's nowt to do with hardware, mate. It's modern, high-demand software, which is crammed with very 'lazy' coding that uses far more processes than it really needs to.

Running Puppy, you quickly learn how to produce far more lightweight, elegant coding!)


EDIT:- Hm. My mistake. You don't have Hyperthreading, so you DO only have the 2 cores....



Mike. :(
 
Last edited:


Top