HeNotSatisfied Posted January 20 Share Posted January 20 hey guys, since I'm getting desperate I decided to write a post in the hope that some of you have a few more ideas. Here's the problem: About every 25 seconds a CPU core goes to 100% for about 5 seconds. "top" gives me the information that the "kworker" process is very active during this time. I have already tried all the possible fixes I found in the forum and reddit, rebuilt the whole system several times, tried different hard disks, motherboards and SAS HBAs. There are no plugins, VMs or Docker installed. Once again, I really hope you guys can help me. The following components are installed. CPU: Intel i5 10500 Motherboard: ASRock H510M-HVS R2.0 RAM: 32 GB DDR4 (2x 16 GB Corsair CMK32GX4M2A2666C16) PSU: Corsair RM550x (2021) SAS HBA: Dell PERC H310 hsrv01-diagnostics-20240120-1923.zip Quote Link to comment
Vr2Io Posted January 21 Share Posted January 21 11 hours ago, HeNotSatisfied said: About every 25 seconds a CPU core goes to 100% for about 5 seconds. If boot to safe mode, same ? Quote Link to comment
HeNotSatisfied Posted January 21 Author Share Posted January 21 2 hours ago, Vr2Io said: If boot to safe mode, same ? Unfortunately yes. Quote Link to comment
HeNotSatisfied Posted January 21 Author Share Posted January 21 i have found out that the problem only occurs when no monitor is connected. Any ideas? Quote Link to comment
Dase Posted January 21 Share Posted January 21 I have this same problem on my board, an ASRockRack E3C246D4U. Took me forever to track down. It appeared in the 6.11 series. Blacklisting the GPU i915 module fixed it. Now I can't use hardware transcoding, but the CPU not spiking every 30 seconds was worth the tradeoff for me. Quote Link to comment
Dase Posted January 21 Share Posted January 21 By the way, here's the call trace on on my system on the active core during a spike. You can see it trying to do some display-related work: Call Trace: [ 967.656630] <NMI> [ 967.656631] ? nmi_cpu_backtrace+0xd3/0x104 [ 967.656633] ? nmi_cpu_backtrace_handler+0xd/0x15 [ 967.656635] ? nmi_handle+0x54/0x131 [ 967.656637] ? do_raw_spin_lock+0xb/0x1a [ 967.656638] ? default_do_nmi+0x66/0x15b [ 967.656640] ? exc_nmi+0xbf/0x130 [ 967.656642] ? end_repeat_nmi+0x16/0x67 [ 967.656644] ? do_raw_spin_lock+0xb/0x1a [ 967.656645] ? do_raw_spin_lock+0xb/0x1a [ 967.656647] ? do_raw_spin_lock+0xb/0x1a [ 967.656647] </NMI> [ 967.656648] <TASK> [ 967.656648] _raw_spin_lock_irqsave+0x2c/0x37 [ 967.656650] fwtable_read32+0x2c/0xb8 [i915] [ 967.656723] get_data+0x54/0x63 [i915] [ 967.656796] bit_xfer+0x252/0x3e1 [i2c_algo_bit] [ 967.656800] gmbus_xfer+0x44/0x92 [i915] [ 967.656909] __i2c_transfer+0x2af/0x39b [i2c_core] [ 967.656917] i2c_transfer+0xa2/0xc6 [i2c_core] [ 967.656923] drm_do_probe_ddc_edid+0xc6/0x130 [drm] [ 967.656950] ? drm_get_override_edid+0x53/0x53 [drm] [ 967.656973] edid_block_read+0x3a/0xc1 [drm] [ 967.656996] _drm_do_get_edid+0x83/0x2ec [drm] [ 967.657018] ? drm_get_override_edid+0x53/0x53 [drm] [ 967.657041] drm_get_edid+0x34/0x5c [drm] [ 967.657063] intel_hdmi_set_edid+0x9d/0x271 [i915] [ 967.657136] intel_hdmi_detect+0xc7/0x101 [i915] [ 967.657207] drm_helper_probe_detect_ctx+0x81/0xf4 [drm_kms_helper] [ 967.657219] output_poll_execute+0x10e/0x1fb [drm_kms_helper] [ 967.657231] process_one_work+0x1a8/0x295 [ 967.657233] worker_thread+0x18b/0x244 [ 967.657235] ? rescuer_thread+0x281/0x281 [ 967.657237] kthread+0xe4/0xef [ 967.657239] ? kthread_complete_and_exit+0x1b/0x1b [ 967.657241] ret_from_fork+0x1f/0x30 [ 967.657243] </TASK> Quote Link to comment
HeNotSatisfied Posted January 21 Author Share Posted January 21 hi, I have probably found a solution. i will test this further and then post my findings. If this works, all system functions will be retained. See you in three days or so. (I promise) What a journey with a lot of frustration..... Quote Link to comment
Solution HeNotSatisfied Posted January 27 Author Solution Share Posted January 27 The problem I found was that as soon as the screen is not connected, dimmed or turned off, this behavior occurs. To fix this, I connected an HDMI dummy to the server (LINK). Then the screen power saving settings need to be disabled. This results in a higher power consumption of approx. 0.5~1.5 W for me. The only way I have found to disable it, which also preserves all hardware functions, is to customize the "GO" file under: /boot/config/go [usb-drive/config/go]. here the first command under #!/bin/bash must be the command /bin/setterm -blank 0 -powersave off -powerdown 0. The file then looks like this for me: #!/bin/bash #fix kworker bug - keep display active /bin/setterm -blank 0 -powersave off -powerdown 0 # Start the Management Utility /usr/local/sbin/emhttp & the system must then be restarted. adjusting the go file alone does not solve the problem, it requires an HDMI dummy or monitor. normally the file "/etc/rc.d/rc.setterm" must be adjusted in Linux Slackware. The lines are already preconfigured and only need to be commented in. See Slackware docs [LINK]. Since unraid creates the /etc/ directory at every start and loads it into RAM, these settings are lost after every restart. you can have the file replaced at every start. but i didn't want to do that and i think it's easier to just write the command in the go-file. go 1 Quote Link to comment
berger321 Posted February 25 Share Posted February 25 Think i'm having the same problem as you. I have the asrock rack E3C246D2I board and I get the kworker spikes only the integrated graphics is enabled. I tried doing what you said with the go file and a dummy vga plug but i'm still getting the spikes. Any ideas what else i could try? Did you change anything else in the bios? Quote Link to comment
berger321 Posted February 28 Share Posted February 28 Ok, i fixed it so i'll share for anyone else having the problem. With my motherboard i've found out that the igpu is not supported for vga output so that explains why the previous solution didn't work for me. I ended up adding i915.disable_display=1 after each "append" line in my syslinux config file in the flash drive. Now my file looks like this. default menu.c32 menu title Lime Technology, Inc. prompt 0 timeout 50 label Unraid OS menu default kernel /bzimage append initrd=/bzroot i915.disable_display=1 label Unraid OS GUI Mode kernel /bzimage append initrd=/bzroot,/bzroot-gui i915.disable_display=1 label Unraid OS Safe Mode (no plugins, no GUI) kernel /bzimage append initrd=/bzroot unraidsafemode i915.disable_display=1 label Unraid OS GUI Safe Mode (no plugins) kernel /bzimage append initrd=/bzroot,/bzroot-gui unraidsafemode i915.disable_display=1 label Memtest86+ kernel /memtest After a reboot i no longer have the cpu spikes or the kworker process running every 30 seconds. Plus the igpu still works for hardware transcoding. 1 Quote Link to comment
HeNotSatisfied Posted February 28 Author Share Posted February 28 Thank you for pointing that out! Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.