[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1592914031-31049-6-git-send-email-alan.maguire@oracle.com>
Date: Tue, 23 Jun 2020 13:07:08 +0100
From: Alan Maguire <alan.maguire@...cle.com>
To: ast@...nel.org, daniel@...earbox.net, yhs@...com, andriin@...com,
arnaldo.melo@...il.com
Cc: kafai@...com, songliubraving@...com, john.fastabend@...il.com,
kpsingh@...omium.org, linux@...musvillemoes.dk, joe@...ches.com,
pmladek@...e.com, rostedt@...dmis.org,
sergey.senozhatsky@...il.com, andriy.shevchenko@...ux.intel.com,
corbet@....net, bpf@...r.kernel.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org
Subject: [PATCH v3 bpf-next 5/8] printk: initialize vmlinux BTF outside of printk in late_initcall()
vmlinux BTF initialization can take time so it's best to do that
outside of printk context; otherwise the first printk() using %pT
will trigger BTF initialization.
Signed-off-by: Alan Maguire <alan.maguire@...cle.com>
---
lib/vsprintf.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index c0d209d..8ac136a 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -3628,3 +3628,15 @@ int sscanf(const char *buf, const char *fmt, ...)
return i;
}
EXPORT_SYMBOL(sscanf);
+
+/*
+ * Initialize vmlinux BTF as it may be used by printk()s and it's better
+ * to incur the cost of initialization outside of printk context.
+ */
+static int __init init_btf_vmlinux(void)
+{
+ (void) bpf_get_btf_vmlinux();
+
+ return 0;
+}
+late_initcall(init_btf_vmlinux);
--
1.8.3.1
Powered by blists - more mailing lists