qcacmn: Printing Tx Desc in use count for DS mode
Requirement: As part of serviceability for DS, display the number of Tx descriptors currently in use by DS module via “cfg80211tool athXX txrx_stats 260” like non-DS. Snippet of log/code of Non-DS: DP_PRINT_STATS("Tx Descriptors In Use = %u", soc->stats.tx.desc_in_use); Fix: Introduced a new ops (dp_tx_ppe_ds_inuse_desc) to display the current Tx desc in use. dp_ppe_ds_inuse_desc API will be registered to dp_tx_ppe_ds_inuse_desc in initialization and it will be invoked from dp_print_soc_tx_stats API to display the in_use desc via 260 command Change-Id: I18971fc5d4cb5eb5437b012e3b89db7c9c2446b4 CRs-Fixed: 3352686
This commit is contained in:

committed by
Madan Koyyalamudi

parent
91036d45ac
commit
66fd581109
@@ -84,6 +84,15 @@ static void dp_ppeds_rings_status(struct dp_soc *soc)
|
||||
dp_print_ring_stat_from_hal(soc, &be_soc->ppe_wbm_release_ring,
|
||||
WBM2SW_RELEASE);
|
||||
}
|
||||
|
||||
static void dp_ppeds_inuse_desc(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
|
||||
DP_PRINT_STATS("PPE-DS Tx Descriptors in Use = %u num_free %u",
|
||||
be_soc->ppeds_tx_desc.num_allocated,
|
||||
be_soc->ppeds_tx_desc.num_free);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void dp_soc_cfg_attach_be(struct dp_soc *soc)
|
||||
@@ -2493,6 +2502,7 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
|
||||
arch_ops->txrx_soc_ppeds_stop = dp_ppeds_stop_soc_be;
|
||||
arch_ops->dp_register_ppeds_interrupts = dp_register_ppeds_interrupts;
|
||||
arch_ops->dp_free_ppeds_interrupts = dp_free_ppeds_interrupts;
|
||||
arch_ops->dp_tx_ppeds_inuse_desc = dp_ppeds_inuse_desc;
|
||||
#endif
|
||||
dp_init_near_full_arch_ops_be(arch_ops);
|
||||
arch_ops->get_reo_qdesc_addr = dp_rx_get_reo_qdesc_addr_be;
|
||||
|
@@ -2552,6 +2552,14 @@ void dp_print_soc_tx_stats(struct dp_soc *soc);
|
||||
*/
|
||||
void dp_print_soc_interrupt_stats(struct dp_soc *soc);
|
||||
|
||||
/**
|
||||
* dp_print_tx_ppeds_stats() - Print Tx in use stats for the soc in DS
|
||||
* @soc: dp_soc handle
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
|
||||
void dp_print_tx_ppeds_stats(struct dp_soc *soc);
|
||||
#ifdef WLAN_DP_SRNG_USAGE_WM_TRACKING
|
||||
/**
|
||||
* dp_dump_srng_high_wm_stats() - Print the ring usage high watermark stats
|
||||
|
@@ -7687,6 +7687,18 @@ dp_print_pdev_rx_stats(struct dp_pdev *pdev)
|
||||
pdev->stats.rx_buffer_pool.num_pool_bufs_replenish);
|
||||
}
|
||||
|
||||
#ifdef WLAN_SUPPORT_PPEDS
|
||||
void dp_print_tx_ppeds_stats(struct dp_soc *soc)
|
||||
{
|
||||
if (soc->arch_ops.dp_tx_ppeds_inuse_desc)
|
||||
soc->arch_ops.dp_tx_ppeds_inuse_desc(soc);
|
||||
}
|
||||
#else
|
||||
void dp_print_tx_ppeds_stats(struct dp_soc *soc)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
dp_print_soc_tx_stats(struct dp_soc *soc)
|
||||
{
|
||||
@@ -7730,6 +7742,7 @@ dp_print_soc_tx_stats(struct dp_soc *soc)
|
||||
soc->stats.tx.tx_comp_loop_pkt_limit_hit);
|
||||
DP_PRINT_STATS("Tx comp HP out of sync2 = %d",
|
||||
soc->stats.tx.hp_oos2);
|
||||
dp_print_tx_ppeds_stats(soc);
|
||||
}
|
||||
|
||||
static
|
||||
|
@@ -2034,6 +2034,7 @@ struct dp_arch_ops {
|
||||
#endif
|
||||
#ifdef WLAN_SUPPORT_PPEDS
|
||||
void (*dp_txrx_ppeds_rings_status)(struct dp_soc *soc);
|
||||
void (*dp_tx_ppeds_inuse_desc)(struct dp_soc *soc);
|
||||
#endif
|
||||
QDF_STATUS (*txrx_soc_ppeds_start)(struct dp_soc *soc);
|
||||
void (*txrx_soc_ppeds_stop)(struct dp_soc *soc);
|
||||
|
Reference in New Issue
Block a user