V ničem - to můžete dělat už velmi dlouho: pomocí parametru isolcpus= vyjmete jedno nebo víc jader z poolu plánovače (aby tam nikdo nelezl) a pak tam nastavením afinity procesu konkrétní procesy pošlete (taskset(1)). Případně to jde celé dělat s cgroups.
Core Scheduling je o tom, že se to děje automaticky a zároveň bez brutálních ztrát výpočetního výkonu (nenechá se jádro ležet ladem). Že za vás něco (korektně) rozhodne, které procesy můžou být na stejném jádře (sdílet L1/L2), že něco automaticky cache vymete před nastěhováním jiného procesu, atd.
Pro jednu appku snad, ale takhle to chcete mít pro všechny procesy implicitně. Mě jde o to, že se řeší vypínání HT jako v OpenBSD (už před 2 lety) místo úpravy plánovače. IMHO 2 procesy na jedno jádře v SMT prostě logicky nemají co dělat, pokud k tomu není vyloženě důvod (hodně procesů a expertní znalost, že je to OK).
Před nějakou dobou jsem zkoušel Power! a ten měl 4 cestný SMT a taky tam mohly jen vlákna jednoho procesu. Ani se to nehlásilo jako u Intelu. Mě jenom překvapuje, že 2 roky se vypíná HT. Přitom mě fakt nenapadá, kde by mohl být problém, když umíme NUMA.
Opravdu by mě zajímalo, kde je/byl problém.