Merge "drivers: qcom: Add boot stat entries for kernel load start and end"
This commit is contained in:
commit
c59dc60872
2
arch/arm/configs/vendor/sdxlemur.config
vendored
2
arch/arm/configs/vendor/sdxlemur.config
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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];
|
||||
|
@ -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)
|
||||
|
@ -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; }
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user