Нова корекция за планировчика на ядрото на Linux, насочена към проблеми с Cache Aware Load Scheduling на хибридни процесори, беше пусната като част от тестовата версия на Linux 7.3-rc2. Актуализацията отстранява несъответствия в производителността, които могат да възникнат, когато задачите се присвояват на по-малки ядра в системи с ядра с голям и малък размер.
Cache Aware Scheduling е функция на ядрото, предназначена да подобри производителността чрез групиране на свързани задачи на процесорни ядра, споделящи една и съща последна кеш памет (LLC), намалявайки латентността и избягвайки отскачане на кеша. Въпреки това, инженерът на Intel Тим Чен откри, че при хибридните процесори това планиране понякога може да доведе до присвояване на задачи на по-малко мощните 'little' ядра, създавайки пречка за производителността.
Според Чен, „Cache-aware load balancing пристрастява задачите към предпочитаната от тях LLC. В асиметрични системи с процесорна мощност (например big.LITTLE) целевата LLC може да съдържа процесори, които са твърде малки, за да изпълнят задачата. Преместването на задачата там я превръща в неподходяща, заменяйки печалбата от кеш локалността със загуба на капацитет, която е по-вредна за производителността.“
Корекцията, внедрена от Чен, включва две проверки: `can_migrate_llc_task()`, която предотвратява миграцията към целеви процесор, ако задачата няма да се побере, и `alb_break_llc()`, която предотвратява прехвърлянето на задачи към неподходящи процесори по време на активно балансиране. Тези проверки се прилагат специално към хибридни процесори, оставяйки симетричните системи незасегнати. Задачите, които вече не се побират в текущия си процесор, се обработват от съществуващата LLC политика, а неподходящите задачи се приоритизират по време на балансирането на натоварването.
Прочетете оригиналното отразяване
💬 Коментари
📜 Правила за коментари