From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 6 Nov 2021 15:55:52 +0100 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: <20211106145552.g6itg2jycnwhmady@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> <20211106131130.zvwsnnikmaq7oqmz@example.org> <7c5ab56f-e0d3-c48c-6ee6-02f47ed3f33b@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7c5ab56f-e0d3-c48c-6ee6-02f47ed3f33b@gmail.com> 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 14:55:53 -0000 Archived-At: List-Archive: On Sat, Nov 06, 2021 at 05:39:10PM +0300, Leonid Krivoshein wrote: > > 06.11.2021 16:11, Alexey Gladkov пишет: > > 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. > > timeout_waitdev=... в /proc/cmdline задаётся вполне себе явно. И если не > задаётся, то и не используется. Логика к тому же также явно определяет общее > поведение: мы даём некоторое время на отработку всех вместе взятых > waitdev'ов, но если что-то пойдёт не так, то переходим к сканированию > устройств или выбору их в диалоге. Как раз тут никакой магии. > > > > Кроме того, получается, что нужно всё время держать в голове такую > > особенность, а также, что только localdev проверяет предыдущий шаг. > > На самом деле любой шаг может передавать следующему какой-то результат > работы. И если мы не хотим, чтобы следующий шаг его использовал, необходимо > вставить специальный разделитель в цепочку -- внутренний шаг "noop". Всё это > было сделано для обеспечения возможности объединения двух плохо стыкуемых > концепций -- pipeline и propagator. > > > > Хотя, это детали реализации шага и если это исправлять, то мы перейдём к > > метапрограммированию в cmdline. Я не знаю, что лучше (( > > Моё предложение заключалось в том, чтобы добавить префикс TIMEOUT=... для > конкретного шага, если в нём тоже есть польза, но не убирать общий > waitdev_timeout=..., чтобы оставить возможность отрабатывать fallback, как > сказано в описании. Иначе придётся отказываться от нескольких коммитов > вокруг bootchain-waitdev, тогда состыковать шаги waitdev и altboot окажется > невозможно, каждый будет сам по себе. OK. Пусть будет так как есть сейчас. -- Rgrds, legion