From: Luis Chamberlain <mcgrof@kernel.org>
To: fstests@vger.kernel.org
Cc: hare@suse.de, dgilbert@interlog.com, jeyu@kernel.org,
lucas.demarchi@intel.com, linux-kernel@vger.kernel.org,
Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH 1/4] common/config: disable udevadm settle if CONFIG_NET is disabled
Date: Tue, 27 Jul 2021 13:10:42 -0700 [thread overview]
Message-ID: <20210727201045.2540681-2-mcgrof@kernel.org> (raw)
In-Reply-To: <20210727201045.2540681-1-mcgrof@kernel.org>
If CONFIG_NET is disabled kobject_uevent_net_broadcast() will be a no-op
and so no uevent are sent and so 'udevadm settle' won't really do
anything for you.
We check for /proc/net to see if CONFIG_NET was enabled.
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
common/config | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/common/config b/common/config
index adc16b59..005fd50a 100644
--- a/common/config
+++ b/common/config
@@ -240,7 +240,14 @@ else
UDEV_SETTLE_PROG="$UDEV_SETTLE_PROG settle"
fi
# neither command is available, use sleep 1
-if [ "$UDEV_SETTLE_PROG" == "" ]; then
+#
+# Udev events are sent via netlink to userspace through
+# kobject_uevent_net_broadcast(), and udev in userspace is in charge of
+# handling the events. The command `udevadm settle` just checks if
+# /run/udev/queue is 0, however, a kernel without CONFIG_NET will have
+# kobject_uevent_net_broadcast() be a no-op, and so /run/udev/queue may not
+# exist or always be 0. We check for /proc/net to see CONFIG_NET was enabled.
+if [[ "$UDEV_SETTLE_PROG" == "" || ! -d /proc/net ]]; then
UDEV_SETTLE_PROG="sleep 1"
fi
export UDEV_SETTLE_PROG
--
2.29.2
next prev parent reply other threads:[~2021-07-27 20:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-27 20:10 [PATCH 0/4] scsi_debug: improve failure rates Luis Chamberlain
2021-07-27 20:10 ` Luis Chamberlain [this message]
2021-07-27 20:10 ` [PATCH 2/4] common/scsi_debug: use udevadm settle instead of sleeping Luis Chamberlain
2021-07-27 20:10 ` [PATCH 3/4] common/module: add a patient module rmmod Luis Chamberlain
2021-07-30 0:22 ` Luis Chamberlain
2021-08-10 21:31 ` Luis Chamberlain
2021-07-27 20:10 ` [PATCH 4/4] common/scsi_debug: use the patient module remover Luis Chamberlain
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=20210727201045.2540681-2-mcgrof@kernel.org \
--to=mcgrof@kernel.org \
--cc=dgilbert@interlog.com \
--cc=fstests@vger.kernel.org \
--cc=hare@suse.de \
--cc=jeyu@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lucas.demarchi@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.