Как получить этот магический патч с 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.

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

stefanlsd
источник