[ADL] ITBM support for Hybrid platforms (out-of-tree)

Bug #1943549 reported by Chao Qin
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
intel
New
Undecided
Unassigned
Lookout-canyon-series
Fix Released
Undecided
Philip Cox

Bug Description

Description
Need ITBM support for Hybrid platforms. Need to change the scheduling order from Core, HT, ATOM to Core, ATOM, HT.

When using ITBM on systems that has a mixture of CPUs supporting Hyper-Threading and others not supporting it (even offlining HT siblings may cause the issue to be reproducible). Hybrid topologies meet the aforementioned condition. In such cases, threads will be consolidated on CPUs of high priority using got HT siblings, while CPUs of medium priority will remain idle.

Support is not only for hybrid but for any system that has

Hardware: AlderLake

Target Release: 21.04
Target Kernel: TBD

External links:
https://github.com/intel/linux-intel-quilt/tree/mainline-tracking-v5.13-yocto-210727T062416Z

X-HWE-Bug: Bug #1952007

Revision history for this message
Chao Qin (chaoqin) wrote :

Please find the following patches in the above external link

0001-x86-sched-Decrease-further-the-priorities-of-SMT-sibl.itmt
0002-sched-topology-Introduce-sched_group-flags.itmt
0003-sched-fair-Optimize-checking-for-group_asym_packing.itmt
0004-sched-fair-Provide-update_sg_lb_stats-with-sched-doma.itmt
0005-sched-fair-Carve-out-logic-to-mark-a-group-for-asymme.itmt
0006-sched-fair-Consider-SMT-in-ASYM_PACKING-load-balance.itmt
0007-sched-fair-Check-asym_packing-priority-on-the-wakeup-.itmt

Changed in intel:
assignee: nobody → Alex Hung (alexhung)
Changed in intel:
assignee: Alex Hung (alexhung) → nobody
Alex Hung (alexhung)
summary: - [ADL] ITBM support for Hybrid platforms (out-of-tree))
+ [ADL] ITBM support for Hybrid platforms (out-of-tree)
Revision history for this message
Chao Qin (chaoqin) wrote :

0001-x86-sched-Decrease-further-the-priorities-of-SMT-sibl.itmt --> 183b8ec38f1ec6c1f8419375303bf1d09a2b8369
0002-sched-topology-Introduce-sched_group-flags.itmt --> 16d364ba6ef2aa59b409df70682770f3ed23f7c0
0003-sched-fair-Optimize-checking-for-group_asym_packing.itmt --> 6025643596895695956c27119c6b0bfa40d8035b
0004-sched-fair-Provide-update_sg_lb_stats-with-sched-doma.itmt --> c0d14b57fe0c11b65ce8a1a4a58a48f3f324ca0f
0005-sched-fair-Carve-out-logic-to-mark-a-group-for-asymme.itmt --> aafc917a3c31dcc76cb0279cd7617dda11b15f2a
0006-sched-fair-Consider-SMT-in-ASYM_PACKING-load-balance.itmt --> 4006a72bdd93b1ffedc2bd8646dee18c822a2c26
0007-sched-fair-Check-asym_packing-priority-on-the-wakeup-.itmt --> drop it

Revision history for this message
Alex Hung (alexhung) wrote :

A test kernel based on Ubuntu-intel-5.13-5.13.0-1008.8 with the following four patches is available @ https://people.canonical.com/~alexhung/LP1943549/

Alex Hung (alexhung)
description: updated
Revision history for this message
Alex Hung (alexhung) wrote :

@chaoqin,

I pushed the patches to https://code.launchpad.net/~alexhung/+git/focal/+ref/iotg-adl/1943549 with comments above.

Please have a look and keep me posted if there are improvements or fixes to be made

Ana Lasprilla (anamlt)
information type: Private → Public
Changed in intel:
assignee: nobody → Sachin Mokashi (sachinmokashi)
Revision history for this message
Sachin Mokashi (sachinmokashi) wrote :

Regarding the testcases for Hybrid scheduling, we run the following workloads for ADL-S/P:
1. Geekbench
2. Speedometer
3. Netperf
4. SpecInt
5. OpenVino (benchmark app) with Resnet50

All of these are standard Linux applications, hence you can use them for your testing.

We have used Geekbench extensively for this purpose. The sample command which we have used is:
./geekbench_x86_64 --no-upload --multi-core --cpu-workers <no of cores to be used> --iterations <no of iteration>

Strategy:
For ADL-S 881 SKU, we have 8 big cores and 8 atom config, where we have started geekbench for first 8 cores and observed the work distribution among multiple threads, we can use top or turbostat for this analysis. Second experiment is to execute geekbench with 16 cores(cpu workers) and then third experiment with 24 cores.

We can also manually disable and enable cores just to make sure if the results are same as the geekbench’s internal core pinning.

WARNING: When running on sensitive (e.g., pre-release or otherwise confidential)
platforms, always keep the system unplugged from the internet. Do not trust a
command line feature to protect sensitive information, as it introduces
more opportunity for human error or a benchmark bug to cause a leak.

Changed in intel:
assignee: Sachin Mokashi (sachinmokashi) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.