kernel/params.c: defer most of param_sysfs_init() to late_initcall time
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Tue, 25 Oct 2022 22:13:56 +0000 (00:13 +0200)
committerLuis Chamberlain <mcgrof@kernel.org>
Fri, 11 Nov 2022 18:19:52 +0000 (10:19 -0800)
commit96a1a2412acba8c057c041833641d9b7dbf52170
tree13dc35e8462f2f60cbe91e2991097898d1f7be12
parent89a6b5917650edd1542194fd5b5ada64fb94a790
kernel/params.c: defer most of param_sysfs_init() to late_initcall time

param_sysfs_init(), and in particular param_sysfs_builtin() is rather
time-consuming; for my board, it currently takes about 30ms.

That amounts to about 3% of the time budget I have from U-Boot hands
over control to linux and linux must assume responsibility for keeping
the external watchdog happy.

We must still continue to initialize module_kset at subsys_initcall
time, since otherwise any request_module() would fail in
mod_sysfs_init(). However, the bulk of the work in
param_sysfs_builtin(), namely populating /sys/module/*/version and/or
/sys/module/*/parameters/ for builtin modules, can be deferred to
late_initcall time - there's no userspace yet anyway to observe
contents of /sys or the lack thereof.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
kernel/params.c