msm:ipa: add stats for low latency data-path

Rate limit the warning which could cause latency on low_lat data path.
Add stats count for buffer replenish issues.

Change-Id: I8ce8c7584be211e215a05b6c5c9a1ff1b2512240
This commit is contained in:
Bojun Pan
2020-07-01 16:40:02 -07:00
parent 4045331780
commit 532fe68c9c
2 changed files with 7 additions and 1 deletions

View File

@@ -1999,6 +1999,8 @@ fail_kmem_cache_alloc:
IPA_STATS_INC_CNT(ipa3_ctx->stats.wan_repl_rx_empty); IPA_STATS_INC_CNT(ipa3_ctx->stats.wan_repl_rx_empty);
else if (sys->ep->client == IPA_CLIENT_APPS_LAN_CONS) else if (sys->ep->client == IPA_CLIENT_APPS_LAN_CONS)
IPA_STATS_INC_CNT(ipa3_ctx->stats.lan_repl_rx_empty); IPA_STATS_INC_CNT(ipa3_ctx->stats.lan_repl_rx_empty);
else if (sys->ep->client == IPA_CLIENT_APPS_WAN_LOW_LAT_CONS)
IPA_STATS_INC_CNT(ipa3_ctx->stats.low_lat_repl_rx_empty);
pr_err_ratelimited("%s sys=%pK repl ring empty\n", pr_err_ratelimited("%s sys=%pK repl ring empty\n",
__func__, sys); __func__, sys);
goto begin; goto begin;
@@ -2662,8 +2664,10 @@ static void ipa3_fast_replenish_rx_cache(struct ipa3_sys_context *sys)
IPA_STATS_INC_CNT(ipa3_ctx->stats.wan_rx_empty); IPA_STATS_INC_CNT(ipa3_ctx->stats.wan_rx_empty);
else if (sys->ep->client == IPA_CLIENT_APPS_LAN_CONS) else if (sys->ep->client == IPA_CLIENT_APPS_LAN_CONS)
IPA_STATS_INC_CNT(ipa3_ctx->stats.lan_rx_empty); IPA_STATS_INC_CNT(ipa3_ctx->stats.lan_rx_empty);
else if (sys->ep->client == IPA_CLIENT_APPS_WAN_LOW_LAT_CONS)
IPA_STATS_INC_CNT(ipa3_ctx->stats.low_lat_rx_empty);
else else
WARN_ON(1); WARN_ON_RATELIMIT_IPA(1);
queue_delayed_work(sys->wq, &sys->replenish_rx_work, queue_delayed_work(sys->wq, &sys->replenish_rx_work,
msecs_to_jiffies(1)); msecs_to_jiffies(1));
} }

View File

@@ -1408,6 +1408,8 @@ struct ipa3_stats {
u32 wan_repl_rx_empty; u32 wan_repl_rx_empty;
u32 lan_rx_empty; u32 lan_rx_empty;
u32 lan_repl_rx_empty; u32 lan_repl_rx_empty;
u32 low_lat_rx_empty;
u32 low_lat_repl_rx_empty;
u32 flow_enable; u32 flow_enable;
u32 flow_disable; u32 flow_disable;
u32 tx_non_linear; u32 tx_non_linear;