summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingutla Chandrasekhar <clingutla@codeaurora.org>2016-09-12 13:26:50 +0530
committerLingutla Chandrasekhar <clingutla@codeaurora.org>2017-05-11 15:55:16 +0530
commita9c4ce1b7f68f531ee4561c8f7b51d614c76cb7c (patch)
tree250284ffc03d68b4d59559eebecd45adcd628c55
parent3d82d66409abb91539bcb9d1f343fcb9d583f2b4 (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.c9
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);