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=1792615697; x=1793220497; 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=TzzP1b5ZzPpg79m01TP3vKdi0QQlajcy7TphAOriM4c=; b=rF6BnwQOmFSVG+UCaTZYkgi+0P8HcfJ6nhGEYHLRix7JLXcEnaNXL07dXD6aQcNOeX g5kOB9graNprq9HP9ItseJDPMS1ZXgfAWD/51erhLd1wG5zrbWEmnPHSM+l9o4qDGJgj BgHt1VwLYFg28wH4i5EGP3tyfNdooCzsc0Qr9JpdCmGoMUeWJ3OQWVRCWwgWwQl1Qx/g uPPkoR8wUWkFOA8v61D+zFXJQYT1I3TiWk+mPeQZV7LfzT2N2JN+pfURMIpwCNuh8kDX 6DNHp/GpbAe486y/XvHsAdByP7qguW4pLUbVCimrgmyrYLx8xHuPbrEAku9JFtkimdOh tSRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792615697; x=1793220497; 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=TzzP1b5ZzPpg79m01TP3vKdi0QQlajcy7TphAOriM4c=; b=wE1BYryq15PS+nFpGBHvdrrK/KEPQ1z3UdqoqrS/0v2VFLtioL/XaeTbfxtfwMbda9 kf5rPFO5quUgJaDqMAgUTDqSmoWYzS3yERfaHkYMOwfMuo9P7B9NRl2SjLcjD+3buS8/ PCbWjCPr4+zbuytPFR9sLshiZTuPTc1GEeceh9xfxTRQflEbXgt0DIHiuKTnebEEdnEN 5H9LyNqtLwyBfJkRHgbzvXGnJjjOaMRC2haeB6x7XB6tJWdhW4KpT8jXQuXsrYrVmMas ZtIPIlFACm1z35tse0RGhxtsFLI+/c9/VLiunbJkJKS/7EtfQYuIYmPL84CU7NoVIe1i eZ+g== X-Gm-Message-State: AFq9FYJFHpmvt7nm9OpiLdWw1S5GFsit7S6WRWqr9pJoYqvP2Et3hs0B q7lIO3/jCY+ReIGBH40elgxLqK7maS1cXgfKXCrg8bmDbzY9C1owb+OSVcYaBg== X-Gm-Gg: AYBFou0EtOk+u9fhkYOy21dCvuRYbkXJxBmn2GI9LQJIf07ATUfeZnR5nU4CPELeFQd JWO+iZ4ZsZMONAZLLnoXy3hn1vSz5k2PKlE6NZD+IHWov2Cljcl5QgRGW05kswC0wOV/nGOoBlw yzOgCFjEWoEe4Phla8sQZQyMI5xDIIIx6VvjORF5WJ3lO1hwJWDXONEkwIhmQIRVf60BLArzQab kGM0kcBbciuUZSpRlNS+UDA81EuP0apEkCi9q4aCBaEgcKb70jmmPTEOXoFuTtG7hzEJ+vVRP/P EtaT5DhEliSbQvrU83a7aajMTKEcPE0yy7eQaXeEw+ecnwBsZp3Za8iFVW1M4NFQTbG9k4u5+ko Tak3MXOvq6yR9sEy8YmCwJXmmza+NmrX0qyBlHDTCmIAo27XNtc3YqxgXEq0+vo2yKCDIzl0U/M yAZJB3fWb/1qZkvm/hmv/uBZlQQFvDSlqoq2d7ZkNxMfdhImNzCnJVdSLO09dXVB0CvvNF8elw/ o2/0RQ7oBKsjf9QcF2zwCAOyIksh38nSjbiXd+KSzEVHdN2Mt2ksdM2uy7se/s6xoOYGcHaYA== X-Received: by 2002:a05:6820:1888:b0:6dc:e1c3:b2a6 with SMTP id 006d021491bc7-709412a30bdmr2194199eaf.60.1792615696506; Wed, 21 Oct 2026 13:48:16 -0700 (PDT) Message-ID: Date: Wed, 21 Oct 2026 23:48:15 +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> <56395297-daf6-485d-9612-2a82a034ecbd@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 20:48:20 -0000 Archived-At: List-Archive: On 10/21/26 11:03 PM, Alexey Gladkov wrote: > 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 выше. > Обёртка решает проблему только в пределах единой группы модулей. Но, как я пояснил выше, оборачивать имеет смысл глобально, так как разные модули могут не знать ничего друг о друге, не догадываться, кто и когда вызовет эти функции. Следовательно, уже сейчас из-за гонок вычисления могут быть ошибочными, это глобальная проблема. -- WBR, Leonid Krivoshein.