From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792611020; bh=qy8TG8bE/Xe1AA2r7NkKvHqmzk7X/viAmO+7uvRZ4NY=; h=Date:From:To:Subject:References:In-Reply-To; b=BmeuNPY1BYXbjGBgwPFSzYY34cNJhtFaNuVwSmrYLdJiUTpjuaCp1KO/JXNZqr2mj 2/2TdR3QzlYY6t9nKmE96qrh/hpg6vO/XsBACr+PWyqPkKOUqE0vy2QNF82zC1WzHw bK5pSypYDUdKHim5BM9LqvyZ8mh0zfjXhDXA8AH40aLC+x22IxAmaFXPvx7dDdSLlE +yjFriA645n51CRva+QM9PH3xzr+QCtkXtXbyMPXpKUDlAMrYy60HFi1YJVt4fCAX7 PpLH3YrC++IInFTHircblxA9DjKvzbzdCSxdLmpry9QqhR8P8gkDWM42psT4QcGvlU QU6marKqXWs1A== Date: Wed, 21 Oct 2026 21:30:15 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: References: <6827d282-5d15-4a4c-b144-2da3e3580cda@gmail.com> <603c67ce-5fc5-434b-9f6f-83afb99fcc83@gmail.com> 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 v2 00/11] Improve support for atomic actions 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: Wed, 21 Oct 2026 19:30:24 -0000 Archived-At: List-Archive: On Wed, Oct 21, 2026 at 09:52:39PM +0300, Leonid Krivoshein wrote: > > > > Документация у нас в Documentation/ или ты про какую-то другую ? > > > > > > > > > > Про неё, да. Про список вида ресурс (тип блокировки) и файл блокировки. > > > > Кто-нибудь может сделать такую документацию ? :) > > > > Наверное, да. Только сейчас работаю над значительным улучшением и > документированием bootchain/altboot. > > > > > И раз уж заглянул... по-моему, проще так: > > > > > > get_majmin() > > > { > > > mountpoint -x -- "$1" 2>/dev/null > > > } > > > > > > результат будет аналогичным. > > > > Этой функции очень много лет. Она появилась до того как в образе появился > > mountpoint. Но да, твой код проще. > > > > Можно использовать, раз уж появился, я давно использую. > > > > > > > > > > Другой момент с этими коммитами не связан, но давно напрашивался. В v2.36.0 > > > > > была добавлена rootdelay_reset_timer(), здесь проскочило её > > > > > усовершенствование. На время диалогов ввода и на время заведомо длительных > > > > > или непредсказуемых по времени выполнения операций хотелось бы не просто > > > > > приостанавливать отчёт таймера rootdelay, но и возобновлять его отсчёт, а не > > > > > просто сбрасывать. Сейчас я его просто сбрасываю, так тоже работает, но это > > > > > конечно увеличивает суммарный (фактический) rootdelay. > > > > > > > > Почему на время диалогов ты не хочешь сделать rootdelay_pause ? > > > > > > > > > > Как раз делаю. > > > > > > > > > > Поставить rootdelay на паузу для диалогов мне кажется правильной идеей. Я > > > > паузу как раз для этого использую в fsck и kickstart. Для последнего > > > > rootdelay отключается по сути вообще. > > > > > > > > > > Раньше тоже так делал. Если что-то пошло не так, мы не увидим ни stage2, ни > > > отладочного rdshell. Поэтому сейчас сделаны две вещи: 1) таймаут отключается > > > только на время длительных операций, диалогов, а после rootdelay > > > перезапускается, 2) при фатальном выходе chaind устанавливает дедлайн на > > > now+2 секунды, чтобы поскорее попасть в rdshell. > > > > > > Cпич о том, что текущая реализация отталкивается от сохранённого дедлайна, а > > > не учёта времени, потраченного на загрузку. В моём понимании, > > > rootdelay_pause() -- перестать расходовать rootdelay на неопределённое > > > время. Сейчас же получается, что после вызова rootdelay_unpause() можно > > > сразу схлопотать таймаут. Обойти можно сбросом счётчика, но чтобы считалось > > > правильно, необходимо добавлять арифметику для расчёта нового дедлайна, чего > > > бы не хотелось делать на стороне клиента. > > > > Предлагаемый патч в соседней ветке. Посмотри пожалуйста. > > > > Посмотрел. Да, что-то вроде того. Потому что всегда по факту были > rootdelayd_pause() и rootdelayd_unpause(), а теперь как надо, без буквы d на > конце. :-) Приостанавливалась реакция демона, а не отсчёт таймера. > > > If the timer is reset while paused, advance the recorded pause start > timestamp to prevent adding duplicate time. > > А как теперь будет работать следующий код если до окончания загрузки перед > его вызовом оставалось 30 секунд? > > rootdelay_reset_timer > rootdelay_unpause > > По идее, пользователю должны добавить 180 секунд на загрузку, верно? Кажется моя реализация может накинуть времени пользователю в 1-2 секунды. Нужно поправить. > Можно ещё глянуть эти пару функций (longtermop_start и longtermop_end) [1] и > весь патч [2] на предмет взаимодействия с make-initrd rootdelay из-вне -- > здесь учитывается вложенность вызовов. Такая обёртка меня вполне устраивает, > т.е. на стороне make-initrd вложенность можно не учитывать. Позже переделаю > их с учётом атомарности. > > > 1. https://github.com/klark973/make-initrd-bootchain/blob/sisyphus/bootchain-core/data/bin/bootchain-sh-functions#L200 > 2. https://github.com/klark973/make-initrd-bootchain/commit/8d3407240c214eee86b5421210b46ba4577da559 > > > -- > WBR, Leonid Krivoshein. > > _______________________________________________ > Make-initrd mailing list > Make-initrd@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/make-initrd -- Rgrds, legion