ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] systemd: altlinux-udev-settle.service
@ 2014-07-11  2:18 Денис Смирнов
  2014-07-11  8:47 ` Anton Farygin
  2014-07-29 15:15 ` Alexey Shabalin
  0 siblings, 2 replies; 8+ messages in thread
From: Денис Смирнов @ 2014-07-11  2:18 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 823 bytes --]

Один из самых долгих при загрузке сервисов у systemd, да еще и
присутствующий на ранней стадии загрузки (соответственно многие сервисы не
начинают стартовать, пока он не отработал) это altlinux-udev-settle

Как выяснилось, нужен он ровно в двух случаях:
1. Для LVM, если в lvm.conf не установлена опция use_lvmetad = 1
2. Ради сохранения dmesg в /var/log (altlinux-save-dmesg.service)

Это, конечно, круто, но все же ради куска лога в /var/log тормозить
загрузку на существенное время.

Главная засада в том, что от altlinux-save-dmesg.service у нас зависит
basic.target -- т.е. запуск практически всех сервисов откладывается до
выполнения udevsettle.

Предлагаю зависимость на altlinux-save-dmesg переместить в
default.target.wants из basic.target.wants.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-11  2:18 [devel] systemd: altlinux-udev-settle.service Денис Смирнов
@ 2014-07-11  8:47 ` Anton Farygin
  2014-07-11 18:46   ` Денис Смирнов
  2014-07-29 15:15 ` Alexey Shabalin
  1 sibling, 1 reply; 8+ messages in thread
From: Anton Farygin @ 2014-07-11  8:47 UTC (permalink / raw)
  To: devel

On 11.07.2014 06:18, Денис Смирнов wrote:
> Один из самых долгих при загрузке сервисов у systemd, да еще и
> присутствующий на ранней стадии загрузки (соответственно многие сервисы не
> начинают стартовать, пока он не отработал) это altlinux-udev-settle
>
> Как выяснилось, нужен он ровно в двух случаях:
> 1. Для LVM, если в lvm.conf не установлена опция use_lvmetad = 1
> 2. Ради сохранения dmesg в /var/log (altlinux-save-dmesg.service)
>
> Это, конечно, круто, но все же ради куска лога в /var/log тормозить
> загрузку на существенное время.
>
> Главная засада в том, что от altlinux-save-dmesg.service у нас зависит
> basic.target -- т.е. запуск практически всех сервисов откладывается до
> выполнения udevsettle.
>
> Предлагаю зависимость на altlinux-save-dmesg переместить в
> default.target.wants из basic.target.wants.


мне кажется, что ты ошибаешься. udevsettle по идее должен проходить по 
sysfs и дёргать все устройства на предмет обнаружения и загрузки 
драйверов/создания устройств в udev.

Или это не так и что-то уже поменялось ?




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-11  8:47 ` Anton Farygin
@ 2014-07-11 18:46   ` Денис Смирнов
  2014-07-14  5:49     ` Anton Farygin
  0 siblings, 1 reply; 8+ messages in thread
From: Денис Смирнов @ 2014-07-11 18:46 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1045 bytes --]

On Fri, Jul 11, 2014 at 12:47:54PM +0400, Anton Farygin wrote:

>> Главная засада в том, что от altlinux-save-dmesg.service у нас зависит
>> basic.target -- т.е. запуск практически всех сервисов откладывается до
>> выполнения udevsettle.
>> Предлагаю зависимость на altlinux-save-dmesg переместить в
>> default.target.wants из basic.target.wants.
> мне кажется, что ты ошибаешься. udevsettle по идее должен проходить по 
> sysfs и дёргать все устройства на предмет обнаружения и загрузки 
> драйверов/создания устройств в udev.
> Или это не так и что-то уже поменялось ?

$ man udevd
   udevadm settle [options]
          Watches the udev event queue, and exits if all current events
		  are handled.

Нахрена ждать-то, если для монтирования у нас все равно зависимости от
дисковых устройств? Разве что для сети, ежели какие USB-свистки
используются, может понадобиться запускать до network.service (дабы etcnet
запускался уже тогда, когда все сетевые устройства доступны).

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-11 18:46   ` Денис Смирнов
@ 2014-07-14  5:49     ` Anton Farygin
  2014-07-14 23:16       ` Денис Смирнов
  0 siblings, 1 reply; 8+ messages in thread
From: Anton Farygin @ 2014-07-14  5:49 UTC (permalink / raw)
  To: devel

On 11.07.2014 22:46, Денис Смирнов wrote:
> On Fri, Jul 11, 2014 at 12:47:54PM +0400, Anton Farygin wrote:
>
>>> Главная засада в том, что от altlinux-save-dmesg.service у нас зависит
>>> basic.target -- т.е. запуск практически всех сервисов откладывается до
>>> выполнения udevsettle.
>>> Предлагаю зависимость на altlinux-save-dmesg переместить в
>>> default.target.wants из basic.target.wants.
>> мне кажется, что ты ошибаешься. udevsettle по идее должен проходить по
>> sysfs и дёргать все устройства на предмет обнаружения и загрузки
>> драйверов/создания устройств в udev.
>> Или это не так и что-то уже поменялось ?
>
> $ man udevd
>     udevadm settle [options]
>            Watches the udev event queue, and exits if all current events
> 		  are handled.
>
> Нахрена ждать-то, если для монтирования у нас все равно зависимости от
> дисковых устройств? Разве что для сети, ежели какие USB-свистки
> используются, может понадобиться запускать до network.service (дабы etcnet
> запускался уже тогда, когда все сетевые устройства доступны).


мало ли какие девайсы могут стать нужны во время загрузки. Для сети ты 
привёл один из примеров.

Лучше посмотреть, как идёт загрузка на Fedora в этом плане.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-14  5:49     ` Anton Farygin
@ 2014-07-14 23:16       ` Денис Смирнов
  0 siblings, 0 replies; 8+ messages in thread
From: Денис Смирнов @ 2014-07-14 23:16 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1246 bytes --]

On Mon, Jul 14, 2014 at 09:49:17AM +0400, Anton Farygin wrote:

>> Нахрена ждать-то, если для монтирования у нас все равно зависимости от
>> дисковых устройств? Разве что для сети, ежели какие USB-свистки
>> используются, может понадобиться запускать до network.service (дабы etcnet
>> запускался уже тогда, когда все сетевые устройства доступны).
> мало ли какие девайсы могут стать нужны во время загрузки. Для сети ты 
> привёл один из примеров.
> Лучше посмотреть, как идёт загрузка на Fedora в этом плане.

А какие могут быть действительно нужны?
block devices обрабатываются отдельно по событиям
сеть, в случае с systemd-networkd также обрабатывается по событиям

Я еще крамольную мысль скажу -- вообще говоря даже сеть не повод тормозить
с запуском prefdm, кроме как в случае с терминальными решениями. Вон, у
меня postfix сейчас один из самых "тяжелых" сервисов при старте -- 0.5s,
но всем пофиг, ибо он старует параллельно с prefdm.

Я хочу перенести udev-settle вместе с сохранением dmesg из basic.target в
default.target, сможешь найти что от этого сломается? Так как может
сломаться etcnet в некоторых случаях, у него я тоже сделаю соответствующую
зависимость.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-11  2:18 [devel] systemd: altlinux-udev-settle.service Денис Смирнов
  2014-07-11  8:47 ` Anton Farygin
@ 2014-07-29 15:15 ` Alexey Shabalin
  2014-07-29 16:26   ` Денис Смирнов
  1 sibling, 1 reply; 8+ messages in thread
From: Alexey Shabalin @ 2014-07-29 15:15 UTC (permalink / raw)
  To: ALT Linux Team development discussions

11 июля 2014 г., 6:18 пользователь Денис Смирнов
<mithraen@freesource.info> написал:
> Один из самых долгих при загрузке сервисов у systemd, да еще и
> присутствующий на ранней стадии загрузки (соответственно многие сервисы не
> начинают стартовать, пока он не отработал) это altlinux-udev-settle

altlinux-udev-settle - нет такого сервиса, поясни о чем речь. может о
systemd-udev-settle.service?
без systemd-udev-settle.service не обойдемся.

> Как выяснилось, нужен он ровно в двух случаях:
> 1. Для LVM, если в lvm.conf не установлена опция use_lvmetad = 1
Сервисы для lvm создаются генератором, и запускаются два раза, до
cryptsetup и после.

> 2. Ради сохранения dmesg в /var/log (altlinux-save-dmesg.service)
>
> Это, конечно, круто, но все же ради куска лога в /var/log тормозить
> загрузку на существенное время.

Думаю его можно передвинуть на попозже. Делая эти
сервисы(altlinux-*.service),  я пытался повторить логику rc.sysinit.
Скорее всего надо пересмотреть эту логику на текущий момент. У меня
глаз уже замылился, а свежым взглядом может быть все виднее.

> Главная засада в том, что от altlinux-save-dmesg.service у нас зависит
> basic.target -- т.е. запуск практически всех сервисов откладывается до
> выполнения udevsettle.
>
> Предлагаю зависимость на altlinux-save-dmesg переместить в
> default.target.wants из basic.target.wants.

Было бы хорошо увидеть в твоём репо все что ты предлагаешь :)

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-29 15:15 ` Alexey Shabalin
@ 2014-07-29 16:26   ` Денис Смирнов
  2014-07-29 17:02     ` Alexey Shabalin
  0 siblings, 1 reply; 8+ messages in thread
From: Денис Смирнов @ 2014-07-29 16:26 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 2145 bytes --]

On Tue, Jul 29, 2014 at 07:15:43PM +0400, Alexey Shabalin wrote:

> altlinux-udev-settle - нет такого сервиса, поясни о чем речь. может о
> systemd-udev-settle.service?

Ага.

> без systemd-udev-settle.service не обойдемся.

Да, он нужен. Но сейчас его тянут только LVM (причем в одном конкретном
случае) и altlinux-save-dmesg.service, который зачем-то в basic.target.

Я предлагаю systemd-udev-settle.service явно поместить в default.target, а
altlinux-save-dmesg.service перенести из basic.target в default.target.

Скорость абстрактной "загрузки" для нас роли не играет, пользователю важно
время с момента включения до момента возможности залогиниться. Так что
пусть udev-settle хоть час работает, лишь бы он делал это уже после
запуска dm.

>> Как выяснилось, нужен он ровно в двух случаях:
>> 1. Для LVM, если в lvm.conf не установлена опция use_lvmetad = 1
> Сервисы для lvm создаются генератором, и запускаются два раза, до
> cryptsetup и после.

Да, я видел. И эти генераторы зависимость на systemd-udev-settle создают
только если use_lvmetad = 0.

>> 2. Ради сохранения dmesg в /var/log (altlinux-save-dmesg.service)
>> Это, конечно, круто, но все же ради куска лога в /var/log тормозить
>> загрузку на существенное время.
> Думаю его можно передвинуть на попозже. Делая эти
> сервисы(altlinux-*.service),  я пытался повторить логику rc.sysinit.
> Скорее всего надо пересмотреть эту логику на текущий момент. У меня
> глаз уже замылился, а свежым взглядом может быть все виднее.

Прекрасно понимаю, потому и докапываюсь к этим мелочам :)

>> Главная засада в том, что от altlinux-save-dmesg.service у нас зависит
>> basic.target -- т.е. запуск практически всех сервисов откладывается до
>> выполнения udevsettle.
>> Предлагаю зависимость на altlinux-save-dmesg переместить в
>> default.target.wants из basic.target.wants.
> Было бы хорошо увидеть в твоём репо все что ты предлагаешь :)

Я еще не разобрался как у тебя устроен репо, чтобы его не сломать. И не
понял, например, откуда берется симлинк на altlinux-save-dmesg в
basic.target.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] systemd: altlinux-udev-settle.service
  2014-07-29 16:26   ` Денис Смирнов
@ 2014-07-29 17:02     ` Alexey Shabalin
  0 siblings, 0 replies; 8+ messages in thread
From: Alexey Shabalin @ 2014-07-29 17:02 UTC (permalink / raw)
  To: ALT Linux Team development discussions

>> Было бы хорошо увидеть в твоём репо все что ты предлагаешь :)
>
> Я еще не разобрался как у тебя устроен репо, чтобы его не сломать. И не
> понял, например, откуда берется симлинк на altlinux-save-dmesg в
> basic.target.

бранчи:
- upstream - апстримный бранч, без правок. обычно грубо переключаюсь
на новый - git branch -f upstream upstream-stable/v215-stable
- altlinux - правки на апстримный бранч (после обновления бранча
upstream в него мержатся изменения git merge upstream)
- master:
  + в него мержится история altlinux и upstream - git merge -s ours altlinux.
  + содержит spec и Sources*.  Т.е. новые сервисы я не добавляю в
бранч altlinux.
  + install altlinux-*.service и симлинки (включение по умолчанию)
делаются в spec в раделе %install

install -m644 %SOURCE17 %buildroot%_unitdir/altlinux-save-dmesg.service
ln -s ../altlinux-save-dmesg.service %buildroot%_unitdir/basic.target.wants

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-07-29 17:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-11  2:18 [devel] systemd: altlinux-udev-settle.service Денис Смирнов
2014-07-11  8:47 ` Anton Farygin
2014-07-11 18:46   ` Денис Смирнов
2014-07-14  5:49     ` Anton Farygin
2014-07-14 23:16       ` Денис Смирнов
2014-07-29 15:15 ` Alexey Shabalin
2014-07-29 16:26   ` Денис Смирнов
2014-07-29 17:02     ` Alexey Shabalin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git