You are not logged in.

#1 2023-11-15 20:09:09

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

i9-13900HX underperforming on ArchLinux

Hello everyone!
I am currently facing a problem regarding my Intel i9-13900HX CPU: it seems to underperform under ArchLinux, especially when comparing it with a Windows 10 PE installation (Medicat, to be exact).

To demonstrate it, I am using silver.urih.com with Google Chrome. This is a simple CPU benchmarking tool available online that you can try out for yourself, if you're interested.
Here are the average results that I've obtained:
- ArchLinux gets around P50000, with performance mode set from GNOME with the help of the power-profile-daemons package.
- Windows gets around P94000, with the performance profile set in Control Panel > Power Profiles.

I have tried a lot of things, but was unable to fix this rather frustrating issue:

- Disable intel_pstate and use acpi_cpufreq instead
- Specify an ACPI OSI string ("Windows 2022" in my case, since it was the original OS preinstalled on it) -- as a standalone kernel argument or prefixed with acpi_osi=!
- Disable ACPI altogether
- Alter the MSR registers as shown here to tune up the turbo ratio limits
- Install and enable thermald
- Install and enable tlp
- Install and use intel-undervolt, but the software fails to write to MSR registers

The only thing which I didn't test is to try out another distro to see if it affects ArchLinux only.
I know this is not a thermal throttling issue, as my CPU stays cool (60°C) under load -- in fact, my fan doesn't spin up at all under ArchLinux when the CPU shows 100% usage on System Monitor.
My installation is pretty basic: systemd + linux + gnome + wayland + intel/nvidia + prime.

For completeness, here's also the output of i7z when the CPU is idle:

Cpu speed from cpuinfo 2418.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2419 MHz
  CPU Multiplier 24x || Bus clock frequency (BCLK) 100.79 MHz

Socket [0] - [physical cores=24, logical cores=32, max online cores ever=24]
  TURBO ENABLED on 24 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 2519.79 MHz (100.79 x [25])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 Cores is  54x/54x/52x/52x/50x/50x
  Real Current Frequency 1731.91 MHz [100.79 x 17.18] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp      VCore
        Core 1 [0]:       1116.22 (11.07x)      1.43    5.13       0    12.1    82.1    46      0.7494
        Core 2 [2]:       1199.51 (11.90x)         1       0       0       1    99.1    42      0.7494
        Core 3 [4]:       1322.95 (13.13x)      6.87    23.2       0    10.4    62.6    46      0.7445
        Core 4 [6]:       1382.89 (13.72x)         1    2.32       0     2.1    95.1    45      0.7494
        Core 5 [8]:       1215.81 (12.06x)         1    1.36       0    3.19      95    45      0.7494
        Core 6 [10]:      1512.21 (15.00x)      1.76    3.31       0    4.87    90.7    42      0.7494
        Core 7 [12]:      1299.46 (12.89x)      2.82    21.1       0    27.2    50.3    43      0.7445
        Core 8 [14]:      1260.19 (12.50x)      3.48    4.44       0    16.7      77    40      0.7494
        Core 9 [16]:      1222.48 (12.13x)      1.02    1.27       0    98.2       0    46      0.7445
        Core 10 [17]:     1109.00 (11.00x)      2.37    3.23       0    95.7       0    46      0.7445
        Core 11 [18]:     1454.39 (14.43x)      2.55    3.35       0    95.1       0    46      0.7445
        Core 12 [19]:     1511.82 (15.00x)         1    0.705      0    99.2       0    46      0.7494
        Core 13 [20]:     966.96 (9.59x)           1    0.58       0    99.4       0    48      0.7594
        Core 14 [21]:     1178.97 (11.70x)         1    0.969      0      99       0    48      0.7494
        Core 15 [22]:     1180.54 (11.71x)         1    0.871      0    99.1       0    48      0.7445
        Core 16 [23]:     1193.03 (11.84x)         1    0.894      0    99.1       0    48      0.7445
        Core 17 [24]:     975.09 (9.67x)           1    1.31       0    98.7       0    48      0.7445
        Core 18 [25]:     1268.79 (12.59x)      5.28    7.66       0    89.6       0    48      0.7441
        Core 19 [26]:     1731.91 (17.18x)         1    1.12       0    98.5       0    48      0.7441
        Core 20 [27]:     1196.99 (11.88x)         1    2.71       0    97.3       0    48      0.7490
        Core 21 [28]:     1069.46 (10.61x)         1    0.301      0    99.7       0    46      0.7490
        Core 22 [29]:     1277.57 (12.68x)         1    1.47       0    98.5       0    46      0.7490
        Core 23 [30]:     1167.25 (11.58x)         1    2.71       0    97.3       0    46      0.7490
        Core 24 [31]:     1246.33 (12.37x)         1    0.805      0    99.2       0    46      0.7490

And here's the same output when the benchmarking tool is running:

Cpu speed from cpuinfo 2419.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2418 MHz
  CPU Multiplier 24x || Bus clock frequency (BCLK) 100.75 MHz

Socket [0] - [physical cores=24, logical cores=32, max online cores ever=24]
  TURBO ENABLED on 24 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 2518.75 MHz (100.75 x [25])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 Cores is  54x/54x/52x/52x/50x/50x
  Real Current Frequency 2239.21 MHz [100.75 x 22.23] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp      VCore
        Core 1 [0]:       2233.57 (22.17x)      74.6    31.1       0       0       0    60      0.7949
        Core 2 [2]:       2235.35 (22.19x)      85.8    20.7       0       0       0    58      0.7866
        Core 3 [4]:       2238.83 (22.22x)      90.8      16       0       0       0    61      0.7866
        Core 4 [6]:       2237.20 (22.21x)      95.1      12       0       0       0    59      0.7866
        Core 5 [8]:       2239.21 (22.23x)      97.7    9.55       0       0       0    61      0.7866
        Core 6 [10]:      2238.87 (22.22x)      98.9    8.45       0       0       0    57      0.7866
        Core 7 [12]:      2237.80 (22.21x)      97.7    9.58       0       0       0    59      0.7866
        Core 8 [14]:      2238.25 (22.22x)      98.9    8.48       0       0       0    57      0.7866
        Core 9 [16]:      1941.93 (19.27x)       100    19.7       0       0       0    60      0.7866
        Core 10 [17]:     1941.94 (19.27x)       100    19.7       0       0       0    60      0.7866
        Core 11 [18]:     1941.95 (19.27x)       100    19.7       0       0       0    60      0.7866
        Core 12 [19]:     1941.86 (19.27x)      99.9    19.8       0       0       0    60      0.7866
        Core 13 [20]:     1941.97 (19.28x)       100    19.7       0       0       0    59      0.7866
        Core 14 [21]:     1941.98 (19.28x)       100    19.7       0       0       0    59      0.7866
        Core 15 [22]:     1941.88 (19.27x)       100    19.8       0       0       0    59      0.7866
        Core 16 [23]:     1942.01 (19.28x)       100    19.8       0       0       0    59      0.7866
        Core 17 [24]:     1970.18 (19.56x)      99.9    18.6       0       0       0    61      0.7866
        Core 18 [25]:     1970.18 (19.56x)      99.9    18.6       0       0       0    61      0.7866
        Core 19 [26]:     1970.20 (19.56x)      99.9    18.6       0       0       0    61      0.7866
        Core 20 [27]:     1970.18 (19.56x)      99.9    18.6       0       0       0    61      0.7866
        Core 21 [28]:     1970.47 (19.56x)      99.3    18.1       0       1       0    58      0.7866
        Core 22 [29]:     1970.34 (19.56x)      99.6    17.9       0       1       0    58      0.7866
        Core 23 [30]:     1970.25 (19.56x)      99.8    17.7       0       1       0    58      0.7866
        Core 24 [31]:     1970.17 (19.56x)       100    18.6       0       0       0    58      0.7866

One thing that intrigues me about is that those C1% readings have quite high values even though we're having ~100% on C0 on (almost) all cores. Why is that so?

My laptop is an HP Omen 17 ck2000nf, and the hardware specs/details are available here) -- but you can also ask me to run commands if you need :]

Anyways, thanks for your time reading all of this -- I wish you a great day! :]

Offline

#2 2023-11-15 20:32:05

espritlibre
Member
Registered: 2022-12-15
Posts: 119

Re: i9-13900HX underperforming on ArchLinux

could be kernel related, which kernel are you running? what error did you get while trying to modify MSR registers?
you can try to set power limit in the intel-rapl driver, try this while connected to AC power:

echo 157000000 | sudo tee /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw
echo 28000000 | sudo tee /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_0_time_window_us
echo 157000000 | sudo tee /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_1_power_limit_uw
echo 2440 | sudo tee /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_1_time_window_us
echo 157000000 | sudo tee /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw
echo 28000000 | sudo tee /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_time_window_us
echo 157000000 | sudo tee /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_1_power_limit_uw
echo 2440 | sudo tee /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_1_time_window_us

you can put the commands in a simple script for convenience... (the values will be reset on the next boot)
if this lets your cpu run at max power then, you probably want this

EDIT:
use at own caution, i'm not responsible for damaged hardware. the values will let your cpu run at max (supported) power under load and your cpu should get throttled at 95° Celsius.

Last edited by espritlibre (2023-11-15 20:40:01)

Offline

#3 2023-11-15 20:43:52

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

espritlibre wrote:

could be there kernel related, which kernel are you running?

I'm running on the latest Linux kernel:

Linux alexis-pc 6.6.1-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 08 Nov 2023 16:05:38 +0000 x86_64 GNU/Linux
espritlibre wrote:

what error did you get while trying to modify MSR registers?

I used both intel-undervolt (after modifing the associated config file @ /etc/intel-undervolt.conf) and undervolt (as is), and here's what I get:

# undervolt -vvvv
vendor_id GenuineIntel is not supported
cpu 0 msr C0010061 path /dev/cpu/0/msr
Read msr register: Input/output error
Failed reading msr register. Is the msr module loaded?
# intel-undervolt apply
CPU (0): Values do not equal
GPU (1): -0.00 mV
CPU Cache (2): Values do not equal
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV
espritlibre wrote:

you can try to set power limit in the intel-rapl driver, try this while connected to AC power:

This did not improve the performance, I still get the same score on silver.urih.com.

Here's also i7z under load with your settings applied:

Cpu speed from cpuinfo 2419.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2419 MHz
  CPU Multiplier 24x || Bus clock frequency (BCLK) 100.79 MHz

Socket [0] - [physical cores=24, logical cores=32, max online cores ever=24]
  TURBO ENABLED on 24 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 2519.79 MHz (100.79 x [25])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 Cores is  54x/54x/52x/52x/50x/50x
  Real Current Frequency 2271.08 MHz [100.79 x 22.53] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp      VCore
        Core 1 [0]:       2271.08 (22.53x)      74.9    29.7       0       0       0    59      0.7858
        Core 2 [2]:       2270.10 (22.52x)      82.4    22.7       0       0       0    58      0.7858
        Core 3 [4]:       2269.24 (22.51x)      87.4      18       0       0       0    59      0.7858
        Core 4 [6]:       2268.81 (22.51x)      89.6      15       0       1       0    59      0.7858
        Core 5 [8]:       2266.83 (22.49x)      90.7      14       0       1       0    61      0.7932
        Core 6 [10]:      2267.36 (22.50x)      93.7    12.2       0       0       0    58      0.7932
        Core 7 [12]:      2269.33 (22.52x)      94.4    11.5       0       0       0    58      0.7932
        Core 8 [14]:      2270.27 (22.52x)      94.8    10.1       0       1       0    57      0.7932
        Core 9 [16]:      1970.53 (19.55x)      99.9    18.7       0       0       0    60      0.7932
        Core 10 [17]:     1970.63 (19.55x)      99.8    18.7       0       0       0    60      0.7932
        Core 11 [18]:     1970.59 (19.55x)      99.9    18.6       0       0       0    60      0.7932
        Core 12 [19]:     1970.61 (19.55x)      99.9    18.6       0       0       0    60      0.7932
        Core 13 [20]:     1970.49 (19.55x)      99.7    18.8       0       0       0    59      0.7932
        Core 14 [21]:     1970.44 (19.55x)      99.5    17.9       0       1       0    59      0.7932
        Core 15 [22]:     1970.67 (19.55x)      99.9    18.6       0       0       0    59      0.7932
        Core 16 [23]:     1970.57 (19.55x)      99.6    17.9       0       1       0    59      0.7932
        Core 17 [24]:     1957.52 (19.42x)      99.7    18.3       0       1       0    60      0.7932
        Core 18 [25]:     1957.52 (19.42x)      99.8    18.3       0       1       0    60      0.7932
        Core 19 [26]:     1957.68 (19.42x)      99.8    18.2       0       1       0    60      0.7924
        Core 20 [27]:     1957.52 (19.42x)      99.8    18.2       0       1       0    60      0.7924
        Core 21 [28]:     1957.59 (19.42x)      99.1    19.8       0       0       0    58      0.7921
        Core 22 [29]:     1957.39 (19.42x)      99.5    18.5       0       1       0    58      0.7921
        Core 23 [30]:     1957.61 (19.42x)      99.7    19.3       0       0       0    58      0.7921
        Core 24 [31]:     1957.49 (19.42x)      99.6    18.4       0       1       0    59      0.7921

I've also tried installing throttled & starting the service, but it seems that the program does not support my CPU:

# systemctl start throttled.service
# systemctl status throttled.service
nov. 15 21:42:06 alexis-pc systemd[1]: Started Stop Intel throttling.
nov. 15 21:42:06 alexis-pc throttled.py[11380]: [E] Your CPU model is not supported.
nov. 15 21:42:06 alexis-pc throttled.py[11380]: Please open a new issue (https://github.com/erpalma/throttled/issues) specifying:
nov. 15 21:42:06 alexis-pc throttled.py[11380]:  - model name
nov. 15 21:42:06 alexis-pc throttled.py[11380]:  - cpu family
nov. 15 21:42:06 alexis-pc throttled.py[11380]:  - model
nov. 15 21:42:06 alexis-pc throttled.py[11380]:  - stepping
nov. 15 21:42:06 alexis-pc throttled.py[11380]: from /proc/cpuinfo.
nov. 15 21:42:06 alexis-pc systemd[1]: throttled.service: Main process exited, code=exited, status=1/FAILURE
nov. 15 21:42:06 alexis-pc systemd[1]: throttled.service: Failed with result 'exit-code'.

Sorry for the rather long response, but hopefully this answers all of your interrogations. :]

Offline

#4 2023-11-15 20:49:38

espritlibre
Member
Registered: 2022-12-15
Posts: 119

Re: i9-13900HX underperforming on ArchLinux

whats the output of:

lsmod | grep msr
cat /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_1_power_limit_uw
cat /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw

Last edited by espritlibre (2023-11-15 20:49:48)

Offline

#5 2023-11-15 20:54:44

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

Here's the output of the commands that you've provided me:

# lsmod | grep msr
intel_rapl_msr         20480  0
intel_rapl_common      40960  2 intel_rapl_msr,processor_thermal_rapl

# cat /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_1_power_limit_uw
157000000

# cat /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw
157000000

I believe you're interrogating how much Watts my CPU can pull from power, right?

Last edited by mysterious.fox (2023-11-15 20:55:55)

Offline

#6 2023-11-15 20:56:59

espritlibre
Member
Registered: 2022-12-15
Posts: 119

Re: i9-13900HX underperforming on ArchLinux

sudo modprobe msr

Offline

#7 2023-11-15 20:59:18

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

This doesn't seem to have changed anything -- I believe "msr" is just some kind of alias to the actual driver that is determined by the hardware that you have.

# modprobe msr
# lsmod | grep msr
intel_rapl_msr         20480  0
intel_rapl_common      40960  2 intel_rapl_msr,processor_thermal_rapl

There's also nothing really interesting in my dmesg log, although I'm still posting it here if that can help.

Last edited by mysterious.fox (2023-11-15 21:03:08)

Offline

#8 2023-11-15 21:14:24

espritlibre
Member
Registered: 2022-12-15
Posts: 119

Re: i9-13900HX underperforming on ArchLinux

mysterious.fox wrote:

I believe you're interrogating how much Watts my CPU can pull from power, right?

yes, the value "157000000" are 157 watts which your cpu can pull max. on all my laptops the default kernel values have been too low and throttled.

mysterious.fox wrote:

This doesn't seem to have changed anything -- I believe "msr" is just some kind of alias to the actual driver that is determined by the hardware that you have.

it's not an alias, it's the kernel modules name. it should be loaded by default actually, i have no clue why it's not loading for you. the msr module is built-in arch kernel. tried rebooting?
i'm out of ideas otherwise.

EDIT:
have you undone everything that didn't work for you?

Last edited by espritlibre (2023-11-15 21:17:51)

Offline

#9 2023-11-15 21:24:11

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

espritlibre wrote:

it's not an alias, it's the kernel modules name. it should be loaded by default actually, i have no clue why it's not loading for you. the msr module is built-in arch kernel. tried rebooting?

Alright, learned something today! :]
I did reboot, but again that specific module is not loaded, and doesn't want to load apparently..

espritlibre wrote:

have you undone everything that didn't work for you?

For each method I've tried, I made sure to uninstall anything that was necessary for the previous method to be tested, to prevent conflicts as noted in the wiki.

Offline

#10 2023-11-15 21:31:15

espritlibre
Member
Registered: 2022-12-15
Posts: 119

Re: i9-13900HX underperforming on ArchLinux

in your output of the undervolt tool complained about msr not being loaded. i haven't used this tool myself so i can't say anything about it... but i can say for sure undervolting is locked on recent intel cpus and theres no easy way unlocking it. so the tool won't work for you anyway.
i'd make sure that you cpu isn't throttled via firmware, maybe there's even a setting for it.

good luck

Offline

#11 2023-11-15 21:54:03

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

espritlibre wrote:

i'd make sure that you cpu isn't throttled via firmware, maybe there's even a setting for it.

I've looked at all of the UEFI options that my laptop provides me, even "hidden" advanced ones but there's no real option that would control that.

Thanks for your time digging through the problem, I appreciate it!

Offline

#12 2023-11-16 14:07:38

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

I've been browsing through the kernel mailing list and found this article which describes the exact same issue as reported, here's the link: https://bugzilla.kernel.org/show_bug.cgi?id=217976
I will try out the proposed workarounds this evening. If there's one that works for me, I'll post it here so that we avoid the dead-link doom :]

Offline

#13 2023-11-17 04:00:06

evorster
Member
Registered: 2020-07-07
Posts: 14

Re: i9-13900HX underperforming on ArchLinux

Hi there, I'm the writer of https://bugzilla.kernel.org/show_bug.cgi?id=217976.

If you are using the intel p_states driver, and you should, you will not see this file:
/sys/devices/system/cpu/cpufreq/policy0/bios_limit

If, however you disable p_states, just for testing, and use cpufreq, then this file appears, and it might contain the limit your kernel listens to when setting CPU allowed frequencies.

So, use p_states, it's made by intel and much more responsive and smart than cpufreq.

Don't try to switch off ACPI, the rest of your laptop heavily depends on it.

I have not tried the msr stuff, so nothing in that direction has been modified.
```
[evert@Evert ~]$ lsmod | grep msr
intel_rapl_msr         20480  0
intel_rapl_common      40960  2 intel_rapl_msr,processor_thermal_rapl
[evert@Evert ~]$ cat /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_1_power_limit_uw
162000000
[evert@Evert ~]$ cat /sys/devices/virtual/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw
135000000
```
Where are these values from and how are they set? ( I guess I have some googling to do now, thanks )

Following this link:
https://www.thinkwiki.org/wiki/Problem_ … cy_scaling

I discovered that you can turn off throttling, like so:
```
echo 1 | sudo tee /sys/module/processor/parameters/ignore_ppc
```

Then, I can set the proper frequency ranges for my CPU with cpupower:
```
sudo cpupower -c 0-15 frequency-set -d 2.2GHz -u 5.4GHz
sudo cpupower -c 16-31 frequency-set -d 1.6GHz -u 3.9GHz
sudo cpupower -c all frequency-set -g performance
sudo cpupower -c all set --perf-bias 0
```

With those set, I was able to outrun Windows on the same hardware in Geekbench. However, CPU temps would flash from 60 to 100 in one sample and make me quite nervous. Which is why I recommend running p_states, as it is much quicker at throttling than cpufreq.

Anyways, I typically back off a little on the CPU frequencies, and disable turbo, so these are the values I run at now, which gives me about 80 percent of the performance that I see in windows, and the laptop runs more quietly and temps are not so wild:
```
echo 1 | tee /sys/module/processor/parameters/ignore_ppc
cpupower -c 0-15 frequency-set -d 0.8GHz -u 4.8GHz
cpupower -c 16-31 frequency-set -d 0.8GHz -u 3.9GHz
cpupower -c all frequency-set -g powersave
cpupower -c all set --perf-bias 15
```

Offline

#14 2023-11-17 05:08:58

evorster
Member
Registered: 2020-07-07
Posts: 14

Re: i9-13900HX underperforming on ArchLinux

Using s-gui (Amazing software, btw) I can see that this laptop can briefly draw 215W, and can coast at about 200W indefinitely when stress testing the whole CPU. I can also run just one thread at 5.2GHz indefinitely, but then it does not use that much power.

However, from the intel-rapl stuff above it seems that the values are set way below what this laptop needs for full performance.

So, how are these values set, who determines what those values should be?

Last edited by evorster (2023-11-17 05:47:17)

Offline

#15 2023-11-17 05:51:18

evorster
Member
Registered: 2020-07-07
Posts: 14

Re: i9-13900HX underperforming on ArchLinux

Digging a little further, raplcap from AUR is shining a little light on this subject.
It is currently telling me that my CPU is not supported, but I have submitted an issue with the project on Github. Let's see where this leads us.

Offline

#16 2023-11-17 08:58:54

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

evorster wrote:

I discovered that you can turn off throttling, like so:
```
echo 1 | sudo tee /sys/module/processor/parameters/ignore_ppc
```

Then, I can set the proper frequency ranges for my CPU with cpupower:
```
sudo cpupower -c 0-15 frequency-set -d 2.2GHz -u 5.4GHz
sudo cpupower -c 16-31 frequency-set -d 1.6GHz -u 3.9GHz
sudo cpupower -c all frequency-set -g performance
sudo cpupower -c all set --perf-bias 0
```

With those set, I was able to outrun Windows on the same hardware in Geekbench. However, CPU temps would flash from 60 to 100 in one sample and make me quite nervous. Which is why I recommend running p_states, as it is much quicker at throttling than cpufreq.

Anyways, I typically back off a little on the CPU frequencies, and disable turbo, so these are the values I run at now, which gives me about 80 percent of the performance that I see in windows, and the laptop runs more quietly and temps are not so wild:
```
echo 1 | tee /sys/module/processor/parameters/ignore_ppc
cpupower -c 0-15 frequency-set -d 0.8GHz -u 4.8GHz
cpupower -c 16-31 frequency-set -d 0.8GHz -u 3.9GHz
cpupower -c all frequency-set -g powersave
cpupower -c all set --perf-bias 15

On my side, executing those commands do not alter the performance of my processor. I am starting to suspect the "Battery Optimizer" option that's enabled in my UEFI firmware setup utility. I'll disable that and see if this makes a difference.

Using rapl-info, it seems that I have overall very different readings:

# rapl-info
Zone 0
  name: package-0
  enabled: 1
  max_energy_range_uj: 262143328850
  energy_uj: 4187241050
  Constraint 0
    name: long_term
    power_limit_uw: 130000000
    time_window_us: 55967744
    max_power_uw: 55000000
  Constraint 1
    name: short_term
    power_limit_uw: 130000000
    time_window_us: 2440
    max_power_uw: 0
  Constraint 2
    name: peak_power
    power_limit_uw: 200000000
    max_power_uw: 0
  Subzone 0
    name: core
    enabled: 0
    max_energy_range_uj: 262143328850
    energy_uj: 1169645443
    Constraint 0
      name: long_term
      power_limit_uw: 0
      time_window_us: 976
  Subzone 1
    name: uncore
    enabled: 0
    max_energy_range_uj: 262143328850
    energy_uj: 101058029
    Constraint 0
      name: long_term
      power_limit_uw: 0
      time_window_us: 976

The ACPI tables tied to the UEFI firmware probably have an influence on those values though.

evorster wrote:

Using s-gui (Amazing software, btw) I can see that this laptop can briefly draw 215W, and can coast at about 200W indefinitely when stress testing the whole CPU

I was unable to find the software on AUR or Google. Do you have a specific package name or link that I could access to test it out on my side?

evorster wrote:

Digging a little further, raplcap from AUR is shining a little light on this subject.
It is currently telling me that my CPU is not supported, but I have submitted an issue with the project on Github. Let's see where this leads us.

Nice -- if you can provide a link to the issue that you've opened, that'd be perfect!

Offline

#17 2023-11-17 22:44:38

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

The source of my slow performance seems to be that the kernel believes that my CPU can draw a maximum of <50W. Under load, this is what I get with turbostat:

# turbostat --quiet --interval 1 --cpu 0-31 --show "PkgWatt","Busy%","Core","CoreTmp"
Core	Busy%	CoreTmp	PkgWatt
-	97.22	58	48.24
0	70.10	58	47.80
0	97.42
4	84.38	54
4	98.21
8	92.53	56
8	98.65
12	95.34	54
12	98.42
16	95.77	58
16	98.97
20	98.50	53
20	98.67
24	97.70	56
24	97.35
28	95.34	53
28	98.93
32	99.72	55
33	99.71	55
34	99.74	55
35	99.72	55
36	99.70	57
37	99.74	57
38	99.73	57
39	99.55	57
40	99.76	55
41	99.74	55
42	99.75	55
43	99.74	55
44	99.52	55
45	99.72	55
46	99.54	55
47	99.72	55

I already tried to alter PL1 (power limit 1) and PL2 (power limit 2) criterias through setPL.sh to set them to the correct values (both at least at 137W), but to no avail -- both with intel_pstate=disable and without it.
I'll continue to search in that direction and see if I can find anything good.

Offline

#18 2023-11-19 19:01:21

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

Quick update, it seems that the Omen Gaming Center program on Windows controls how much TDP my CPU can draw. It bypasses Intel's XTU utility, and in fact makes it pretty much unusable when OGC is installed.
This is really problematic because you thus have to run the Omen Gaming Center program to get proper CPU performance. This is really bad.

I'm still trying to find a solution to this, because I don't want to give up running Windows 11 anytime soon on my laptop.

-- EDIT: I was able ONCE to reach 100W under load. I randomly fiddled with some sysfs files (min_perf_pct, max_perf_pct) regarding intel_pstate, so I have no idea how to reproduce it agian. Will keep this updated.

Last edited by mysterious.fox (2023-11-19 22:36:35)

Offline

#19 2023-11-25 22:20:37

mysterious.fox
Member
Registered: 2023-11-15
Posts: 11

Re: i9-13900HX underperforming on ArchLinux

Another update: I was able to patch hp-wmi to support my board -- there are also other fan/power related issues, follow up is available here: https://bugzilla.kernel.org/show_bug.cgi?id=218188

Offline

#20 2024-02-06 22:05:44

satur9nine
Member
Registered: 2024-02-06
Posts: 1

Re: i9-13900HX underperforming on ArchLinux

I have an Asus ROG Strix Scar 16 with a i9 13980HX. Gets 98,693 on silver.urih.com. Under load turbostat shows CPU draw up to 175 watts on my machine. Do you have the machine plugged in to AC outlet via the power brick that came with the laptop?

I am running Kernel 6.5.0.  What version of thermald are you using? I'm on 2.5.2. Notice in thermald notes that 2.5.2 is the minimum you should use with raptor lake to be safe: https://github.com/intel/thermal_daemon … README.txt

Offline

Board footer

Powered by FluxBB