LINUX.ORG.RU

Контрольные группы и pf-kernel.

 , ,


0

2

$ sudo cast post-factum

По мотивам нашего недавнего разговора.

❯ uname -a
Linux orages 4.12.0-pf5 #2 SMP PREEMPT Mon Aug 7 01:01:07 +08 2017 x86_64 Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz GenuineIntel GNU/Linux

~
❯ mount | grep cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)

Конфиг ядра здесь.

Вот такой вывод получаю, когда пробую запустить свой скрипт (в качестве примера взял Telegram):

❯ bash -x ~/bin/telegram                             
++ basename /home/spijet/bin/telegram
+ CGROUP=telegram
+ TASKFILE=/sys/fs/cgroup/memory/telegram/tasks
+ MEM_MB=200
+ PROGRAM=/usr/bin/telegram-desktop
+ PRIVATE_DIR=/home/spijet/.cache/firejail-private/telegram
+ '[' -f /sys/fs/cgroup/memory/telegram/tasks ']'
+ sudo /usr/bin/cgcreate -a spijet:spijet -t spijet:spijet -g memory,cpu:telegram
/usr/bin/cgcreate: can't create cgroup telegram: Cgroup one of the needed subsystems is not mounted
+ /usr/bin/cgset -r memory.limit_in_bytes=209715200 telegram
+ /usr/bin/firejail --cgroup=/sys/fs/cgroup/memory/telegram/tasks /usr/bin/telegram-desktop
Error: invalid cgroup

/usr/bin/cgcreate — часть пакета libcg, который, судя по SourceForge, давно не обновлялся. Почитаю больше про CGroups v2 и попробую переработать скрипт.

★★★

А, погоди.

VRQ, планировщик CPU, который в 4.12-pfX, не поддерживает CPU controller в cgroups. MuQSS, который был в 4.11-pfX, его тоже, в принципе, не поддерживает, но там есть хотя бы заглушка, которая ничего не делает по сути.

Поэтому, я бы посоветовал убрать CPU controller и назначить обычный приоритет вместо него.

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

Тьфу ты, я — дурак. Убрал cpu, и всё заработало. Спасибо!

Раз уж тему создал, ещё пару вопросов задам, если ты не против. :)

  1. Как я понимаю, MuQSS нет в 4.12, потому что Коливас его ещё не портировал для 4.12? Если он его выпустит — в pf-kernel снова будет MuQSS вместо BFS+VRQ?
  2. Что из себя вообще представляет VRQ? Это какой-то новый планировщик, или просто модуль (набор настроек?) для BFS? По ссылкам с твоего сайта попал на блог Чена, но там только чейнджлоги, а поста с общим описанием VRQ не нашёл.
spijet ★★★
() автор топика
Последнее исправление: spijet (всего исправлений: 1)
Ответ на: комментарий от spijet
  1. Да. Да (если Коливас пофиксит баг с affinity, который я ему зарепортил).
  2. Это форк BFS. Чен взял кодовую базу BFS и перепиливает его по-своему. ЕМНИП, полного документа о текущем состоянии нет, нужно брать блог и читать изменения. В принципе, начальная идея дана здесь, но с тех пор много чего менялось. Вкратце — идея в грамотной организации локов вокруг runqueue, чтобы было меньше contention'ов. Но потом он много чего впилил в саму логику планирования для учёта SMT и прочей херни.
post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Ещё раз спасибо за помощь и ответы. :)

В качестве приятного дополнения, на pf-kernel у меня заработало энергосбережение для iwlwifi и упало потребление энергии до 3.5Вт в простое (с подсветкой на 50% и двумя запущенными огнелисами, до этого было 5-7) и 7.8Вт при неактивном использовании (против 8-10).

Тему помечаю как решённую.

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

4.12.0-pf5

попробовал добавить инкрементный патч до 4.12.5, не помогло. Стоковые ядра не пользую, щас подумалось, может убрать BFQ и выставить deadline к примеру для проверки.

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

Пару раз натыкался на такое на gentoo-sources — при пробуждении темнота на экране, подсветка отключена, нет реакции на клавиатуру/тачпад и SSH. На этом ядре пока не ловил.

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

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

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

тут не так проявляется, я успеваю пароль от блокировщика ввести, рабочий стол появляется, на индикаторе загрузки процессора видно что кто-то жрал процессор и все, курсор не двигается, клавиатура не работает

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

3.5Вт в простое и 7.8Вт при неактивном использовании

Это что за лаптоп? o-o

энергосбережение для iwlwifi

Расскажи подробнее — которое из?

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

Lenovo U330p (версия с Core i3-4010U и SSD).

Расскажи подробнее — которое из?

То, которое включает TLP. До этого там было как-то так (реконструкция по памяти):

+++ Wireless
bluetooth = off (software)
wifi      = on
wwan      = none (no device)

hci0(btusb)                   : bluetooth, not connected
wlp2s0(iwlwifi)               : wifi, connected, power management = unknown

Теперь вместо unknown там on.

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

пока наблюдаю - отключил UKSM (вобще дупликацию выключил) и BFQ

Скажи, а откуда в твоем git репозитарии так много merge conflict берется каждый раз?

irton ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.