qcacmn: Add support to track high watermark for SRNGs

Add support to track the high watermark for the number
of entries which are used at any given instant. This helps
in identifying if the ring size is sufficient or is being
full for certain use-cases.

Change-Id: Id3ffa52c653696699fbcfbb556a815d5f7908863
CRs-Fixed: 3235115
这个提交包含在:
Rakesh Pillai
2022-07-01 07:16:57 -07:00
提交者 Madan Koyyalamudi
父节点 162ab8974a
当前提交 9ba8236444
修改 8 个文件,包含 294 行新增2 行删除

查看文件

@@ -7610,6 +7610,36 @@ int dp_fill_tx_interrupt_ctx_stats(struct dp_intr *intr_ctx,
return pos;
}
#ifdef WLAN_DP_SRNG_USAGE_WM_TRACKING
#define DP_SRNG_HIGH_WM_STATS_STRING_LEN 512
void dp_dump_srng_high_wm_stats(struct dp_soc *soc, uint64_t srng_mask)
{
char *buf;
int ring, pos, buf_len;
char srng_high_wm_str[DP_SRNG_HIGH_WM_STATS_STRING_LEN] = {'\0'};
if (!srng_mask)
return;
buf = srng_high_wm_str;
buf_len = DP_SRNG_HIGH_WM_STATS_STRING_LEN;
dp_info("%8s %7s %12s %10s %10s %10s %10s %10s %10s",
"ring_id", "high_wm", "time", "<50", "50-60", "60-70",
"70-80", "80-90", "90-100");
if (srng_mask & (1 << REO_DST)) {
for (ring = 0; ring < soc->num_reo_dest_rings; ring++) {
pos = 0;
pos += hal_dump_srng_high_wm_stats(soc->hal_soc,
soc->reo_dest_ring[ring].hal_srng,
buf, buf_len, pos);
dp_info("%s", srng_high_wm_str);
}
}
}
#endif
#define DP_INT_CTX_STATS_STRING_LEN 512
void dp_print_soc_interrupt_stats(struct dp_soc *soc)
{