LINUX.ORG.RU

Патчи pf-kernel для Linux 4.12

 , , ,


3

5

Состоялся пятый выпуск pf-kernel для ядра Linux ветки 4.12.

pf-kernel — это набор не входящих в официальную ветку ядра патчей, которые повышают отзывчивость системы, а также вносят другие улучшения.

В эту версию входят:

  • планировщик процессов BFS от Кона Коливаса (Con Kolivas) с дополнениями VRQ v0.96e от Альфреда Чена (Alfred Chen) (поскольку MuQSS и -ck1 ещё не готовы);
  • реализация техники слияния одинаковых страниц памяти UKSM от Най Ся (Nai Xia);
  • патч от Graysky, расширяющий список процессоров для оптимизации ядра компилятором;
  • несколько специфических исправлений для устройств автора;
  • бекпорты из ветки 4.13 для корректной работы blk-mq;
  • дополнительные исправления для BFQ.

Планировщик ввода-вывода BFQ уже включён в основное ядро и больше не входит в состав pf-kernel. Обратите внимание, что он доступен, только если используется многопоточный вариант блочной подсистемы (blk-mq). Планировщики ввода-вывода при использовании blk-mq нельзя указывать через командную строку ядра в загрузчике. Вместо этого используйте правило udev, например:

ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/scheduler}="bfq"

Чтобы включить подсистему blk-mq, ядро нужно собрать с опцией CONFIG_SCSI_MQ_DEFAULT=y или передать параметр scsi_mod.use_blk_mq=1 из загрузчика.

Патч применяется к чистому ядру версии 4.12 без стабилизационных патчей. В него входит последняя стабильная версия ветки — 4.12.4.

Также доступны бинарные пакеты для Arch Linux (x86_64) без оптимизаций и с оптимизациями для процессоров Intel Silvermont и Skylake.

>>> Скачать патч

>>> Официальный сайт

★★★★★

Проверено: jollheef ()
Ответ на: комментарий от SuoiCat

Потому что в ядре есть универсальный CFS, который ни на что не нужно менять и который, в принципе, можно тоже правильно приготовить, если знать, где крутить.

С KSM то же самое (почти).

post-factum ★★★★★ ()
Последнее исправление: post-factum (всего исправлений: 1)
Ответ на: комментарий от post-factum

Допустим, так. Но ещё допустим, что я рядовой пользователь debian/ubuntu/mint, который хочет работать, а не пересобирать ядро, и был бы не против, если бы система была поотзывчивее и поэкономнее, чтобы работать было приятнее. В таком случае - полагаю - существует другая, более весомая причина, почему такую классную плюшку не внедрили в ядро.

SuoiCat ()

KMS
UKSM

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

anonymous ()
Ответ на: комментарий от SuoiCat

Весомая причина — эти фичи могут хорошо работать для большинства задач десктопа, но плохо/непредсказуемо для остальных задач, а дефолтное ядро должно быть универсальным

buddhist ★★★★★ ()
Ответ на: комментарий от post-factum

а сколько памяти высвобождает KMS/UKMS по сравнению с ядром без него? почему могут возникать одинаковые страницы у меня только два предположения: 1) что-то дико копирует память; 2) страницы полностью заполнены нулями. сколько процентов выигрыша получается: 10-20-30-...?

anonymous ()
Ответ на: комментарий от anonymous

Слиянию подвергаются целые страницы, поэтому тебе нужно знать, в каком месте страницы лежит ключ + содержимое остальных байт этой страницы. Не уверен, что это практически реализуемо.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от BratSinot

я уже посмотрел видео по ссылке. там китаец создаёт большое изображение в гимпе состоящее полностью из белых пикселей и показывает как сэкономилось 35 мегабайт, хотя и так понятно, что все те пиксели имеют одинаковое значение 0xFFFFFFFF. файрфокс вероятно память заранее выделяет, memory pool какой-нибудь или что-то такое, выделяет 200 мегабайт, но реально использует только 100 из них, остальное на потом и возможно временно забито нулями. если поскролить страничку или по ссылке перейти, количество сэкономленого не уменьшается?

но да, это скорее одинаковые виртуалочки запускать или что-нибудь такое

anonymous ()

Также доступны бинарные пакеты для Arch Linux (x86_64) без оптимизаций и с оптимизациями для процессоров Intel Silvermont и Skylake.

не работал ещё с OBS, это можно как-то подключить в виде репозитория?

h4tr3d ★★★★★ ()
Ответ на: комментарий от anonymous

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

Если ты находишься на уровне защиты, в котором ты можешь следить за ядром, то ты имеешь доступ к любым данным любых процессов. Что тебя так удивиляет?

diverter ()

Спасибо за то, что продолжаешь пилить! Всегда рекомендую именно pf-kernel всем, кто спрашивает про отзывчивость в линуксе.

Сам сейчас сижу на gentoo-sources с UKSM-патчем. Недавно ставил 4.12-pf3, но наткнулся на то, что у меня сломался скрипт, ограничивающий RAM для процессов (создаёт cgroup и запускает процесс с привязкой к ней). Разбираться было лень, поэтому забил. :)

spijet ()
Ответ на: комментарий от post-factum

Честно скажу, не знаю. Скрипт вот такой:

#!/bin/sh

## Script params:
CGROUP="$(basename $0)"
TASKFILE="/sys/fs/cgroup/memory/${CGROUP}/tasks"
MEM_MB="200"
PROGRAM="/usr/bin/${CGROUP}"

# First, create the cgroup (if it doesn't exist):
if ! [ -f "${TASKFILE}" ]; then
    sudo /usr/bin/cgcreate -a "${USER}:${USER}" -t "${USER}:${USER}" -g "memory,cpu:${CGROUP}"
    # Now, set memory limit:
    /usr/bin/cgset -r "memory.limit_in_bytes=$(( MEM_MB * 1024 * 1024 ))" "${CGROUP}"
fi

# Finally, call the executable:
/usr/bin/firejail --cgroup="${TASKFILE}" "${PROGRAM}" "$@"

spijet ()
Ответ на: комментарий от spijet

Похоже на v1. Ну, НЯЗ, v1 и v2 могут сосуществовать. Посмотри mount | grep cgroup и покажи ошибки со своего скрипта, желательно в отдельной теме.

post-factum ★★★★★ ()
Последнее исправление: post-factum (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

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

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

это всего лишь перебор одной страницы из четырёх килобайт. пока страница перебирается можно сделать дамп всей памяти: страница смержилась - есть в памяти, не смержилась - нет в памяти. потом посмотреть что смержилось. может там какие-нибудь пароли в открытом виде или куски конфигов. адреса, явки. этот KSM полностью ломает изоляцию процессов.

anonymous ()
Ответ на: комментарий от post-factum

1. выделяем 4к или другой размер страницы 2. смотрим сколько памяти выделено ядром (free) 3. записываем случайные данные 4. смотрим сколько памяти выделено ядром 5. если размер выделеного уменьшился (страница смержилась) - дампим её в файл 6. повторяем 1-5 7. получаем красивый дамп памяти в файлах 8. ??? 9. PROFIT

не?

anonymous ()
Ответ на: комментарий от anonymous

это всего лишь перебор одной страницы из четырёх килобайт.
...
этот KSM полностью ломает изоляцию процессов.

Ага. Нужно «всего лишь» 256^4096

bc                      
256^4096
14154610310449547890015530277449516013481307114723881672343857482723\
66634240845253596025356476648415075475872961656126492389808579544737\
84888193829625087319174392779354491301105016265127795702984696021178\
32429335212075454134849698568518511412885151632014829953890550974606\
22098635675003353929224278582935664416262572773308153277514346480313\
37198861262948148356243817892895886777785007219831617484125195559099\
66720186450936408508036796302203672013838448667914492847375182628131\
23083439037243678440420897139923778278952770312318778329004894547065\
48907759683539601715360317005037130201476244387270111137955448430971\
86623068837760104753484414936004919434790412719929201953319830649301\
06164727241438940877685164658948654886171641124473975626241632750150\
12665536998102129357006604230548248604088316563586283572863704605835\
24037560857456912394738978919990859763452037046599671574272395358365\
07133656908815246080139195569461072006301590372954830738644391138016\
06534413113120760426405389744082890466204718323437754742728769194174\
15359465108829909044778631854737985283880604575689279436339239288726\
81927502029572963130840854853739937076881035646179383055483433876051\
40203761442474890296901815918651981105154536796710376718281970913547\
90191316833093307973744081973398315272390407159081122130951267707176\
06001288898889370710896248862361503869205214536908258196921765593065\
32539283633214259441113460347550936602814569030635060185929526129626\
33310186822763175677495345710587722355676795569202407891090705212539\
87131031263902293034744367356932509952188828475362311316445284228640\
48942180926373842363093124302491458786392813471918610416466060535600\
15919627786463782954136597707826469792362890626164424180715710392825\
51289348848274522893059561717860194034698241804887531275078109603637\
16049590757999536641963641702892757339167058079681852607422609501437\
51894385792160716775407660856056041061230366696674346777234726755644\
58991671268414100801031453917736665947284956674884035306621286465183\
79869385259980332461986518185624442207923368729450853640852108741887\
39084982027105970804744802498188580114909305185127137988036291016387\
16278578874145214429026186276602289012484526830076647356828764878327\
Слишком большое сообщение

комбинаций перебрать. Делов-то!

anonymous ()
Ответ на: комментарий от anonymous

ну знаешь, оно всегда так, слишком сложно, на практике не реализуемо, мою домашнюю работу съела собака, а потом ты отправляешь 300 долларов в биткоинах чтобы вирус-вымогатель расшифровал твой жёсткий диск.

anonymous ()
Ответ на: комментарий от anonymous

ну знаешь, оно всегда так, слишком сложно, на практике не реализуемо, мою домашнюю работу съела собака,

Что «всегда так»? Что аноним опять не сумел нормально вбросить и теперь с умным видом несет *ерню? Coгласен. Анонимный разоблачитель себе хоть порядок цифр представляет? 256^4096 ~ под десять тыщ циферок в десятичной системе.

anonymous ()

Как реально увидеть профит от UKSM используя только его же данные из /sys/kernel/mm/uksm/ ? И каков смысл из увиденных чисел? Ну реально не могу понять используя 8 ГБ оперативы на ядре 4.12 и с дедублицированными 32 МБ, в среднем, за несколько недель без перезагрузки десктопа (Веб, почты, консоли, редакторы текста и графики, виртуалки, кино, музыка).

fidaj ()