openembedded-core.lists.openembedded.org archive mirror
 help / color / mirror / Atom feed
From: "Khem Raj" <raj.khem@gmail.com>
To: drew@moseleynet.net, Kyle Russell <bkylerussell@gmail.com>,
	Claudius Heine <ch@denx.de>
Cc: OE-core <openembedded-core@lists.openembedded.org>,
	Marek Vasut <marex@denx.de>,
	Alex Kiernan <alex.kiernan@gmail.com>,
	Alexander Kanavin <alex.kanavin@gmail.com>,
	Alban Bedel <alban.bedel@aerq.com>,
	Wes Lindauer <wesley.lindauer@gmail.com>
Subject: Re: [OE-core] [PATCH] rng-tools: add systemd-udev-settle wants to service
Date: Thu, 21 Jul 2022 11:29:25 -0400	[thread overview]
Message-ID: <2022e0a9-cd4e-fbf0-47ac-4a8beae2fee6@gmail.com> (raw)
In-Reply-To: <77cc90ef-6c06-caee-c0a1-599628a986f4@gmail.com>



On 7/21/22 11:17 AM, Drew Moseley wrote:
> On 2/3/22 9:12 AM, Kyle Russell wrote:
> 
>> Thanks, Claudius.  I really appreciate your responses.  I'm not trying 
>> to be pedantic.  Since I don't have your test setup, I was just trying 
>> to make sure I understood the context of the problem as I figure out 
>> how to deal with issues this is causing in our setup.
>>
>> I was also hoping one of the recipe maintainers of either systemd or 
>> rng-tools would comment on systemd-udev-settle.
>>
>> I'll take a look at the caam module to see if I can understand how it 
>> works.
>>
>> On Thu, Feb 3, 2022 at 3:35 AM Claudius Heine <ch@denx.de> wrote:
>>
>>     On 2022-02-02 17:26, Kyle Russell wrote:
>>     > Thanks, Claudius.
>>     >
>>     > On Wed, Feb 2, 2022 at 8:08 AM Claudius Heine <ch@denx.de
>>     > <mailto:ch@denx.de>> wrote:
>>     >
>>     >     Hi Kyle,
>>     >
>>     >     On 2022-02-02 13:38, Kyle Russell wrote:
>>     >      > Is this the correct approach?  Even the
>>     >     systemd-udev-settle.service man
>>     >      > pages recommends not using its service.  Were the kernel
>>     modules
>>     >     really
>>     >      > not loaded when rngd started?  Or is the original problem
>>     just a
>>     >     matter
>>     >      > of waiting for sufficient entropy?
>>     >
>>     >     IIRC, the rngd could not find any random source device node
>>     (/dev/hwrng
>>     >     in that case), so the service failed to start.
>>     >
>>     >
>>     > If /dev/hwrng didn't exist, this feels like the original problem
>>     was a
>>     > misconfigured
>>     > kernel or module that wasn't being loaded properly.
>>
>>     Yes, however it is a timing issue. The module was loaded properly at
>>     bootup, however at the time rngd was started the module was not
>>     loaded
>>     yet and thus the service fails to start. If it would be delayed until
>>     the module is loaded everything would be fine.
>>
>>     It does not happen if the module is compiled into the kernel or if a
>>     initramfs is used which loads the module (I think). I our case it
>>     happend with the caam module as an external module loaded on boot
>>     from
>>     the real root file system.
>>
>>     >     The patch you are commenting on only adds `Wants` weak
>>     dependency to
>>     >     make sure `systemd-udev-settle.service` is pulled in to the
>>     job queue,
>>     >     the `After` ordering rule was already there.
>>     >
>>     >
>>     > Correct.  Just because an `After` exists does not mean the
>>     service gets
>>     > pulled into
>>     > the job queue, so prior to this change no other service was
>>     causing the
>>     > deprecated
>>     > systemd-udev-settle.service to be run during boot.  But now, every
>>     > device including
>>     > openssh (which has a default PACKAGECONFIG option for rng-tools)
>>     now depends
>>     > on this deprecated service, which may cause unexpected boot delays.
>>     >
>>     >     So changing this service file to be triggered by a udev
>>     event or maybe
>>     >     wrap it in a script, which makes sure the right modules are
>>     loaded and
>>     >     device nodes are available, could be an improvement, but it
>>     would be
>>     >     out
>>     >     of scope of this patch IMO.
>>     >
>>     >
>>     > I'm more curious whether this change should be reverted from
>>     upstream.
>>     > It seems
>>     > like a drop-in file could have been applied to your distro
>>     instead of
>>     > adding a dependency
>>     > on a deprecated service for all openssh users.
>>
>>     This patch just adds a missing entry into the service file. If you
>>     have
>>     solved the described issue in some way and can revert this patch and
>>     remove the `Wants=systemd-udev-settle.service` then you can also
>>     remove
>>     the `After=systemd-udev-settle.service` at the same time and at that
>>     point you can just remove both of those entries directly in the patch
>>     that solved the timing issue.
>>
>>     I agree that `systemd-udev-settle.service` should probably not be
>>     used
>>     anymore, however that file already used it in a non-functional way
>>     and
>>     all this patch did was make it fulfill its intended function.
>>
>>     In retrospect I probably should have tried to find a way to remove
>>     the
>>     usage of `systemd-udev-settle.service` completely, when I looked into
>>     the issue, however all this patch in essence does is revive dead
>>     code,
>>     which was already in place.
>>
>>     Also I think at that time I couldn't find a more precise
>>     instrument in
>>     systemds massive toolbox to delay the start of rngd and services that
>>     should be started in succession until the just the hardware random
>>     generator device is ready and `After=systemd-udev-settle.service` was
>>     already there. I guess some `ExecStartPre=` script which delays the
>>     start until the conditions are met could be implemented, but that
>>     seems
>>     a bit hackish.
>>
>>     regards,
>>     Claudius
>>
> 
> We are getting report from our users that adding this "Wants" causes 
> extremely slow boots on systems where it did not happen before this 
> change. Has anyone looked further into this and whether this change is 
> truly necessary?
> 
> We have it reverted locally to work around the specific issue but I 
> wonder if there is a deeper issue here.

It seems the issue was that module load was racing with rngd in that 
case perhaps adding After=systemd-modules-load.service
might have been another choice to solve it. Using 
systemd-udev-settle.service is a bit heavy handed as it will wait for 
full h/w discovery which could vary from system to system.

> 
> Drew
> 
> -- 
> mailto:drew@moseleynet.net
> 
> 
> 
> 
> 

  reply	other threads:[~2022-07-21 15:29 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-17  8:08 [PATCH] rng-tools: add systemd-udev-settle wants to service Claudius Heine
2022-02-02 12:38 ` [OE-core] " Kyle Russell
2022-02-02 13:08   ` Claudius Heine
2022-02-02 16:26     ` Kyle Russell
2022-02-03  8:35       ` Claudius Heine
2022-02-03 14:12         ` Kyle Russell
2022-07-21 15:17           ` Drew Moseley
2022-07-21 15:29             ` Khem Raj [this message]
2022-07-22 20:42               ` Drew Moseley
2022-07-23  0:30                 ` [OE-core] " Khem Raj
2022-07-23  7:03               ` Claudius Heine
2022-07-26 13:17                 ` [OE-core][PATCH] rng-tools: Replace obsolete "wants systemd-udev-settle" drew.moseley
2022-08-01 18:44                   ` Drew Moseley
2022-08-02  7:24                     ` Claudius Heine
2022-08-02  7:47                       ` Khem Raj
2022-08-04 15:09                         ` [OE-core][PATCH v2] " drew.moseley
2022-08-12 12:59                           ` Dragos-Marian Panait
2022-08-12 15:20                             ` Drew Moseley
2022-08-15 18:25                               ` [OE-core][PATCH] rng-tools: Change "Requires" to "WantedBy" for dev-hwrng.device drew.moseley
2022-08-15 18:29                                 ` Drew Moseley
2022-08-15 18:47                                   ` Khem Raj
2022-08-18 17:12                                     ` Alexander Kanavin
2022-08-19  9:36                                 ` Claudius Heine
2022-08-19 12:50                                   ` Dragos-Marian Panait
2022-08-19 14:34                                     ` Drew Moseley
2022-08-19 15:07                                       ` Dragos-Marian Panait
2022-08-19 15:13                                         ` Drew Moseley
2022-08-19 15:21                                           ` Alexander Kanavin
2022-08-19 16:24                                             ` Khem Raj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2022e0a9-cd4e-fbf0-47ac-4a8beae2fee6@gmail.com \
    --to=raj.khem@gmail.com \
    --cc=alban.bedel@aerq.com \
    --cc=alex.kanavin@gmail.com \
    --cc=alex.kiernan@gmail.com \
    --cc=bkylerussell@gmail.com \
    --cc=ch@denx.de \
    --cc=drew@moseleynet.net \
    --cc=marex@denx.de \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=wesley.lindauer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).