disp: msm: avoid logging event logs by default in sde_dbg_dump
Avoid printing the eventlogs in kernel logs during display debug logging through sde_dbg_dump to avoid excessive logging. Add a debugfs node to control in-mem/in-log mode of eventlogs to help in debugging. Change-Id: If98b129cafa9d29eccd0c44285f1058876f3e1ea Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
@@ -22,8 +22,6 @@
|
|||||||
#define SDE_DBG_BASE_MAX 10
|
#define SDE_DBG_BASE_MAX 10
|
||||||
|
|
||||||
#define DEFAULT_PANIC 1
|
#define DEFAULT_PANIC 1
|
||||||
#define DEFAULT_REGDUMP SDE_DBG_DUMP_IN_MEM
|
|
||||||
#define DEFAULT_DBGBUS_DUMP SDE_DBG_DUMP_IN_MEM
|
|
||||||
#define DEFAULT_BASE_REG_CNT DEFAULT_MDSS_HW_BLOCK_SIZE
|
#define DEFAULT_BASE_REG_CNT DEFAULT_MDSS_HW_BLOCK_SIZE
|
||||||
#define GROUP_BYTES 4
|
#define GROUP_BYTES 4
|
||||||
#define ROW_BYTES 16
|
#define ROW_BYTES 16
|
||||||
@@ -2082,6 +2080,7 @@ int sde_dbg_debugfs_register(struct device *dev)
|
|||||||
debugfs_create_file("recovery_reg", 0400, debugfs_root, NULL, &sde_recovery_reg_fops);
|
debugfs_create_file("recovery_reg", 0400, debugfs_root, NULL, &sde_recovery_reg_fops);
|
||||||
|
|
||||||
debugfs_create_u32("enable", 0600, debugfs_root, &(sde_dbg_base.evtlog->enable));
|
debugfs_create_u32("enable", 0600, debugfs_root, &(sde_dbg_base.evtlog->enable));
|
||||||
|
debugfs_create_u32("evtlog_dump", 0600, debugfs_root, &(sde_dbg_base.evtlog->dump_mode));
|
||||||
debugfs_create_u32("panic", 0600, debugfs_root, &sde_dbg_base.panic_on_err);
|
debugfs_create_u32("panic", 0600, debugfs_root, &sde_dbg_base.panic_on_err);
|
||||||
debugfs_create_u32("reg_dump", 0600, debugfs_root, &sde_dbg_base.enable_reg_dump);
|
debugfs_create_u32("reg_dump", 0600, debugfs_root, &sde_dbg_base.enable_reg_dump);
|
||||||
debugfs_create_u32("dbgbus_dump", 0600, debugfs_root, &sde_dbg_base.enable_dbgbus_dump);
|
debugfs_create_u32("dbgbus_dump", 0600, debugfs_root, &sde_dbg_base.enable_dbgbus_dump);
|
||||||
@@ -2219,8 +2218,8 @@ int sde_dbg_init(struct device *dev)
|
|||||||
INIT_WORK(&sde_dbg_base.dump_work, _sde_dump_work);
|
INIT_WORK(&sde_dbg_base.dump_work, _sde_dump_work);
|
||||||
sde_dbg_base.work_panic = false;
|
sde_dbg_base.work_panic = false;
|
||||||
sde_dbg_base.panic_on_err = DEFAULT_PANIC;
|
sde_dbg_base.panic_on_err = DEFAULT_PANIC;
|
||||||
sde_dbg_base.enable_reg_dump = DEFAULT_REGDUMP;
|
sde_dbg_base.enable_reg_dump = SDE_DBG_DEFAULT_DUMP_MODE;
|
||||||
sde_dbg_base.enable_dbgbus_dump = DEFAULT_DBGBUS_DUMP;
|
sde_dbg_base.enable_dbgbus_dump = SDE_DBG_DEFAULT_DUMP_MODE;
|
||||||
sde_dbg_base.dump_blk_mask = SDE_DBG_BUILT_IN_ALL;
|
sde_dbg_base.dump_blk_mask = SDE_DBG_BUILT_IN_ALL;
|
||||||
memset(&sde_dbg_base.regbuf, 0, sizeof(sde_dbg_base.regbuf));
|
memset(&sde_dbg_base.regbuf, 0, sizeof(sde_dbg_base.regbuf));
|
||||||
|
|
||||||
|
@@ -72,6 +72,9 @@ enum sde_dbg_dump_context {
|
|||||||
SDE_DBG_DUMP_CLK_ENABLED_CTX,
|
SDE_DBG_DUMP_CLK_ENABLED_CTX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* default dump mode for eventlogs, reg-dump & debugbus-dump */
|
||||||
|
#define SDE_DBG_DEFAULT_DUMP_MODE SDE_DBG_DUMP_IN_MEM
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define blocks for register write logging.
|
* Define blocks for register write logging.
|
||||||
*/
|
*/
|
||||||
@@ -100,8 +103,7 @@ enum sde_dbg_dump_context {
|
|||||||
*/
|
*/
|
||||||
#define SDE_REG_LOG_RSCC 33
|
#define SDE_REG_LOG_RSCC 33
|
||||||
|
|
||||||
#define SDE_EVTLOG_DEFAULT_ENABLE (SDE_EVTLOG_CRITICAL | SDE_EVTLOG_IRQ | \
|
#define SDE_EVTLOG_DEFAULT_ENABLE (SDE_EVTLOG_CRITICAL | SDE_EVTLOG_IRQ | SDE_EVTLOG_EXTERNAL)
|
||||||
SDE_EVTLOG_EXTERNAL)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* evtlog will print this number of entries when it is called through
|
* evtlog will print this number of entries when it is called through
|
||||||
@@ -148,6 +150,7 @@ struct sde_dbg_evtlog {
|
|||||||
u32 curr;
|
u32 curr;
|
||||||
u32 next;
|
u32 next;
|
||||||
u32 enable;
|
u32 enable;
|
||||||
|
u32 dump_mode;
|
||||||
spinlock_t spin_lock;
|
spinlock_t spin_lock;
|
||||||
struct list_head filter_list;
|
struct list_head filter_list;
|
||||||
};
|
};
|
||||||
|
@@ -210,7 +210,7 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog)
|
|||||||
char buf[SDE_EVTLOG_BUF_MAX];
|
char buf[SDE_EVTLOG_BUF_MAX];
|
||||||
bool update_last_entry = true;
|
bool update_last_entry = true;
|
||||||
|
|
||||||
if (!evtlog)
|
if (!evtlog || !(evtlog->dump_mode & SDE_DBG_DUMP_IN_LOG))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while (sde_evtlog_dump_to_buffer(evtlog, buf, sizeof(buf),
|
while (sde_evtlog_dump_to_buffer(evtlog, buf, sizeof(buf),
|
||||||
@@ -230,6 +230,7 @@ struct sde_dbg_evtlog *sde_evtlog_init(void)
|
|||||||
|
|
||||||
spin_lock_init(&evtlog->spin_lock);
|
spin_lock_init(&evtlog->spin_lock);
|
||||||
evtlog->enable = SDE_EVTLOG_DEFAULT_ENABLE;
|
evtlog->enable = SDE_EVTLOG_DEFAULT_ENABLE;
|
||||||
|
evtlog->dump_mode = SDE_DBG_DEFAULT_DUMP_MODE;
|
||||||
|
|
||||||
INIT_LIST_HEAD(&evtlog->filter_list);
|
INIT_LIST_HEAD(&evtlog->filter_list);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user