2021-06-16 11:44:38

by Ley Foon Tan

[permalink] [raw]
Subject: sched: Question about big and little cores system with SMP and EAS

Hi all

Would like to ask the experts here regarding the Symmetric
Multi-Processing mode (SMP) with Energy aware scheduler (EAS) support
on the big + little cores system.

Hardware system:
Big and little cores have almost the same ISA, but the big core has
some extension instructions that little core doesn't have.

With this hardware system, is it still possible to use SMP with EAS?
Any suggestions supporting this kind of hardware system in Linux?

Thanks in advance.

Regards
Ley Foon


2021-06-16 19:38:41

by Dietmar Eggemann

[permalink] [raw]
Subject: Re: sched: Question about big and little cores system with SMP and EAS

- Quentin Perret <[email protected]>
+ Quentin Perret <[email protected]>

On 16/06/2021 13:39, Peter Zijlstra wrote:
> On Wed, Jun 16, 2021 at 07:29:26PM +0800, Ley Foon Tan wrote:
>> Hi all
>>
>> Would like to ask the experts here regarding the Symmetric
>> Multi-Processing mode (SMP) with Energy aware scheduler (EAS) support
>> on the big + little cores system.
>
> And the you ask a question unrelated to either Symmetric MP or EAS :-)
>
>> Hardware system:
>> Big and little cores have almost the same ISA, but the big core has
>> some extension instructions that little core doesn't have.
>
> That problem is unrelated to big.Little / EAS, also by definition that
> is not SMP seeing how the 'S' is a blatant lie.
>
> The simplest solution is to simply disallow usage of the extended ISA
> and force mandate the common subset. The complicated answer is something
> along the lines of:
>
> https://lkml.kernel.org/r/[email protected]

We don't encourage asymmetric ISA extensions for EAS*/CAS** on
big.Little systems.
It would be simply a nightmare to schedule tasks on such systems.

The exception to this is the 'asymmetric 32-bit Soc' to support 32bit
legacy Apps. The nightmare for scheduling is reduced in this case to CPU
affinity, something the task scheduler has to live with already today.
(+ DL admission control for 32bit tasks).

* Documentation/scheduler/sched-energy.rst
** Documentation/scheduler/sched-capacity.rst