Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Could this be due to how Windows vs Linux does process scheduling on CPUs with P- and E-cores?

To my knowledge Linux isn’t that capable on BIG.little architectures, and Linux power-management (as this intersects with) has always left a little to be desired - when comparing battery life to Windows.

Disclaimer: pure speculation. Possibly misinformed :-D



> To my knowledge Linux isn’t that capable on BIG.little

Android uses Linux as it kernel and runs on billions of devices with heterogeneous cores. Linux had this capability for way longer than Windows did; Windows for the most part did not run on devices with heterogeneous cores until the Intel Alder Lake (12th gen) CPUs.

Win11 outperformed Linux at Alder Lake release too [1] but eventually this changed and Linux was better on Meteor Lake [2]. Probably Arrow Lake has some microarchitectural changes which do not mesh well with Linux's core scheduling logic which Intel will need to fix, at which point Linux will probably close the gap again.

[1] https://www.phoronix.com/review/alderlake-windows-linux/9 [2] https://www.phoronix.com/review/intel-meteorlake-windows-lin...


> Android uses Linux as it kernel and runs on billions of devices with heterogeneous cores. Linux had this capability for way longer than Windows did; Windows for the most part did not run on devices with heterogeneous cores until the Intel Alder Lake (12th gen) CPUs.

The extra capabilities of Android come from custom patches from Qualcomm kernels. They are so far diverged from the mainline, it is really really hard to merge it back. They not only add drivers but patch the kernel itself. Windows NT can have hints for thread scheduling from the userspace since they control Win32. Now the question becomes is there a way to patch Glibc and all other system libraries on Linux to give equal information to Linux kernel. Of course Linux kernel can guess but it is a lossy information channel.


> Could this be due to how Windows vs Linux does process scheduling on CPUs with P- and E-cores?

Had the same thought: I would also expect this to be an artifact of suboptimal scheduling on Linux or some otherwise unidentified issue.

Linux is usually outperforming Windows by a good margin on the same hardware.

Also, in my experience, Windows 11 does not improve performance compared to Windows 10 (I have to use both versions at my dayjob).

I would be very surprised if this isn’t an issue with drivers or scheduling.


When Intel released their P/E architecture, Windows took a long time to adapt the scheduler to them. Linux destroyed it in every benchmark for months.


Yep I suspect this too from the benchmarks. The linux kernel doesn't send the instructions to the right cores and likely sees them all as the same and not 'high power' vs 'low power' cores


I have a 13th gen desktop and laptop, both running Linux. They work just fine.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: