From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 6 Nov 2021 14:11:30 +0100 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: <20211106131130.zvwsnnikmaq7oqmz@example.org> References: <20211024172108.668CDA5E4C@lists.altlinux.org> <20211026105516.jfbatbtjfah74vou@example.org> <37c46f84-217f-81bd-56a9-1d5b8d02d670@gmail.com> <20211026135552.wratyys3jkvboqm6@example.org> <20211026140528.pqyv5jgqclcef4ry@example.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [make-initrd] [PATCH v6 08/22] bootchain-waitdev: introduces an optional waitdev_timeout X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Nov 2021 13:11:32 -0000 Archived-At: List-Archive: 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