Как получить этот магический патч с 200 строчками для повышения производительности?


Ответы:


59

Обсуждение этого конкретного патча проходило в списке рассылки команды ядра Ubuntu:

https://lists.ubuntu.com/archives/kernel-team/2010-November/013498.html

Но позвольте мне более подробно рассказать о том, как любой патч может попасть в ядро ​​Ubuntu ...

Во-первых, предпочтительной политикой команды ядра Ubuntu является отправка исправлений и их принятие в апстриме перед тем, как они будут загружены в ядро ​​Ubuntu. Коллектив ядра Ubuntu требует больших усилий по обслуживанию, чтобы поддерживать патчи из дерева. Кроме того, если патч будет полезен всему сообществу ядра, он должен сначала выйти в апстрим.

Как только патч будет принят в апстрим, он в конечном итоге автоматически попадет в ядро ​​Ubuntu. При желании можно также сделать запрос на выборку или выборку , см. Страницу KernelPatches для получения дополнительной информации.

Если необходимо применить исправление как SRU ( обновление стабильного выпуска ) к предыдущему выпуску Ubuntu, лучше всего принять исправление в соответствующем вышестоящем стабильном дереве 2.6.xy. Как часть нашего обычного процесса ядра SRU, мы постоянно перебираемся на новейшее стабильное ядро ​​восходящего потока. Таким образом, мы снова получим патч автоматически.


4
Этот патч, скорее всего, будет в ядре v2.6.38, что означает, что он, скорее всего, будет в выпуске Natty. Мы узнаем лучше, когда патч появится в дереве Линуса.
Энди

1
@Andy: Обновление - хорошие новости: выпущенная вчера Ubuntu 11.04 Natty Narwhal содержит версию 2.6.38, в которой содержится патч.
Писквор

К сожалению, ссылка «Список рассылки команды ядра Ubuntu», кажется, устарела или неверна.
Greenonline

20

Я только что прочитал ветку lkml и надеюсь, что смогу предложить некоторую информацию - хотя не о том, чтобы добавить патч в Ubuntu. Как говорится в сообщении в связанном списке Ubuntu, оно, вероятно, будет в любом случае в 2.6.38.

Патч автоматически группирует процесс на основе TTY. Существует много дискуссий / споров в lkml, которые говорят, что это означает, что это не относится к типичному использованию настольных компьютеров - что это не имеет никакого значения для интерактивных приложений. Все тестовые примеры основаны на том, что «запускайте задачу с высокой нагрузкой на ЦП из терминала, а затем смотрите на реакцию другой задачи». Так, например, собираю ядро ​​и пытаюсь посмотреть видео.

Это не значит, что это нехорошо, но общие заголовки типа «чувствительность рабочего стола, улучшенная на порядок» могут вводить в заблуждение, если вы никогда не запускаете задачи с интенсивным использованием ЦП, связанные с TTY. Конечно, я могу ошибаться!

Было несколько упоминаний о способах достижения очень похожих результатов путем добавления в ваши bash-скрипты и разрешения всем пользователям создавать cgroups. Это будет работать только в том случае, если в современных ядрах Ubuntu включены cgroups. Соответствующие посты:

Очевидно, что это не отвечает на вопрос, но его можно использовать, чтобы определить, является ли патч настолько волшебным, насколько и ожидалось.


4
Я думаю, что больше людей должны понять это.
Родди

12

Как пользователи Ubuntu могут получить это способом, который поддерживается ?

Акцент мой. Единственный способ получить его поддерживаемым способом - подождать, пока Ubuntu загрузит его в ядро ​​Ubuntu. Поскольку в действительности это только делается в списке рассылки ядра, это свежо до такой степени, что все тестирование является довольно анекдотичным, и я предполагаю, что пройдет некоторое время, прежде чем он будет готов к массовому развертыванию.

Где-то между следующим выпуском и долгим временем будет мое необразованное предположение.


Но если вы большой мальчик (или девочка) и вы можете справиться с поломанным ядром, если что-то пойдет не так (то есть вы знаете, как использовать grub), вы можете установить и скомпилировать свое собственное ядро.

  1. Загрузите патч. Существуют разные версии, но лучшая сама была опубликована ниже другим пользователем: http://pavlinux.ru/krnl/sched_autogroup-2.6.36.patch.bz2

  2. Загрузите исходный код ядра для версии, на которую нацелен ваш патч. В этом случае 2.6.36. Вы можете получить исходные коды ядра vanilla (то есть оригинальные, не модифицированные командой ядра Ubuntu) с сайта kernel.org и распаковать его.

  3. Сохраните патч где-нибудь и примените его, cdвойдя в исходный каталог ядра и запустив: patch -p1 < /path/to/patch(вам нужен patchпакет для этого ... Который, я думаю, будет частью, build-essentialесли он не установлен по умолчанию)

  4. А затем продолжите с остальным «старомодным» процессом сборки ... Я действительно не стал бы беспокоиться о более новых методах, поскольку они нацелены на источники ядра, санкционированные Ubuntu / Debian ... Плюс старый способ кажется более простым ( мне).

Сборка ядер не сложна, но вы можете испортить ее, если отклонитесь от принятого пути. И вы не получите официальную поддержку, если что-то пойдет не так.


В качестве альтернативы появляется все больше и больше ядер со встроенным патчем (или, по крайней мере, в дереве исходных кодов, ожидающих следующего выпуска).

  • Я верю, что у Zen Kernel есть этот патч в их дереве, но я не уверен, есть ли он в каких-либо сборках.
  • Liquorix Ядро имеет это запеченный в настоящее время слишком.

Примечание: оба этих ядра (и, возможно, и другие) тоже несколько отличаются от Ubuntu. Вы можете обнаружить (как я сделал, когда переехал в Liquorix), что масштабирование частоты процессора перестает работать или прерывается приостановка. Обычно есть исправления и обходные пути, но есть вероятность, что вы не получите поддержки от AskUbuntu или остальной части сообщества Ubuntu, так как мы не можем проверить каждое ядро.


Кто-то где-то должен использовать этот патч в публичной ветке git. Слишком много новостей для меня нет, но мой гугл-фу меня подводит.
Карл Билефельдт

Ядро @Karl zen есть в их git tree.
Оли

Ликорикс применял это среди множества других патчей. Я бегу на нем сейчас, и это довольно мило. Одна из основных проблем для меня (и, вероятно, большинства других пользователей) заключается в том, что CPU_FREQ выглядит немного измотанным. Это застряло на производительности.
Оли

5

Вы можете использовать простой «взлом», опубликованный разработчиком RedHat в списке рассылки, который не требует исправления ядра, чтобы получить то же самое. Прочитайте об этом здесь: Альтернатива «200-строчковому патчу ядра, который делает чудеса», который вы можете использовать прямо сейчас


Пожалуйста, включите детали из ссылки, как если бы она стала нефункциональной, ваш ответ не поможет пользователям.
ζ--

1

По состоянию на 2011-01-18, Linux 2.6.38-rc1 содержит указанный патч.
Смотрите соответствующие новости Phoronix и пост Линуса .

С 2011-01-29 ежедневная сборка Natty Narwhal поставляется с Linux 2.6.38.

Итак, на данный момент есть два решения:


0

Я только что поднял эту дискуссию сейчас, и она очень интересная. Я написал небольшой пост в блоге о том, как включить патч cgroup в Ubuntu 10.10.

Я действительно не проверял, работает ли он или нет, поэтому обратная связь была бы отличной!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.