Поиск по сайту:
Когда человек мыслит, он сомневается, но он уверен, когда действует (А. Франс).

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

06.11.2024
Несколько российских разработчиков удалены из ядра 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, а предназначался для более надёжного пути «ленивого» вытеснения.

Читать  ReShade 5.3.0 предлагает улучшенную производительность в DX12 и OpenGL

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

 

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Fedora Atomic Desktops теперь по умолчанию поддерживает обновления загрузчика в…

Спасибо!

Теперь редакторы в курсе.