Sfoglia il codice sorgente

qcacmn: Log vdev ref_cnt in peer creation and deletion

Currently we cannot track vdev ref_cnt change with
peer creation and deletion. This change will help track
the vdev ref_cnt and detect if any pending unreference is
causing inactive vdevs.

Change-Id: I5548667b0f1541efb583f912f6b7ef8a88853f5b
CRs-Fixed: 3303571
Namita Nair 2 anni fa
parent
commit
0d030c5c44
1 ha cambiato i file con 11 aggiunte e 5 eliminazioni
  1. 11 5
      dp/wifi3.0/dp_main.c

+ 11 - 5
dp/wifi3.0/dp_main.c

@@ -7936,8 +7936,10 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
 	/* Initialize the peer state */
 	peer->state = OL_TXRX_PEER_STATE_DISC;
 
-	dp_info("vdev %pK created peer %pK ("QDF_MAC_ADDR_FMT") ref_cnt: %d",
+	dp_info("vdev %pK created peer %pK ("QDF_MAC_ADDR_FMT") vdev_ref_cnt "
+		"%d peer_ref_cnt: %d",
 		vdev, peer, QDF_MAC_ADDR_REF(peer->mac_addr.raw),
+		qdf_atomic_read(&vdev->ref_cnt),
 		qdf_atomic_read(&peer->ref_cnt));
 	/*
 	 * For every peer MAp message search and set if bss_peer
@@ -8049,8 +8051,10 @@ QDF_STATUS dp_peer_mlo_setup(
 			 * primary link dp_vdev is not same one
 			 * during mld peer creation.
 			 */
-
-			/* release the ref to original dp_vdev */
+			dp_info("Primary link is not the first link. vdev: %pK,"
+				"vdev_ref_cnt %d", mld_peer->vdev,
+				 mld_peer->vdev->ref_cnt);
+			/* relase the ref to original dp_vdev */
 			dp_vdev_unref_delete(soc, mld_peer->vdev,
 					     DP_MOD_ID_CHILD);
 			/*
@@ -8774,8 +8778,8 @@ void dp_peer_unref_delete(struct dp_peer *peer, enum dp_mod_id mod_id)
 		 */
 		QDF_ASSERT(peer_id == HTT_INVALID_PEER);
 
-		dp_peer_debug("Deleting peer %pK ("QDF_MAC_ADDR_FMT")", peer,
-			      QDF_MAC_ADDR_REF(peer->mac_addr.raw));
+		dp_peer_info("Deleting peer %pK ("QDF_MAC_ADDR_FMT")", peer,
+			     QDF_MAC_ADDR_REF(peer->mac_addr.raw));
 
 		dp_peer_sawf_ctx_free(soc, peer);
 
@@ -8812,6 +8816,8 @@ void dp_peer_unref_delete(struct dp_peer *peer, enum dp_mod_id mod_id)
 		/*
 		 * Decrement ref count taken at peer create
 		 */
+		dp_peer_info("Deleted peer. Unref vdev %pK, vdev_ref_cnt %d",
+			     vdev, qdf_atomic_read(&vdev->ref_cnt));
 		dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CHILD);
 	}
 }