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:

کامیت شده توسط
Rahul Choudhary

والد
ecf3b36a28
کامیت
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);
|
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
|
#ifdef WLAN_DP_SRNG_USAGE_WM_TRACKING
|
||||||
/**
|
/**
|
||||||
* dp_dump_srng_high_wm_stats() - Print the ring usage high watermark stats
|
* 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++)
|
for (ring = 0; ring < soc->num_reo_dest_rings; ring++)
|
||||||
hal_srng_clear_ring_usage_wm_locked(soc->hal_soc,
|
hal_srng_clear_ring_usage_wm_locked(soc->hal_soc,
|
||||||
soc->reo_dest_ring[ring].hal_srng);
|
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
|
#else
|
||||||
static inline void dp_srng_clear_ring_usage_wm_stats(struct dp_soc *soc)
|
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;
|
break;
|
||||||
case TXRX_SRNG_USAGE_WM_STATS:
|
case TXRX_SRNG_USAGE_WM_STATS:
|
||||||
/* Dump usage watermark stats for all SRNGs */
|
/* 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;
|
break;
|
||||||
case TXRX_PEER_STATS:
|
case TXRX_PEER_STATS:
|
||||||
dp_print_per_link_stats((struct cdp_soc_t *)pdev->soc,
|
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_print_reg_write_stats(soc);
|
||||||
dp_pdev_print_tx_delay_stats(soc);
|
dp_pdev_print_tx_delay_stats(soc);
|
||||||
/* Dump usage watermark stats for core TX/RX SRNGs */
|
/* 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)
|
if (soc->cdp_soc.ol_ops->dp_print_fisa_stats)
|
||||||
soc->cdp_soc.ol_ops->dp_print_fisa_stats(
|
soc->cdp_soc.ol_ops->dp_print_fisa_stats(
|
||||||
CDP_FISA_STATS_ID_ERR_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",
|
"ring_id", "high_wm", "time", "<50", "50-60", "60-70",
|
||||||
"70-80", "80-90", "90-100");
|
"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++) {
|
for (ring = 0; ring < soc->num_reo_dest_rings; ring++) {
|
||||||
pos = 0;
|
pos = 0;
|
||||||
pos += hal_dump_srng_high_wm_stats(soc->hal_soc,
|
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);
|
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
|
#endif
|
||||||
|
|
||||||
|
@@ -6637,6 +6637,8 @@ more_data:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hal_srng_update_ring_usage_wm_no_lock(soc->hal_soc, hal_ring_hdl);
|
||||||
|
|
||||||
if (!num_avail_for_reap)
|
if (!num_avail_for_reap)
|
||||||
num_avail_for_reap = hal_srng_dst_num_valid(hal_soc,
|
num_avail_for_reap = hal_srng_dst_num_valid(hal_soc,
|
||||||
hal_ring_hdl, 0);
|
hal_ring_hdl, 0);
|
||||||
|
مرجع در شماره جدید
Block a user