Ah I did! https://news.ycombinator.com/item?id=39254487
(Feels a bit soon to repost somehow…)
(Feels a bit soon to repost somehow…)
If you have 4 real cores, with 2 hyperthreads, the system reports 8 CPUs. But that's fake. Hyperthreads share most of their compute and register resources, so they only work well if a core is spending most of its time waiting. 2 hyperthreads both doing full compute will basically work at half speed each, which is close to what your graph is showing.
BTW, you can check on Linux with this command LANG=C lscpu and checking the Thread(s) per core value
But I since found that 4 are “efficiency” cores, so that could be the reason for the poor scaling(?)