diff options
| author | Lingutla Chandrasekhar <clingutla@codeaurora.org> | 2016-09-12 13:26:50 +0530 |
|---|---|---|
| committer | Lingutla Chandrasekhar <clingutla@codeaurora.org> | 2017-05-11 15:55:16 +0530 |
| commit | a9c4ce1b7f68f531ee4561c8f7b51d614c76cb7c (patch) | |
| tree | 250284ffc03d68b4d59559eebecd45adcd628c55 | |
| parent | 3d82d66409abb91539bcb9d1f343fcb9d583f2b4 (diff) | |
qcom: common_log: make dump registration as async
In common log buf registration, finding log_buf symbols
takes more time and it stalls kernel booting.
So make log buf and other subsystem registration as async
task to optimize boot time.
Change-Id: I2c771195cc07c57a6e03a169b1d12fefb5560e17
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
| -rw-r--r-- | drivers/soc/qcom/common_log.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/soc/qcom/common_log.c b/drivers/soc/qcom/common_log.c index f001e820b797..1e8744b41e4c 100644 --- a/drivers/soc/qcom/common_log.c +++ b/drivers/soc/qcom/common_log.c @@ -17,6 +17,7 @@ #include <linux/kallsyms.h> #include <linux/slab.h> #include <linux/kmemleak.h> +#include <linux/async.h> #include <soc/qcom/memory_dump.h> #include <soc/qcom/minidump.h> #include <asm/sections.h> @@ -255,7 +256,7 @@ static void __init register_kernel_sections(void) } } -static int __init msm_common_log_init(void) +static void __init async_common_log_init(void *data, async_cookie_t cookie) { register_kernel_sections(); common_log_register_log_buf(); @@ -263,6 +264,12 @@ static int __init msm_common_log_init(void) register_pmic_dump(); register_vsense_dump(); register_rpm_dump(); +} + +static int __init msm_common_log_init(void) +{ + /* Initialize asynchronously to reduce boot time */ + async_schedule(async_common_log_init, NULL); return 0; } late_initcall(msm_common_log_init); |
