support for asymmetric CPUs
- Reply: Peter Jeremy : "Re: support for asymmetric CPUs"
- Reply: Stefan Esser : "Re: support for asymmetric CPUs"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 01 Mar 2022 19:04:34 UTC
Has anyone been looking at scheduling issues for asymmetric CPUs like those with performance cores and efficiency cores? I've been looking at this a little, with Intel's Alder Lake as an example. E.g. the i7-12700 has 8 performance cores with SMT (hyperthreading) and 4 efficiency cores without SMT. The E-cores are supposedly better for threaded processes. Intel also has a hardware/firmware facility to advise the OS about process behavior to guide placement. I don't know much about this yet, but there is supposedly support pending for Linux. Looking ahead, the Apple M1 also has asymmetric CPUs with P-cores and E-cores. (Does FreeBSD support any ARM chips with asymmetric CPUs yet?) It seems clear that there should be a generalized interface that supports machine-dependent configuration, even if the hooks mostly end up pointing to machine-independent routines in the scheduler in common cases. I'd envision initial support that just looked at CPU usage and adjusted the cpusets for threads that were using the default cpuset. I was also thinking about exposing cpusets of P-cores and E-cores for use by knowledgeable user processes. I'm not sure whether it makes sense to try to generalize beyond one dimension, higher-performance and lower- performance cores, e.g. for vector-heavy processes or other potential asymmetric capabilities. I'm not sure how to generalize more, so that could be a future exercise if there was a reason for it. If anyone has thought about this or has done any work on it, I'd be interested to hear about it. Mike