From: Leonid Krivoshein <klark.devel@gmail.com>
To: make-initrd@lists.altlinux.org
Subject: Re: [make-initrd] Wait until the resume= is processed
Date: Thu, 25 Aug 2022 21:08:08 +0300
Message-ID: <1aea3c9c-e713-0315-2fb5-b26b451409e7@gmail.com> (raw)
In-Reply-To: <Ywdt5yrXh6ptZb6Y@example.org>
Привет!
25.08.2022 15:41, Alexey Gladkov пишет:
> Привет!
>
> Мне нужна ваша помощь. Я раздумывал про то как устроено resume в initramfs
> и связанные с этим проблемы.
>
> Если всё суммировать, то проблема лишь одна:
>
> Если swap на отдельном устройстве, то оно может проинициализироваться
> позже чем устройство, на котором находится корень. То есть мы не знаем по
> какому сценарию мы движемся.
Потому что мы следуем событиям, а не движемся по сценарию.
> К счастью мы ждём не какой-нибудь swap, а вполне конкретный, определённый
> через параметр resume= . Поэтому если _начать_ считать, что указанное в
> параметре устройство обязательно должно по явиться, то неопределённости
> уже не будет.
>
> Проблема в том, что сейчас устройство указанное в resume= опционально т.е.
> параметр может указывать на что-то от предыдущий установки, например.
Это ошибка конфигурирования, которая должна вылезти боком сразу же, при
первом её обнаружении. Предлагаю считать отсутствие указанного SWAP
фатальной ошибкой и не загружаться, пока пользователь не прочтёт и не
подтвердит руками, что он накуролесил.
> У меня есть соблазн сделать:
>
> 1. Ждать устройство resume= и пробовать проснуться.
Видимо тут имелось ввиду две вещи:
1.1. Попытаться проснуться при поступлении события о нахождении
устройства SWAP.
1.2. Если истёк некий тайм-аут ожидания SWAP, по крайней мере, события
можно больше не ждать. Этот тайм-аут, по идее, не должен совпадать с
rootdelay, так как штатная загрузка с корня -- задача, противоположная
просыпанию.
> 2. Если устройство есть и не получилось, то обрабатывать накопившиеся
> эвенты для обычной загрузки.
>
> 3. Если мы достигли rootdelay= и resume= не появился, то сбросить delay,
> выдать большое предупреждение об отсутствии resume= и грузиться нормально.
Если resume будет неотъемлемой фичей. Интересно, получится это "ужить" с
общим кодом модульно. А так, да, проверку разумней делать в одном (в
этом) месте.
> 4. Возможно, при создании initramfs смотреть на resume= в /proc/cmdline и
> предупреждать, что устройства нет. В этом пункте я сильно не уверен.
Нет, один initramfs может быть использован для загрузки в разных
условиях, с разными параметрами.
> Что вы думаете по этому поводу ?
>
--
С уважением,
Леонид Кривошеин.
next prev parent reply other threads:[~2022-08-25 18:08 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-25 12:41 Alexey Gladkov
2022-08-25 15:50 ` Vladimir D. Seleznev
2022-08-25 18:08 ` Leonid Krivoshein [this message]
2022-08-25 20:24 ` Alexey Gladkov
2022-08-26 21:48 ` Leonid Krivoshein
2022-08-26 22:56 ` Leonid Krivoshein
2022-08-26 23:42 ` Alexey Gladkov
2022-08-27 0:02 ` Alexey Gladkov
2022-08-27 1:01 ` Leonid Krivoshein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1aea3c9c-e713-0315-2fb5-b26b451409e7@gmail.com \
--to=klark.devel@gmail.com \
--cc=make-initrd@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Make-initrd development discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/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 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
public-inbox-index make-initrd
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.make-initrd
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git