From: "Антон Мидюков" <antohami@basealt.ru> To: make-initrd@lists.altlinux.org Subject: [make-initrd] polld и проверка наличия /root/sbin/init Date: Thu, 6 Apr 2023 08:28:20 +0700 Message-ID: <7d19288d-96a9-186c-768d-95a09b02c225@basealt.ru> (raw) Здравствуйте Предыстория: https://bugzilla.altlinux.org/44111 Заглавный вопрос: "в каком случае может быть так, что init в смонтированном корне в первые секунды нет, а потом оно чудесным образом появляется?" Мне кажется, ответ найден: "При распараллеливании процесса монтирования корня (из сквоша, как минимум) на медленном сетевом соединении или достаточно медленном локальном накопителе". Сейчас проблема стала хорошо воспроизводиться на ядре 6.2 при подключении по nfs или загрузке через ventoy и монтировании сквоша (без предварительной загрузки сквоша в память) на многоядерных процессорах. Если ядро одно, то проблемы нет (проверено в виртуалке). В ядре включили алгоритм монтирования оверлея CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU, и это проблему усугубило. Но проблему крайне редко можно было поймать и раньше. Отсюда выводы: 1. Факт монтирования корня недостаточное условие, существует переходный процесс монтирования 2. Обнаружение /sbin/init также не является достаточным условием, что можно продолжать загрузку, переходный процесс может оказаться длинным Гипотеза о переходном процессе основана на сопоставлении двух логов chaind.log и polld.log Ошибка об отсутствии /sbin/init была выдана на 1 секунду раньше, чем было завершено монтирование оверлея (оно занимало две секунды). И другая проблема, вытекающая из этих: bootchain после монтирования /sbin/init совершает ещё действия, поэтому нужно дождаться его выполнения. В случае bootchain было бы надёжным запускать polld только тогда, когда он завершил свою работу. Такое в принципе возможно? -- С уважением, Антон Мидюков <antohami@basealt.ru>
next reply other threads:[~2023-04-06 1:28 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-04-06 1:28 Антон Мидюков [this message] 2023-04-06 6:00 ` Leonid Krivoshein 2023-04-06 22:27 ` Leonid Krivoshein 2023-04-07 13:05 ` Alexey Gladkov 2023-04-06 9:29 ` Alexey Gladkov 2023-04-09 20:18 ` 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=7d19288d-96a9-186c-768d-95a09b02c225@basealt.ru \ --to=antohami@basealt.ru \ --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