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=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc; bh=fcdJev6atAlefQxsAaCjJxAUIN8AWZVmzdnbyqX1xJM=; b=M01B/sBBY2E/VWmaMBDlFZfvkHN+K7YRQqr4Twb2auuXw7qlOqq8vyJaPT9flmq7YG 6/s5OcQ+1Qq2VAP9oDflY7Wx3KRwKuKxkgqEdP/+rYexeLiHegACKdlq/7ManARAX2ws 8S87ixdtg2nVAXD/NiUpGDjRPvwne/nt21EbVwx8Dz/RJhE3sdMnvhrfbQ1qUGJwN/U6 Em0P5qUJ/8dxfTv8RRfzfyNy4Zf9x3vJer0WDAIP7nLOYN17pIeoiECiVoTuN/QVjf1+ 99KBoldCpxJnRuRVnR8dtBttMZYYH1BWIE1idI4WuVETqaycrZ9auPrAsIC4t99OfDAR P52Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc; bh=fcdJev6atAlefQxsAaCjJxAUIN8AWZVmzdnbyqX1xJM=; b=j4gVHrzb8jM9yQhIxoGcc+1I0FKplG7oGB/PcWtg8Ge9I6toEm0ltI961oSDSqgM1O PF6DwOHYgpVgjcEzXSHovhAANkFt2uqevNk5ynZh7RxFcSCFrV5sJcFOyaq6OlK4Hh8R wkMA6DA+rC27PGPVNUrTG8TLm5gteCIbTbvKNWQd5NxHH6CC4GxEO0kPhAIZho8NzqmT 4y42BgHPO4evSXBx+YLZrVsGyPmkVw8OmwAiuvUT4SXI9XwFi6Pj8TKrmJWwKxvdEma3 c5yjPHwjy6s1q9wg2dCZIG1++XHMm/zdvSWEo/7nlMIbIAtEG7nDuvZB5mqZ1JkhtbWS rKug== X-Gm-Message-State: ACgBeo0FpEoXUXsH9rDvMc10siP/gLtdAdM5ROQ9MIFEULfzzMxKhMNb KnO+KVz06vH40iqz1/pGNRnipKUZvkk= X-Google-Smtp-Source: AA6agR4zD4rfp8jVjg+65AA0b1Y1VeC1pT2EI5GM17oIVUCIAZCjlbdE3tB5EtCoi2trUJRXc21NTQ== X-Received: by 2002:a05:6512:3503:b0:48a:6060:5ebb with SMTP id h3-20020a056512350300b0048a60605ebbmr1384703lfs.429.1661450889715; Thu, 25 Aug 2022 11:08:09 -0700 (PDT) Message-ID: <1aea3c9c-e713-0315-2fb5-b26b451409e7@gmail.com> Date: Thu, 25 Aug 2022 21:08:08 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.10.0 Content-Language: ru To: make-initrd@lists.altlinux.org References: From: Leonid Krivoshein In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [make-initrd] Wait until the resume= is processed 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: Thu, 25 Aug 2022 18:08:16 -0000 Archived-At: List-Archive: Привет! 25.08.2022 15:41, Alexey Gladkov пишет: > Привет! > > Мне нужна ваша помощь. Я раздумывал про то как устроено resume в initramfs > и связанные с этим проблемы. > > Если всё суммировать, то проблема лишь одна: > > Если swap на отдельном устройстве, то оно может проинициализироваться > позже чем устройство, на котором находится корень. То есть мы не знаем по > какому сценарию мы движемся. Потому что мы следуем событиям, а не движемся по сценарию. > К счастью мы ждём не какой-нибудь swap, а вполне конкретный, определённый > через параметр resume= . Поэтому если _начать_ считать, что указанное в > параметре устройство обязательно должно по явиться, то неопределённости > уже не будет. > > Проблема в том, что сейчас устройство указанное в resume= опционально т.е. > параметр может указывать на что-то от предыдущий установки, например. Это ошибка конфигурирования, которая должна вылезти боком сразу же, при первом её обнаружении. Предлагаю считать отсутствие указанного SWAP фатальной ошибкой и не загружаться, пока пользователь не прочтёт и не подтвердит руками, что он накуролесил. > У меня есть соблазн сделать: > > 1. Ждать устройство resume= и пробовать проснуться. Видимо тут имелось ввиду две вещи: 1.1. Попытаться проснуться при поступлении события о нахождении устройства SWAP. 1.2. Если истёк некий тайм-аут ожидания SWAP, по крайней мере, события можно больше не ждать. Этот тайм-аут, по идее, не должен совпадать с rootdelay, так как штатная загрузка с корня -- задача, противоположная просыпанию. > 2. Если устройство есть и не получилось, то обрабатывать накопившиеся > эвенты для обычной загрузки. > > 3. Если мы достигли rootdelay= и resume= не появился, то сбросить delay, > выдать большое предупреждение об отсутствии resume= и грузиться нормально. Если resume будет неотъемлемой фичей. Интересно, получится это "ужить" с общим кодом модульно. А так, да, проверку разумней делать в одном (в этом) месте. > 4. Возможно, при создании initramfs смотреть на resume= в /proc/cmdline и > предупреждать, что устройства нет. В этом пункте я сильно не уверен. Нет, один initramfs может быть использован для загрузки в разных условиях, с разными параметрами. > Что вы думаете по этому поводу ? > -- С уважением, Леонид Кривошеин.