drivers: qcom: pil: Use update_marker for modem book kpi

Use update_marker instead of place_marker to avoid OOM
issue if boot kpi file keeps growing.
Add update_marker() declaration in boot_stats header file.

Change-Id: I9b842c10670b2adb918e246174fdac45fb53de40
Signed-off-by: Khaja Hussain Shaik Khaji <quic_kshaikkh@quicinc.com>
This commit is contained in:
Khaja Hussain Shaik Khaji 2023-08-02 12:29:07 +05:30
commit dc03cfa27f
5 changed files with 16 additions and 7 deletions

View file

@ -150,6 +150,13 @@ void place_marker(const char *name)
}
EXPORT_SYMBOL(place_marker);
void update_marker(const char *name)
{
destroy_marker(name);
place_marker(name);
}
EXPORT_SYMBOL(update_marker);
void destroy_marker(const char *name)
{
_destroy_boot_marker((char *) name);
@ -217,7 +224,7 @@ static ssize_t bootkpi_writer(struct kobject *obj, struct kobj_attribute *attr,
return rc;
buf[rc] = '\0';
place_marker(buf);
update_marker(buf);
return rc;
}

View file

@ -654,7 +654,7 @@ static int subsystem_shutdown(struct subsys_device *dev, void *data)
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(dev->desc->name, "modem"))
place_marker("M - Modem Stop");
update_marker("M - Modem Stop");
#endif
return 0;

View file

@ -474,7 +474,7 @@ int pil_do_ramdump(struct pil_desc *desc,
__func__, desc->name, ret);
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(desc->name, "modem"))
place_marker("M - Modem Dump completed");
update_marker("M - Modem Dump completed");
#endif
if (desc->subsys_vmid > 0)
ret = pil_assign_mem_to_subsys(desc, priv->region_start,
@ -873,7 +873,7 @@ static int pil_init_mmap(struct pil_desc *desc, const struct pil_mdt *mdt)
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(desc->name, "modem"))
place_marker("M - Modem Image Start Loading");
update_marker("M - Modem Image Start Loading");
#endif
pil_info(desc, "loading from %pa to %pa\n", &priv->region_start,
@ -1339,7 +1339,7 @@ int pil_boot(struct pil_desc *desc)
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(desc->name, "modem"))
place_marker("M - Modem out of reset");
update_marker("M - Modem out of reset");
#endif
pil_info(desc, "Brought out of reset\n");

View file

@ -873,7 +873,7 @@ static int subsys_ramdump(int enable, const struct subsys_desc *subsys)
return 0;
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(subsys->name, "modem"))
place_marker("M - Modem Dump start");
update_marker("M - Modem Dump start");
#endif
return pil_do_ramdump(&d->desc, d->ramdump_dev, d->minidump_dev);
@ -921,7 +921,7 @@ static irqreturn_t subsys_err_fatal_intr_handler (int irq, void *drv_data)
}
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(d->subsys_desc.name, "modem"))
place_marker("M - Modem crash");
update_marker("M - Modem crash");
#endif
subsys_set_crash_status(d->subsys, CRASH_STATUS_ERR_FATAL);
log_failure_reason(d);

View file

@ -6,6 +6,7 @@
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
void place_marker(const char *name);
void update_marker(const char *name);
void destroy_marker(const char *name);
unsigned long long msm_timer_get_sclk_ticks(void);
static inline int boot_marker_enabled(void) { return 1; }
@ -13,6 +14,7 @@ static inline int boot_marker_enabled(void) { return 1; }
static inline int init_bootkpi(void) { return 0; }
static inline void exit_bootkpi(void) { };
static inline void place_marker(char *name) { };
static inline void update_marker(char *name) { };
static inline void destroy_marker(const char *name) { };
static inline int boot_marker_enabled(void) { return 0; }
static inline unsigned long long msm_timer_get_sclk_ticks(void) { return -EINVAL; }