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=1792613044; bh=Je7f7XUOhuR0TZX5/Gfl+HQ5GYzKIdt9B32Om8Z54kA=; h=Date:From:To:Subject:References:In-Reply-To; b=K18RnDggogEGyrbxgm3XMkRSgYe/lePGciC0IWdz41S1yd93MPtn8D5OTjIH8Ts2P 5H/XhxiJrKq4Ogef7kmPGX0hMykd8+DMnHr22qPZVnyzS6SPQk38Dvydc44IC+d3Dx n2IEXCM3T/E3SREqNWbTqY0XBVrVSQ+ONBytK3PBBmHxWD7ulb5yculX6kWtxIRMbe FOuiVDKr6RB0luOIPiH65U/wfoJDciSQ+4JPXcQqsgf1xnX1OV6zRNHTUTGrCwP3xU p+C9yD8vF9xMXO4p3cPEN4vkh532PtRJP6EY3H7ONAVpFAMN4674CnASNfXHZr31cZ B/o20Op3cnzFw== Date: Wed, 21 Oct 2026 22:03:59 +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> <56395297-daf6-485d-9612-2a82a034ecbd@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56395297-daf6-485d-9612-2a82a034ecbd@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 20:04:07 -0000 Archived-At: List-Archive: On Wed, Oct 21, 2026 at 10:31:55PM +0300, Leonid Krivoshein wrote: > > On 10/21/26 9:52 PM, Leonid Krivoshein wrote: > > Можно ещё глянуть эти пару функций (longtermop_start и longtermop_end) > > [1] и весь патч [2] на предмет взаимодействия с make-initrd rootdelay > > из-вне -- здесь учитывается вложенность вызовов. Такая обёртка меня > > вполне устраивает, т.е. на стороне make-initrd вложенность можно не > > учитывать. Позже переделаю их с учётом атомарности. > > > > Впрочем, на мой взгляд, в самом make-initrd реализация > rootdelay_pause/rootdelay_unpause *ТОЛЬКО* с подсчётом вызовов было бы > весьма здравой идеей, поскольку предсказать, какой модуль и в какой момент > что из этого вызовет заранее невозможно. Приостанавливать таймер нужно > только при первом вызове rootdelay_pause(), а возобновлять его работу только > при последнем вызове rootdelay_unpause(). Тогда и оборачивать не придётся. > Без этого, как мне кажется, оно уже и сейчас будет не правильно рассчитывать > оставшийся таймаут с несколькими параллельно работающими пользователями этих > функций. Ну в целом да. rootdelay_pause / rootdelay_unpause в текущем виде это не тот API, который избавит от коллизий и гонок. Чтобы избавиться от гонок нужен fd_lock. rootdelay_* функции пусть остаются как API именно для взаимодействия с rootdelayd. Синхронизацию пользователей пусть делает API выше. -- Rgrds, legion