ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Ленивое вытеснение «PREEMPT_LAZY» появится в Linux 6.13

Несколько российских разработчиков удалены из ядра Linux из-за проблем с соответствием требованиям

Ещё одна захватывающая функция, которая, как ожидается, будет добавлена в предстоящий цикл Linux 6.13, — это модель отложенного вытеснения.

Патчи для внедрения режима «ленивого вытеснения» PREEMPT_LAZY были вчера добавлены в ветку «sched/core» Git в tip/tip.git. Поскольку патчи для «ленивого вытеснения» проходят проверку в ветке TIP, они должны быть представлены для слияния в Linux 6.13, которое откроется в конце этого месяца.

Ленивое вытеснение «PREEMPT_LAZY» появится в Linux 6.13

 

Разработчик Linux Питер Зейлстра объясняет в патче, добавляющем модель отложенного вытеснения:

“sched: добавить модель отложенного вытеснения

Измените функцию fair на resched_curr_lazy(), которая при выборе модели отложенного вытеснения устанавливает TIF_NEED_RESCHED_LAZY.

Этот бит LAZY будет преобразован в полный бит NEED_RESCHED при тике. Таким образом, средняя задержка между установкой LAZY и фактической перепланировкой составит TICK_NSEC/2.

Короче говоря, отложенное вытеснение будет задерживать вытеснение для справедливого класса, но будет работать как полное вытеснение для всех остальных классов, особенно для классов реального времени (RR/FIFO/DEADLINE).

Цель состоит в том, чтобы сократить разрыв в производительности с помощью Voluntary, чтобы в конечном итоге мы могли полностью отказаться от этой опции.

 

Опция Kconfig для включения этой новой опции — PREEMPT_LAZY. Текст Kconfig PREEMPT_LAZY описывает этот новый режим вытеснения следующим образом:

«Эта опция обеспечивает модель вытеснения, управляемую планировщиком, которая по своей сути аналогична полному вытеснению, но с меньшей вероятностью вытесняет задачи SCHED_NORMAL в попытке уменьшить вытеснение задач, удерживающих блокировку, и восстановить часть прироста производительности, наблюдаемого при использовании добровольного вытеснения.»

Когда Питер отправлял патч в список рассылки, у него также был патч, представляющий режим «ленивого» вытеснения, но он не был включён в sched/core, а предназначался для более надёжного пути «ленивого» вытеснения.

Ленивое вытеснение «PREEMPT_LAZY» появится в Linux 6.13

 

Патчи позволяют включить PREEMPT_LAZY для архитектур x86/x86_64 и RISC-V. Это дополнение PREEMPT_LAZY появилось всего через один выпуск ядра после того, как PREEMPT_RT в реальном времени наконец-то стало основной функцией в Linux 6.12.

Exit mobile version