I have two similar laptops, both thinkpad P series. I will outline their specs:
New Laptop:
- Intel(R) Core(TM) i7-12850HX (16 core 24 thread)
- 128GB DDR5, 4TB SSD (2x2TB)
- Ubuntu 22.04.3 LTS
Old Laptop:
- Intel(R) Core(TM) i7-11800H (8 core 16 thread)
- 64GB DDR4, 3TB SSD (1x1TB + 1x2TB)
- Ubuntu 20.04.6
By all of the specs, the new laptop should be sigificantly faster, and this is what most benchmarks show (sysbench cpu shows ~40% increase in new laptop, gcc compilation time is ~900 sec vs ~1300, Disk IO are within a few hundred kB/s over 150GB test, although old was technically faster).
The exception that's really killing me though is building petalinux (yocto/bitbake) projects. Starting with the same projects, the build times are (new - old), 40min - 10min, 60min - 20min for two different projects I work on frequently. I am not sure what is causing this slowdown though and I have tried a number of things:
Monitoring processes shows both systems have all CPUs pinned during most of the build, I tried limiting threads so that the 'efficiency cores' would not come into play in case they were somehow causing issues, but that only slowed things down. The new machine also doesnt seem to be spending resources in a significantly different way (as far as kernel vs user utilization shown in htop
). Also tried the answers here with no success. I looked through the output of perf
on the new machine but without knowing more what I'm looking for, that hasnt been helpful so I haven't run it on the old machine to compare, thats on the list.
Some main things I could use some help explaining/advice how to test: I notice that the new machine never seems to break 3.2GHz as reported by /proc/cpuinfo
CPU MHz
(assuming that's accurate) while the old machine seems to spend most of its time around 3.8-4 on all cores during the build. This is very confusing to me looking at the CPU specs. I also notice that the fans on the new laptop seem to be incredibly aggressive compared to the old one, I wonder if I am being heavily throttled? Temperatures reported by both seem a bit useless; Individual core temps vary by up to ~25 C on both machines, with some cores hitting the 'critical' temp of 100C while others hovered in the 80s. Overall CPU temp was more stable but equally high in both machines.
I need to look into this more but the first answer I saw in regards to determining that was to check CPU MHz
value. Obviously I am not getting the advertised max speed, but I am unsure where to start looking into why.
I am starting to suspect after writing and reading all that, that my performance cores are being throttled as if they are efficiency cores
Update 1:
After viewing this answer, I checked the scaling_governor
for my first CPU, and noticed it was in powersave despite the GUI settings being in performance mode. I set them all to performance and was happy to see my performance cores jump to 4+ GHz and complete a part of the build process quicker than before. Sadly, it has since returned to mostly 3.3-3.8 and the build is once again taking far longer.
powersave
mode in this version which is interesting (i made sure to change to performance in the GUI). Unfortunately benchmarking things that are interesting to me when running this version from USB is not practical due to the performance constraints of running off USB. I am looking into getting 23.10 entirely into RAM so I can test accurately, but unfortunately even if this did work, I would not be able to run 23 due to software tool requirements. Will edit if I find out anything though – Douglas B Nov 15 '23 at 05:05