qcacmn: Support watermark stats for TX completion srng
Support watermark stats for TX completion srng. Change-Id: Id13bd12ec9c2723f5b5e5afffedcb939cd5e5d74 CRs-Fixed: 3635719
This commit is contained in:

committad av
Rahul Choudhary

förälder
ecf3b36a28
incheckning
d047565c37
@@ -3505,6 +3505,14 @@ void dp_print_soc_interrupt_stats(struct dp_soc *soc);
|
||||
*/
|
||||
|
||||
void dp_print_tx_ppeds_stats(struct dp_soc *soc);
|
||||
|
||||
/* REO destination ring's watermark mask */
|
||||
#define DP_SRNG_WM_MASK_REO_DST BIT(REO_DST)
|
||||
/* TX completion ring's watermark mask */
|
||||
#define DP_SRNG_WM_MASK_TX_COMP BIT(WBM2SW_RELEASE)
|
||||
/* All srng's watermark mask */
|
||||
#define DP_SRNG_WM_MASK_ALL 0xFFFFFFFF
|
||||
|
||||
#ifdef WLAN_DP_SRNG_USAGE_WM_TRACKING
|
||||
/**
|
||||
* dp_dump_srng_high_wm_stats() - Print the ring usage high watermark stats
|
||||
|
@@ -7206,6 +7206,10 @@ static inline void dp_srng_clear_ring_usage_wm_stats(struct dp_soc *soc)
|
||||
for (ring = 0; ring < soc->num_reo_dest_rings; ring++)
|
||||
hal_srng_clear_ring_usage_wm_locked(soc->hal_soc,
|
||||
soc->reo_dest_ring[ring].hal_srng);
|
||||
|
||||
for (ring = 0; ring < soc->num_tx_comp_rings; ring++)
|
||||
hal_srng_clear_ring_usage_wm_locked(soc->hal_soc,
|
||||
soc->tx_comp_ring[ring].hal_srng);
|
||||
}
|
||||
#else
|
||||
static inline void dp_srng_clear_ring_usage_wm_stats(struct dp_soc *soc)
|
||||
@@ -7812,7 +7816,7 @@ dp_print_host_stats(struct dp_vdev *vdev,
|
||||
break;
|
||||
case TXRX_SRNG_USAGE_WM_STATS:
|
||||
/* Dump usage watermark stats for all SRNGs */
|
||||
dp_dump_srng_high_wm_stats(soc, 0xFF);
|
||||
dp_dump_srng_high_wm_stats(soc, DP_SRNG_WM_MASK_ALL);
|
||||
break;
|
||||
case TXRX_PEER_STATS:
|
||||
dp_print_per_link_stats((struct cdp_soc_t *)pdev->soc,
|
||||
@@ -10154,7 +10158,9 @@ static QDF_STATUS dp_txrx_dump_stats(struct cdp_soc_t *psoc, uint16_t value,
|
||||
dp_print_reg_write_stats(soc);
|
||||
dp_pdev_print_tx_delay_stats(soc);
|
||||
/* Dump usage watermark stats for core TX/RX SRNGs */
|
||||
dp_dump_srng_high_wm_stats(soc, (1 << REO_DST));
|
||||
dp_dump_srng_high_wm_stats(soc,
|
||||
DP_SRNG_WM_MASK_REO_DST |
|
||||
DP_SRNG_WM_MASK_TX_COMP);
|
||||
if (soc->cdp_soc.ol_ops->dp_print_fisa_stats)
|
||||
soc->cdp_soc.ol_ops->dp_print_fisa_stats(
|
||||
CDP_FISA_STATS_ID_ERR_STATS);
|
||||
|
@@ -8363,7 +8363,7 @@ void dp_dump_srng_high_wm_stats(struct dp_soc *soc, uint64_t srng_mask)
|
||||
"ring_id", "high_wm", "time", "<50", "50-60", "60-70",
|
||||
"70-80", "80-90", "90-100");
|
||||
|
||||
if (srng_mask & (1 << REO_DST)) {
|
||||
if (srng_mask & DP_SRNG_WM_MASK_REO_DST) {
|
||||
for (ring = 0; ring < soc->num_reo_dest_rings; ring++) {
|
||||
pos = 0;
|
||||
pos += hal_dump_srng_high_wm_stats(soc->hal_soc,
|
||||
@@ -8372,6 +8372,16 @@ void dp_dump_srng_high_wm_stats(struct dp_soc *soc, uint64_t srng_mask)
|
||||
dp_info("%s", srng_high_wm_str);
|
||||
}
|
||||
}
|
||||
|
||||
if (srng_mask & DP_SRNG_WM_MASK_TX_COMP) {
|
||||
for (ring = 0; ring < soc->num_tx_comp_rings; ring++) {
|
||||
pos = 0;
|
||||
pos += hal_dump_srng_high_wm_stats(soc->hal_soc,
|
||||
soc->tx_comp_ring[ring].hal_srng,
|
||||
buf, buf_len, pos);
|
||||
dp_info("%s", srng_high_wm_str);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -6637,6 +6637,8 @@ more_data:
|
||||
return 0;
|
||||
}
|
||||
|
||||
hal_srng_update_ring_usage_wm_no_lock(soc->hal_soc, hal_ring_hdl);
|
||||
|
||||
if (!num_avail_for_reap)
|
||||
num_avail_for_reap = hal_srng_dst_num_valid(hal_soc,
|
||||
hal_ring_hdl, 0);
|
||||
|
Referens i nytt ärende
Block a user