> они были до введения Cache Aware Scheduling пару недель назад
> НЕ было. Так ясно?
> Нет, не ясно. Чего именно не было?:/ Поток перепрыгивает с ядра на ядро не по причине "планировщик неоправданно переключить ядро", как в начальном вопросе:
> венда выполняет совершенно ненужные перекидывания потоков с ядра на ядро
А по причине того, что ядро освобождается, и ищет работу. Оно находит работу в очереди у другого ядра (если повезёт - в той же ноде или ноде с теми же характеристиками). Оно обрабатывает её, вместо простоя. Где ненужность?
> "Не по этой" -- это не по какой?
Не по тобою же обозначенной в первом же твоём сообщении (и статье).
> венда выполняет совершенно ненужные перекидывания потоков с ядра на ядро
> Windows loves to balance the CPU load across multiple CPU cores, moving threads from busy cores to idle ones. This is normal, expected behavior for a modern SMP-aware process scheduler, but Windows is actually pretty dumb about it.
А реальная лажа в статье в утверждениях:
> Furthermore, the Windows process scheduler makes no distinction whatsoever between physical and virtual cores, nor between CCXes with their separate caches.
Планировщик Windows знает про HT. Про CCX я не знаю, ничего утверждать не буду.
> the Windows scheduler is not SMT aware—only the Windows core-parking algorithm is SMT aware.
Планировщик Windows тоже знает про SMT.
> Linux handles this rather better: it actively prefers to keep threads on the same core for as long as there are no scheduling conflicts on that core.
Планировщик Windows тоже предпочитает оставлять потоки на последнем ядре выполнения. Но может и сменить.