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=1792577931; bh=yiXR43qBuBLqSVaeaET30XXEi0FjD9aDpx3cTTy4bo8=; h=Date:From:To:Subject:References:In-Reply-To; b=ebgna/i/xx5BPaDvnp4jBlIDvxlkrswW6i9Oi1Yqhye8Olif6bb4SW6x44Mc1/TyJ InoeRoMaggj15FnU7bRQoR7y/MIa9jFIEK4D+ZMyzVAq4SbdKoGozmuR0n0nG8h5// JtOtwG2yv1IC/+GeOU56HWn1cKV3nfY4r2dDQCsyHdMlFlYAn3tEgRTvdxQ0e3BFT6 2eyBAxBsLL8yWsVCk8YAdHxaRmfJuyl3ivMi8AcSnkdT5SPFJsreYIi8hsQe/h5K55 lBvmk7y8uJPtDjsTGsCXhfG3Iojb1ggPJhcdkMNK2Y5AMyrsB97rrqXmjJJoF52tBc iU4HfFOlWnS0A== Date: Wed, 21 Oct 2026 12:18:47 +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: <603c67ce-5fc5-434b-9f6f-83afb99fcc83@gmail.com> 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 10:19:00 -0000 Archived-At: List-Archive: 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/ или ты про какую-то другую ? > > > > Про неё, да. Про список вида ресурс (тип блокировки) и файл блокировки. Кто-нибудь может сделать такую документацию ? :) > И раз уж заглянул... по-моему, проще так: > > 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() можно > сразу схлопотать таймаут. Обойти можно сбросом счётчика, но чтобы считалось > правильно, необходимо добавлять арифметику для расчёта нового дедлайна, чего > бы не хотелось делать на стороне клиента. Предлагаемый патч в соседней ветке. Посмотри пожалуйста. -- Rgrds, legion