Merge "drivers: qcom: Add boot stat entries for kernel load start and end"

This commit is contained in:
qctecmdr 2021-04-26 08:14:47 -07:00 committed by Gerrit - the friendly Code Review server
commit c59dc60872
10 changed files with 27 additions and 15 deletions

View File

@ -3,7 +3,7 @@ CONFIG_ARCH_SDXLEMUR=y
CONFIG_BUILD_ARM_APPENDED_DTB_IMAGE=y
CONFIG_HWSPINLOCK_QCOM=y
CONFIG_MSM_BOOT_STATS=y
CONFIG_MSM_BOOT_TIME_MARKER=y
CONFIG_QGKI_MSM_BOOT_TIME_MARKER=y
CONFIG_QCOM_SMEM=y
CONFIG_SLIMBUS=y
CONFIG_IPC_LOGGING=y

View File

@ -63,7 +63,7 @@ CONFIG_PINCTRL_SX150X=y
CONFIG_ADSPRPC_QGKI=y
CONFIG_QCOM_APCS_IPC=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=16
CONFIG_MSM_BOOT_TIME_MARKER=y
CONFIG_QGKI_MSM_BOOT_TIME_MARKER=y
CONFIG_BRIDGE_NF_EBTABLES=y
CONFIG_BRIDGE_EBT_BROUTE=y
CONFIG_BRIDGE=y

View File

@ -405,7 +405,7 @@ static int qcom_ethqos_add_ipaddr(struct ip_params *ip_info,
} else {
ETHQOSINFO("Assigned IPv4 address: %s\r\n",
ip_info->ipv4_addr_str);
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
place_marker("M - Etherent Assigned IPv4 address");
#endif
}
@ -453,7 +453,7 @@ static int qcom_ethqos_add_ipv6addr(struct ip_params *ip_info,
} else {
ETHQOSDBG("Assigned IPv6 address: %s\r\n",
ip_info->ipv6_addr_str);
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
place_marker("M - Ethernet Assigned IPv6 address");
#endif
}
@ -1537,7 +1537,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
"qcom,emac-smmu-embedded"))
return emac_emb_smmu_cb_probe(pdev);
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
place_marker("M - Ethernet probe start");
#endif
@ -1684,7 +1684,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
/*Set early eth parameters*/
ethqos_set_early_eth_param(priv, ethqos);
}
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
place_marker("M - Ethernet probe end");
#endif

View File

@ -22,7 +22,7 @@
#include <linux/net_tstamp.h>
#include <linux/reset.h>
#include <net/page_pool.h>
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
#include <soc/qcom/boot_stats.h>
#endif

View File

@ -971,7 +971,7 @@ static void stmmac_mac_link_up(struct phylink_config *config,
priv->eee_enabled = stmmac_eee_init(priv);
stmmac_set_eee_pls(priv, priv->hw, true);
}
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if ((phy && phy->link == 1) && !priv->boot_kpi) {
place_marker("M - Ethernet is Ready.Link is UP");
priv->boot_kpi = true;
@ -1985,7 +1985,7 @@ static int stmmac_tx_clean(struct stmmac_priv *priv, int budget, u32 queue)
priv->dev->stats.tx_packets++;
priv->xstats.tx_pkt_n++;
priv->xstats.q_tx_pkt_n[queue]++;
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (priv->dev->stats.tx_packets == 1)
place_marker("M - Ethernet first packet transmitted");
#endif
@ -3770,7 +3770,7 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
napi_gro_receive(&ch->rx_napi, skb);
priv->dev->stats.rx_packets++;
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (priv->dev->stats.rx_packets == 1)
place_marker("M - Ethernet first packet received");
#endif

View File

@ -395,9 +395,9 @@ config MSM_BOOT_STATS
This figures are reported in mpm sleep clock cycles and have a
resolution of 31 bits as 1 bit is used as an overflow check.
config MSM_BOOT_TIME_MARKER
config QGKI_MSM_BOOT_TIME_MARKER
bool "Use MSM boot time marker reporting"
depends on MSM_BOOT_STATS
depends on MSM_BOOT_STATS && QGKI
help
Use this to mark msm boot kpi for measurement.
An instrumentation for boot time measurement.

View File

@ -30,13 +30,17 @@ struct boot_stats {
uint32_t bootloader_end;
uint32_t bootloader_display;
uint32_t bootloader_load_kernel;
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
uint32_t bootloader_load_kernel_start;
uint32_t bootloader_load_kernel_end;
#endif
};
static void __iomem *mpm_counter_base;
static uint32_t mpm_counter_freq;
static struct boot_stats __iomem *boot_stats;
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
struct boot_marker {
char marker_name[BOOT_MARKER_MAX_LEN];

View File

@ -41,7 +41,7 @@
#include <linux/version.h>
#include <linux/devcoredump.h>
#if IS_ENABLED(CONFIG_MSM_BOOT_TIME_MARKER)
#if IS_ENABLED(CONFIG_QGKI_MSM_BOOT_TIME_MARKER)
#include <soc/qcom/boot_stats.h>
#else
static inline unsigned long long msm_timer_get_sclk_ticks(void)

View File

@ -4,7 +4,7 @@
#ifndef __QCOM_BOOT_STATS_H__
#define __QCOM_BOOT_STATS_H__
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
void place_marker(const char *name);
void destroy_marker(const char *name);
static inline int boot_marker_enabled(void) { return 1; }

View File

@ -104,6 +104,10 @@
#define CREATE_TRACE_POINTS
#include <trace/events/initcall.h>
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
#include <soc/qcom/boot_stats.h>
#endif
static int kernel_init(void *);
extern void init_IRQ(void);
@ -1132,6 +1136,10 @@ static int __ref kernel_init(void *unused)
rcu_end_inkernel_boot();
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
place_marker("M - DRIVER Kernel Boot Done");
#endif
if (ramdisk_execute_command) {
ret = run_init_process(ramdisk_execute_command);
if (!ret)