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=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792608761; x=1793213561; darn=lists.altlinux.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=AiI/X4dPwEwnw84OkNlo1xZO2ML+cnlgkAcM2pFavRM=; b=jWsAjrHVVpXselCuTLFPM0jZ8CsZAm8JyGI4Gx8e6cfK+/yzdglsj7zqp4S4iUm5Gi rT2/+SPy9K5KA7PgE5kNZ4dsDQxmKqf24uxqkRZRrSEQ+6AfLMABBdqtHqjY6lXkVM/2 c3IQEBi2gHyFQeiUxQy929uivurM/DrjpTyPzq1OJ0yHyObH3WYu0JxL9AWJqaP0Dmtr g9kThgP6qefTOeOoO1jutPiBRfgLuIV52Dh49MD9O7AfFOgLuaQZWwI76Zmh1eZ0R9UF BikMVCmmA9mTIf7+r5teNPCAXbBHUoMtzfFVIUiCiD2QvfjSSCHXFXJagJBGZ87X96nx e1GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792608761; x=1793213561; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=AiI/X4dPwEwnw84OkNlo1xZO2ML+cnlgkAcM2pFavRM=; b=mYzjnBy9xTrkfbDStnRFfzzDkHkSmQrrZA1mUXxqxQpFQYemIKtLLnxdIGMgVwduY8 EXK23y++O0/Qcw9sG8+XVUsRAeR/QfTj2IRNDLXIRQRmHWpL53ZsaZKY+WG889PrXzJ0 o+ZIESaz7VARbXi2Ex0S0gd8q5Qcrd8DvbSXPcRGR5Uxrc7KRfkX/B0V/8jY+btTS6Ch zrkU9odiEOdD/+rSrFHjtyHVRwFXCz0A/T63brmpD6dogRzBVUhf6Hfw2/JnWJ7DfHqi Vc8meeXk4+4BDWJbCST5n3RHIisCMYDlTA0ceuXqQx719usr2ZVdspgMDO6TYioXLqRh z5/A== X-Gm-Message-State: AFq9FYL6HpvElWzNFo9N/zwAvxhTKmRazCZdxJDfAJy3C0U4JSa56NAV AlhtxbUKnmcHsrhFqKeqj52WosK3BFQICHOysYRCro17DyPWI0jymk8PbXApuQ== X-Gm-Gg: AYBFou1uIYHx4+/n9E4/8tuQZlf0s5irZ/+XvmaDIVUNYcGZfZ8P56cq2VCmrU01m9K Vtp8bStH4NS7cb1lIPOtF6tTJ/reKp1aZQgbHS6SiMP21m2Ejo4xrChPNwmvw277x4xmvgVy8+G vQXiCmdoP2ldQcPz33l4817fdXcquHRZBikLTHWZkE/lSOKK38iAVudubHt8pDZBE6tEHBqE/Pl BoHWj8hHSzvO216GS32vVLJFwrKuBPjRCp4DOp8g/qnPlG7J7ORBfQeuuFz1u3UDWlO1Xpy3PKk r1L+0GsZxQB/+FYFqMXheuQ/BYQ+iM5TLlg7sqfVyiXM5F3YKwyvNB0YiUCxWbE/N2wsc556O6e mr3t1IatnSuhT9bE7/S5ISUw/9YOJwmt02mY0sCCx6776BSNdo6uzj2mYJS5qSiDnbnRHuOEBim hYN1eRp0+GonawusCSD3tAf0aMM1ko3SRWB+VzwPzy6+iYLEJu2I9tHoSb7DfisYLG9dM0sF2of GxWxlQQt6xrnDkNonxoLHd7V8kG1u2a892KKQ+dmPNRblTwPE0mbmWKSKi8trkPpqKdaJuJLg== X-Received: by 2002:a05:6808:3094:b0:500:5e36:3a9d with SMTP id 5614622812f47-5535ab467e8mr1974436b6e.30.1792608760728; Wed, 21 Oct 2026 11:52:40 -0700 (PDT) Message-ID: Date: Wed, 21 Oct 2026 21:52:39 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: make-initrd@lists.altlinux.org References: <6827d282-5d15-4a4c-b144-2da3e3580cda@gmail.com> <603c67ce-5fc5-434b-9f6f-83afb99fcc83@gmail.com> Content-Language: ru, en-US From: Leonid Krivoshein In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 18:52:46 -0000 Archived-At: List-Archive: On 10/21/26 1:18 PM, Alexey Gladkov wrote: > On Wed, Oct 21, 2026 at 11:50:15AM +0300, Leonid Krivoshein wrote: >> >> On 10/21/26 10:18 AM, Alexey Gladkov wrote: >>> On Tue, Oct 20, 2026 at 10:04:56PM +0300, Leonid Krivoshein wrote: >>>> Было бы здорово иметь одно место в документации, где будут перечислены все >>>> файлы, доступ к которым требует блокировок. Например, из этих коммитов я >>>> узнал, что следует блокировать доступ на запись в /.initrd/initenv. >>>> Инклюдить его можно по-прежнему без блокировки благодаря атомарному >>>> обновлению, если я правильно понял. >>> >>> Сейчас с твоей подачи такой список стал организовываться в >>> features/runtime/data/bin/initrd-sh-functions вместе с API для блокировок. >>> >> >> Отлично, спасибо! >> >> >>> Документация у нас в 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 секунд на загрузку, верно? Можно ещё глянуть эти пару функций (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.