qcacmn: add partner vdev debug prints in TXRX_AST_STATS

add partner vdev debug prints in TXRX_AST_STATS

Change-Id: Icf3cc557572519e43e3135e2b22ff457982a8d32
CRs-Fixed: 3571207
This commit is contained in:
Mukul Dhiman
2023-07-26 14:39:25 +05:30
committed by Rahul Choudhary
parent 3ef9a59299
commit 59ec56d44f
5 changed files with 52 additions and 0 deletions

View File

@@ -2900,6 +2900,7 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
dp_initialize_arch_ops_be_mlo(arch_ops); dp_initialize_arch_ops_be_mlo(arch_ops);
#ifdef WLAN_MLO_MULTI_CHIP #ifdef WLAN_MLO_MULTI_CHIP
arch_ops->dp_get_soc_by_chip_id = dp_get_soc_by_chip_id_be; arch_ops->dp_get_soc_by_chip_id = dp_get_soc_by_chip_id_be;
arch_ops->dp_mlo_print_ptnr_info = dp_mlo_debug_print_ptnr_info;
#endif #endif
arch_ops->dp_soc_get_num_soc = dp_soc_get_num_soc_be; arch_ops->dp_soc_get_num_soc = dp_soc_get_num_soc_be;
arch_ops->dp_peer_rx_reorder_queue_setup = arch_ops->dp_peer_rx_reorder_queue_setup =

View File

@@ -1237,6 +1237,24 @@ dp_soc_get_by_idle_bm_id(struct dp_soc *soc, uint8_t idle_bm_id)
} }
#ifdef WLAN_MLO_MULTI_CHIP #ifdef WLAN_MLO_MULTI_CHIP
static void dp_print_mlo_partner_list(struct dp_vdev_be *be_vdev,
struct dp_vdev *partner_vdev,
void *arg)
{
struct dp_vdev_be *partner_vdev_be = NULL;
struct dp_soc_be *partner_soc_be = NULL;
partner_vdev_be = dp_get_be_vdev_from_dp_vdev(partner_vdev);
partner_soc_be = dp_get_be_soc_from_dp_soc(partner_vdev->pdev->soc);
DP_PRINT_STATS("is_bridge_vap = %s, mcast_primary = %s, vdev_id = %d, pdev_id = %d, chip_id = %d",
partner_vdev->is_bridge_vdev ? "true" : "false",
partner_vdev_be->mcast_primary ? "true" : "false",
partner_vdev->vdev_id,
partner_vdev->pdev->pdev_id,
partner_soc_be->mlo_chip_id);
}
void dp_mlo_iter_ptnr_vdev(struct dp_soc_be *be_soc, void dp_mlo_iter_ptnr_vdev(struct dp_soc_be *be_soc,
struct dp_vdev_be *be_vdev, struct dp_vdev_be *be_vdev,
dp_ptnr_vdev_iter_func func, dp_ptnr_vdev_iter_func func,
@@ -1301,6 +1319,27 @@ void dp_mlo_iter_ptnr_vdev(struct dp_soc_be *be_soc,
} }
qdf_export_symbol(dp_mlo_iter_ptnr_vdev); qdf_export_symbol(dp_mlo_iter_ptnr_vdev);
void dp_mlo_debug_print_ptnr_info(struct dp_vdev *vdev)
{
struct dp_vdev_be *be_vdev = NULL;
struct dp_soc_be *be_soc = NULL;
be_soc = dp_get_be_soc_from_dp_soc(vdev->pdev->soc);
be_vdev = dp_get_be_vdev_from_dp_vdev(vdev);
DP_PRINT_STATS("self vdev is_bridge_vap = %s, mcast_primary = %s, vdev = %d, pdev_id = %d, chip_id = %d",
vdev->is_bridge_vdev ? "true" : "false",
be_vdev->mcast_primary ? "true" : "false",
vdev->vdev_id,
vdev->pdev->pdev_id,
dp_mlo_get_chip_id(vdev->pdev->soc));
dp_mlo_iter_ptnr_vdev(be_soc, be_vdev,
dp_print_mlo_partner_list,
NULL, DP_MOD_ID_GENERIC_STATS,
DP_ALL_VDEV_ITER);
}
#endif #endif
#ifdef WLAN_MCAST_MLO #ifdef WLAN_MCAST_MLO

View File

@@ -217,4 +217,12 @@ int32_t dp_mlo_get_delta_tqm_wrt_mlo_offset(struct dp_soc *soc);
QDF_STATUS QDF_STATUS
dp_get_interface_stats_be(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, dp_get_interface_stats_be(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
void *buf, bool is_aggregate); void *buf, bool is_aggregate);
/*
* dp_mlo_debug_print_ptnr_info() - print partner info
* @vdev: DP VDEV
*
* Return: none
*/
void dp_mlo_debug_print_ptnr_info(struct dp_vdev *vdev);
#endif /* __DP_MLO_H */ #endif /* __DP_MLO_H */

View File

@@ -6942,6 +6942,8 @@ dp_print_host_stats(struct dp_vdev *vdev,
dp_print_ast_stats(pdev->soc); dp_print_ast_stats(pdev->soc);
dp_print_mec_stats(pdev->soc); dp_print_mec_stats(pdev->soc);
dp_print_peer_table(vdev); dp_print_peer_table(vdev);
if (soc->arch_ops.dp_mlo_print_ptnr_info)
soc->arch_ops.dp_mlo_print_ptnr_info(vdev);
break; break;
case TXRX_SRNG_PTR_STATS: case TXRX_SRNG_PTR_STATS:
dp_print_ring_stats(pdev); dp_print_ring_stats(pdev);

View File

@@ -2248,6 +2248,7 @@ enum dp_context_type {
* @dp_update_ring_hptp: Update rings hptp during suspend/resume * @dp_update_ring_hptp: Update rings hptp during suspend/resume
* @dp_get_fst_cmem_base: Get CMEM base address for FISA * @dp_get_fst_cmem_base: Get CMEM base address for FISA
* @dp_flush_tx_ring: Flush TCL ring HP * @dp_flush_tx_ring: Flush TCL ring HP
* @dp_mlo_print_ptnr_info: print partner vdev info
*/ */
struct dp_arch_ops { struct dp_arch_ops {
/* INIT/DEINIT Arch Ops */ /* INIT/DEINIT Arch Ops */
@@ -2508,6 +2509,7 @@ struct dp_arch_ops {
void (*dp_update_ring_hptp)(struct dp_soc *soc, bool force_flush_tx); void (*dp_update_ring_hptp)(struct dp_soc *soc, bool force_flush_tx);
uint64_t (*dp_get_fst_cmem_base)(struct dp_soc *soc, uint64_t size); uint64_t (*dp_get_fst_cmem_base)(struct dp_soc *soc, uint64_t size);
int (*dp_flush_tx_ring)(struct dp_pdev *pdev, int ring_id); int (*dp_flush_tx_ring)(struct dp_pdev *pdev, int ring_id);
void (*dp_mlo_print_ptnr_info)(struct dp_vdev *vdev);
}; };
/** /**