( XMI | 2025. 11. 17., h – 00:01 )

Ez alapvetően ugyanoda vezet vissza, ahonnan kezdtem az érvelést: https://hup.hu/comment/3233615#comment-3233615

Ahhoz, hogy az utasításmix, mint bemenő paraméter értelmesen használható legyen ütemezési döntésre, először el kell jutni oda, hogy az utasítás a processzoron valahogy lefutott, és nem szállt el illegal instruction trap-pel az egész thread. (Vagy a másik eset, ha a thread éppen megnézte CPUID-vel, hogy támogatott-e az adott utasítás és azt látta az adott magon, hogy nem, akkor meg se próbálja azt a code-path-t futtatni, így az utasításmixben sosem fog feltűnni, hogy amúgy akár használhatta is volna.)

Ehhez az E és P core-oknak azonos ISA-t kell támogatniuk. Legfejlebb az E-coreban valami nagyon minimál-kiépítésben, lassan, nem optimálisan, de funkcionálisan működö módon kell meglennie a P core legbővebb utasításkészletének. Utána jelezhet a thread director, hogy a perf counterek alapján ez a thread jobb helyen lenne egy P core-on. Ad absurdum, az is előfordulhat (elég könnyen), hogy egyszerre több AVX512-t használó thread fut, mint ahány P core van, ilyenkor még mindig jobb, ha valamelyik E core-ra kiszorulva lassabban tud futni, mintha teljesen várnia kéne, mert nincs P core szabadon (merthogy latency is van, az ütemezőnek ezt is próbálnia kell minimalizálni). Ilyenkor lehetne dönteni a számok alapján, hogy melyik threadben volt a legnagyobb aránya a vektoros utasításoknak, és a kernel ez alapján prioritzálhatja, hogy kié legyen a P-core.