[make-initrd] [PATCH v6 08/22] bootchain-waitdev: introduces an optional waitdev_timeout

Alexey Gladkov gladkov.alexey at gmail.com
Sat Nov 6 16:11:30 MSK 2021


On Tue, Oct 26, 2021 at 10:31:58PM +0300, Leonid Krivoshein wrote:
> > > А как происходит этот fallback ?
> > > 
> > > В твоей реализации если достигнут таймаут, то последующие waitdev просто
> > > exit 0 делают и невозможно понять дождались они чего-то или нет.
> > > 
> > > Получается, что следующий шаг может только гадать о результате waitdev.
> > > 
> > > Потому что мне сейчас приходит в голову сделать параметр (или шаг)
> > > onfail, но это явно не то чем пользуешься ты для failback.
> > Ох. Ты спрятал его в 16 патче в next_bootchain. Но тогда у меня всё равно
> > вопрос, как будет происходить fallback если next_bootchain waitdev не
> > вызывает ?
> 
> Без вызова next_bootchain и многоходовочки:
> 
> waitdev,waidev,localdev waitdev_timeout=7 waitdev=... waitdev=...
> altboot_localdev=...
> 
> Имеем два wiatdev, один localdev и общий таймаут на все waitdev'ы.
> 
> Если первый или второй waidev не уложатся в 7 секунд, т.е. если за заданное
> время не будет найдено всех заданных устройств waitdev, не тормозим, а
> переходим к следующему шагу localdev. В этом суть fallback'а и общего
> таймаута. localdev может проверить результат предыдущего шага, ему
> достаточно проверить только последний waitdev.

Леонид, но это же чёрная магия. Получается неявное использование timeout и
расчёт на отсутствие результата у последнего waitdev.

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

Хотя, это детали реализации шага и если это исправлять, то мы перейдём к
метапрограммированию в cmdline. Я не знаю, что лучше ((

-- 
Rgrds, legion



More information about the Make-initrd mailing list