Инго Молнар представил запланированные изменения для ядра Linux 6.0, которое в настоящее время находится в стадии разработки. Большинство из нас ожидало, что версия будет называться 5.20, однако при объявлении о выпуске Linux Kernel 5.19 Линукс Торвальдс заявил, что он начинает беспокоиться о том, что снова запутается из-за больших чисел, и решил назвать следующую версию 6.0. Инго Молнар также назвал новую версию 6.0.

Улучшения балансировки нагрузки

Обновления планировщика ядра для Linux Kernel 6.0 в основном сосредоточены на балансировке нагрузки. Одним из них является балансировка NUMA в системах AMD Zen для аффинных рабочих нагрузок, которая связана с патчем от AMD для дальнейшей настройки планировщика ядра Linux вокруг дисбаланса NUMA в функции «find_idlest_group».

Еще одно изменение планировщика под руководством Intel направлено на более эффективный поиск бездействующих процессоров при большой нагрузке на систему. Некоторые другие изменения включают улучшения обработки ЦП с уменьшенной мощностью при балансировке нагрузки, планировании ядра, балансировке пробуждения, модели энергопотребления и других оптимизациях и исправлениях. Окно слияния Linux Kernel 6.0 все еще открыто, и вы можете просмотреть представленные изменения планировщика в запросе на вытягивание .

Улучшения балансировки нагрузки:

  • Улучшите балансировку NUMA в системах AMD Zen для аффинных рабочих нагрузок.
  • Улучшите обработку ЦП с уменьшенной мощностью при балансировке нагрузки.
  • Усовершенствования модели энергопотребления: исправление и уточнение всех показателей справедливого энергопотребления (PELT) и удаление консервативного порога, требующего 6%-ной экономии энергии для переноса задачи. Это повышает эффективность энергопотребления для большинства рабочих нагрузок, а также повышает надежность планирования энергоэффективности.
  • Оптимизируйте/настройте select_idle_cpu(), чтобы тратить (намного) меньше времени на поиск простаивающего процессора в перегруженных системах. Есть отчеты о нескольких миллисекундах, потраченных на большие системы с большими рабочими нагрузками.
  • Улучшено поведение дисбаланса NUMA. В некоторых системах с резервной емкостью начальное размещение задач недетерминировано, и такой искусственный дисбаланс размещения может сохраняться в течение длительного времени, снижая (а иногда и помогая) производительность.
  • Улучшите планирование ядра, исправив ошибку в sched_core_update_cookie(), которая приводила к ненужному принудительному бездействию.
  • Улучшите балансировку пробуждения, разрешив пробуждение бездействующих ЦП с помощью одного и того же LLC для вновь запущенных задач.
  • Исправлена ​​новая ошибка балансировки бездействия, приводившая к ненужным задержкам пробуждения.

Улучшения/исправления ABI:

  • Не проверяйте возможности и не выдавайте сообщения об отказе в проверке возможностей, если системный вызов планировщика не требует привилегий.
  • Также добавьте учет принудительного бездействия в cgroups.
  • Исправьте/улучшите RSEQ ABI, чтобы он не просто молча принимал неизвестные флаги.
  • Отмените (неиспользуемые) флаги RSEQ_CS_FLAG_NO_RESTART_ON_*.

Оптимизации:

  • Оптимизация и упрощение leaf_cfs_rq_list()
  • Микрооптимизируйте set_nr_{and_not,if}_polling() с помощью try_cmpxchg().

Разные исправления и очистки:

  • Исправьте самотестирование RSEQ в системах RISC-V и Glibc 2.35.
  • Исправьте ошибку полного NOHZ, которая в некоторых случаях может привести к тому, что галочка не будет повторно включена, когда последняя задача SCHED_RT исчезнет из очереди выполнения, но все еще есть задачи SCHED_OTHER.
  • Различные исправления, связанные с PREEMPT_RT.
  • Различные очистки и мелкие исправления.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.