Validation failed

2019-09-18 Пенетрантность Debian Webmaster
*** Errors validating /srv/www.debian.org/www/intro/cn.ru.html: ***
Line 204, character 88:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 205, character 7:  end tag for "FORM" which is not finished
Line 207, character 97:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 208, character 7:  end tag for "FORM" which is not finished
Line 210, character 134:  document type does not allow element "INPUT"
here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6",
"PRE", "DIV", "ADDRESS" start-tag
Line 211, character 7:  end tag for "FORM" which is not finished
Line 213, character 63:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 214, character 7:  end tag for "FORM" which is not finished
Line 216, character 56:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 217, character 7:  end tag for "FORM" which is not finished
Line 219, character 51:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 220, character 7:  end tag for "FORM" which is not finished
Line 222, character 54:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 223, character 7:  end tag for "FORM" which is not finished
Line 225, character 112:  document type does not allow element "INPUT"
here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6",
"PRE", "DIV", "ADDRESS" start-tag
Line 226, character 7:  end tag for "FORM" which is not finished
Line 228, character 56:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 229, character 7:  end tag for "FORM" which is not finished
Line 231, character 62:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 232, character 7:  end tag for "FORM" which is not finished
Line 234, character 57:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 235, character 7:  end tag for "FORM" which is not finished
Line 237, character 102:  document type does not allow element "INPUT"
here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6",
"PRE", "DIV", "ADDRESS" start-tag
Line 238, character 7:  end tag for "FORM" which is not finished
Line 240, character 65:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 241, character 7:  end tag for "FORM" which is not finished
Line 243, character 56:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 244, character 7:  end tag for "FORM" which is not finished
Line 246, character 112:  document type does not allow element "INPUT"
here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6",
"PRE", "DIV", "ADDRESS" start-tag
Line 247, character 7:  end tag for "FORM" which is not finished
Line 249, character 57:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 250, character 7:  end tag for "FORM" which is not finished
Line 252, character 61:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 253, character 7:  end tag for "FORM" which is not finished
Line 255, character 58:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 256, character 7:  end tag for "FORM" which is not finished
Line 258, character 92:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 259, character 7:  end tag for "FORM" which is not finished
Line 261, character 86:  document type does not allow element "INPUT" here;
missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE",
"DIV", "ADDRESS" start-tag
Line 262, character 7:  end tag for "FORM" which is 

Re: Соотнесение процесса и поля QoS

2019-09-18 Пенетрантность Dmitry Alexandrov
Dmitry Alexandrov <321...@gmail.com> wrote:
> Pavel Volkov  wrote:
>> Чтобы systemd использовал и монтировал вторые, надо добавить аргумент ядру: 
>> systemd.unified_cgroup_hierarchy=1
>
> Ну да, «unified» — это как раз для первых и вторых разом.

Ай, невнятно написал.  В смысле, каталог unified в /sys/fs/cgroup/ будет 
существовать только если к-группы используются гибридно.  Короче, не обращайте 
внимание на это предложение.


signature.asc
Description: PGP signature


Re: Соотнесение процесса и поля QoS

2019-09-18 Пенетрантность Dmitry Alexandrov
Pavel Volkov  wrote:
> On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote:
>> Но есть и одно большое но: Систем-д.  Он предъявляет монопольное право на 
>> распоряжение к-группами.  Оно и на первые предъявлял, просто net_cls от него 
>> был свободен.  А ко вторым, как вы знаете, все контроллеры слили в один, так 
>> что вот так по-простому: ...уже не сделаешь.
>
> И ещё я не учёл 1 обстоятельство. Конечно же, так можно сделать.

Ну да, воспользовавшись первыми. ;-)

> Ядро позволяет оставить контроллеры cpuset cpu io memory pids в единой 
> иехархии cgroups v2, а net_cls смонтировать отдельно как cgroups v1.
>
> # mount -t cgroup -o net_cls,net_prio cgroup /mnt/cgroup_v1/

> Единственное неудобство, что не получилось создать точку монтирования в /sys.

А вот это интересно!  Я бы даже не сказал пока, что это неудобство.  Спасибо за 
идею: когда первые к-группы решат таки выкинуть из умолчаний, надо будет взять 
на вооружение.


signature.asc
Description: PGP signature


Re: Соотнесение процесса и поля QoS

2019-09-18 Пенетрантность Dmitry Alexandrov
Pavel Volkov  wrote:
> On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote:
>>> Попробую изучить cgroup-ы, а это свойство есть и в v1, и в v2?
>> Нет, это в первых.  А в Дебиан уже по-умолчанию вторые завезли?
>
> Да, есть и первые, и вторые.

А, ну тогда пока все в порядке.

> Чтобы systemd использовал и монтировал вторые, надо добавить аргумент ядру: 
> systemd.unified_cgroup_hierarchy=1

Ну да, «unified» — это как раз для первых и вторых разом.

>> Тогда там само-то по себе все еще удобнее: возиться вручную с цифирью (а 
>> classid это число), если надо много разных классов создавать, уже не надо, 
>> можно буквами писать.
>>
>> Но есть и одно большое но: Систем-д.  Он предъявляет монопольное право на 
>> распоряжение к-группами.  Оно и на первые предъявлял, просто net_cls от него 
>> был свободен.  А ко вторым, как вы знаете, все контроллеры слили в один, так 
>> что вот так по-простому: ...уже не сделаешь.  Надо какой-то огород городить, 
>> чтобы при логине создавалось по своему ‘inet’у на каждого пользователя, 
>> причем вместе с отдельными правилами для Нетфильтра (хотя по делу они нафиг 
>> и не нужны).
>>
>
> Я предполагаю делать так: $ systemd-run --user --scope --unit=inet.scope 
> my_program

Не так.  Ибо так при запуске следующей программы будет:

$ systemd-run --user --scope --unit=inet iceweasel
Failed to start transient scope unit: Unit inet.scope already exists.

«inet» и прочие именные к-группы для Систем-д должны быть slice’ами, а не 
scope’ами, то есть либо:

$ systemd-run --user --slice=inet --scope iceweasel

либо уж службой (ключи подобрать по вкусу):

$ systemd-run --user --slice=inet --collect iceweasel

$ systemd-run --user --slice=inet --pty --same-dir --wait --collect 
--service-type=exec bash

В любом случае без побочек не обойтись.  Так, для logind они больше не будут 
частью сессии, например.

> При этом запускается my_program, и она засовывается в новую c-группу 
> inet.scope, которая является подгруппой user@1000.service.  И даже не нужны 
> рут-права, и файлы от этой группы в /sys/fs/ тоже принадлежат пользователю.

Ну как же не нужны, когда Нетфильтр управляется только им (и в этом весь его 
смысл)?

> Далее я бы хотел добавить примерно такое правило в nftables: # nft add rule 
> filter output meta cgroup <...> ip dscp set <...>
>
> Но не пойму, как определить числовой идентификатор группы, который тут 
> требуется. systemd-cgls его не сообщает, а и в /sys/fs/cgroup тоже его нет.

Вот-вот, в этом и затык, я же говорю: нету теперь его.

Если с первыми к-группами без Систем-д достаточно было один раз при запуске 
системы общие правила для Нетфильтра подгрузить, то со вторыми под Систем-д 
придется для каждого пользователя отдельные заводить, причем не раньше чем этот 
пользователь залогинится.

А как соберется разлогинится — желательно бы удалять, хотя баг, когда иначе при 
следующей правке правил Нетфильтр выплюнул бы невнятную ошибку [1], вроде бы 
исправили.

[1] https://bugzilla.kernel.org/show_bug.cgi?id=201789

Pavel Volkov  wrote:
> On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote:
>> # echo 1 > /sys/fs/cgroup/net_cls/inet/net_cls.classid
>> # iptables -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT
>> # ip6tables -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT
>
> А, стормозил, classid — это и есть ID группы в терминах нетфильтра.  Придётся 
> воспользоваться cgroups первой версии тогда. Не люблю их за изобилие точек 
> монтирования.

Да, как видите,  лучше бы их за это как раз любили. :-)  Ибо гибкость — большое 
благо.  Причем они ведь достаточно были гибкими, чтобы если уж так кому 
хочется, то подмонтировать их все разом в такой же unified каталог, но нет: 
право выбора надо было выпилить.


signature.asc
Description: PGP signature


Re: Соотнесение процесса и поля QoS

2019-09-18 Пенетрантность Pavel Volkov

On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote:
Но есть и одно большое но: Систем-д.  Он предъявляет 
монопольное право на распоряжение к-группами.  Оно и на первые 
предъявлял, просто net_cls от него был свободен.  А ко вторым, 
как вы знаете, все контроллеры слили в один, так что вот так 
по-простому:

...уже не сделаешь.


И ещё я не учёл 1 обстоятельство. Конечно же, так можно сделать.
Ядро позволяет оставить контроллеры cpuset cpu io memory pids в единой 
иехархии cgroups v2, а net_cls смонтировать отдельно как cgroups v1.


# mount -t cgroup -o net_cls,net_prio cgroup /mnt/cgroup_v1/
# mount | grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 
(rw,nosuid,nodev,noexec,relatime,nsdelegate)

cgroup on /mnt/cgroup_v1 type cgroup (rw,relatime,net_cls,net_prio)

# ls -1 /sys/fs/cgroup/
cgroup.controllers
cgroup.max.depth
cgroup.max.descendants
cgroup.procs
cgroup.stat
cgroup.subtree_control
cgroup.threads
cpuset.cpus.effective
cpuset.mems.effective
init.scope
system.slice
user.slice

# ls -1 /mnt/cgroup_v1/
cgroup.clone_children
cgroup.procs
cgroup.sane_behavior
net_cls.classid
net_prio.ifpriomap
net_prio.prioidx
notify_on_release
release_agent
tasks

Единственное неудобство, что не получилось создать точку монтирования в 
/sys.