All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ath11k: Update tx descriptor search index properly
@ 2020-12-18 15:24 ` Karthikeyan Periyasamy
  0 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan Periyasamy @ 2020-12-18 15:24 UTC (permalink / raw)
  To: ath11k; +Cc: linux-wireless, Karthikeyan Periyasamy

Tx descriptor search index field should be updated with hw peer id
and not by AST Hash. Incorrect search index causes throughput degradation
in all the platforms. so updated the search index field with hw peer id,
which is a common change applicable for all the platforms.

Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1

Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/core.h   | 1 +
 drivers/net/wireless/ath/ath11k/dp_rx.c  | 8 ++++++--
 drivers/net/wireless/ath/ath11k/dp_tx.c  | 1 +
 drivers/net/wireless/ath/ath11k/hal_tx.c | 2 ++
 drivers/net/wireless/ath/ath11k/hal_tx.h | 1 +
 drivers/net/wireless/ath/ath11k/peer.c   | 9 +++++++--
 drivers/net/wireless/ath/ath11k/peer.h   | 3 ++-
 7 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 9db375b..8d29845 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -200,6 +200,7 @@ struct ath11k_vif {
 	u32 beacon_interval;
 	u32 dtim_period;
 	u16 ast_hash;
+	u16 ast_idx;
 	u16 tcl_metadata;
 	u8 hal_addr_search_flags;
 	u8 search_type;
diff --git a/drivers/net/wireless/ath/ath11k/dp_rx.c b/drivers/net/wireless/ath/ath11k/dp_rx.c
index 42328a0..2d90b80 100644
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1652,6 +1652,7 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab,
 	u8 mac_addr[ETH_ALEN];
 	u16 peer_mac_h16;
 	u16 ast_hash;
+	u16 hw_peer_id;
 
 	ath11k_dbg(ab, ATH11K_DBG_DP_HTT, "dp_htt rx msg type :0x%0x\n", type);
 
@@ -1672,7 +1673,7 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab,
 					 resp->peer_map_ev.info1);
 		ath11k_dp_get_mac_addr(resp->peer_map_ev.mac_addr_l32,
 				       peer_mac_h16, mac_addr);
-		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, 0);
+		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, 0, 0);
 		break;
 	case HTT_T2H_MSG_TYPE_PEER_MAP2:
 		vdev_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO_VDEV_ID,
@@ -1685,7 +1686,10 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab,
 				       peer_mac_h16, mac_addr);
 		ast_hash = FIELD_GET(HTT_T2H_PEER_MAP_INFO2_AST_HASH_VAL,
 				     resp->peer_map_ev.info2);
-		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, ast_hash);
+		hw_peer_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO1_HW_PEER_ID,
+				       resp->peer_map_ev.info1);
+		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, ast_hash,
+				      hw_peer_id);
 		break;
 	case HTT_T2H_MSG_TYPE_PEER_UNMAP:
 	case HTT_T2H_MSG_TYPE_PEER_UNMAP2:
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 6a3fcea..1a0b9be 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -165,6 +165,7 @@ int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif,
 	ti.pkt_offset = 0;
 	ti.lmac_id = ar->lmac_id;
 	ti.bss_ast_hash = arvif->ast_hash;
+	ti.bss_ast_idx = arvif->ast_idx;
 	ti.dscp_tid_tbl_idx = 0;
 
 	if (skb->ip_summed == CHECKSUM_PARTIAL &&
diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.c b/drivers/net/wireless/ath/ath11k/hal_tx.c
index a755aa8..569e790 100644
--- a/drivers/net/wireless/ath/ath11k/hal_tx.c
+++ b/drivers/net/wireless/ath/ath11k/hal_tx.c
@@ -71,6 +71,8 @@ void ath11k_hal_tx_cmd_desc_setup(struct ath11k_base *ab, void *cmd,
 	tcl_cmd->info3 = FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_DSCP_TID_TABLE_IDX,
 				    ti->dscp_tid_tbl_idx) |
 			 FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_SEARCH_INDEX,
+				    ti->bss_ast_idx) |
+			 FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_CACHE_SET_NUM,
 				    ti->bss_ast_hash);
 	tcl_cmd->info4 = 0;
 }
diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.h b/drivers/net/wireless/ath/ath11k/hal_tx.h
index d4760a2..c291e59 100644
--- a/drivers/net/wireless/ath/ath11k/hal_tx.h
+++ b/drivers/net/wireless/ath/ath11k/hal_tx.h
@@ -29,6 +29,7 @@ struct hal_tx_info {
 	u32 flags1; /* %HAL_TCL_DATA_CMD_INFO2_ */
 	u16 addr_search_flags; /* %HAL_TCL_DATA_CMD_INFO0_ADDR(X/Y)_ */
 	u16 bss_ast_hash;
+	u16 bss_ast_idx;
 	u8 tid;
 	u8 search_type; /* %HAL_TX_ADDR_SEARCH_ */
 	u8 lmac_id;
diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c
index b69e7eb..f49abefa 100644
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -118,7 +118,7 @@ void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id)
 }
 
 void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
-			   u8 *mac_addr, u16 ast_hash)
+			   u8 *mac_addr, u16 ast_hash, u16 hw_peer_id)
 {
 	struct ath11k_peer *peer;
 
@@ -132,6 +132,7 @@ void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
 		peer->vdev_id = vdev_id;
 		peer->peer_id = peer_id;
 		peer->ast_hash = ast_hash;
+		peer->hw_peer_id = hw_peer_id;
 		ether_addr_copy(peer->addr, mac_addr);
 		list_add(&peer->list, &ab->peers);
 		wake_up(&ab->peer_mapping_wq);
@@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif,
 
 	peer->pdev_idx = ar->pdev_idx;
 	peer->sta = sta;
-	arvif->ast_hash = peer->ast_hash;
+
+	if (arvif->vif->type == NL80211_IFTYPE_STATION) {
+		arvif->ast_hash = peer->ast_hash;
+		arvif->ast_idx = peer->hw_peer_id;
+	}
 
 	peer->sec_type = HAL_ENCRYPT_TYPE_OPEN;
 	peer->sec_type_grp = HAL_ENCRYPT_TYPE_OPEN;
diff --git a/drivers/net/wireless/ath/ath11k/peer.h b/drivers/net/wireless/ath/ath11k/peer.h
index 8553ed0..619db00 100644
--- a/drivers/net/wireless/ath/ath11k/peer.h
+++ b/drivers/net/wireless/ath/ath11k/peer.h
@@ -14,6 +14,7 @@ struct ath11k_peer {
 	int peer_id;
 	u16 ast_hash;
 	u8 pdev_idx;
+	u16 hw_peer_id;
 
 	/* protected by ab->data_lock */
 	struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1];
@@ -31,7 +32,7 @@ struct ath11k_peer {
 
 void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id);
 void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
-			   u8 *mac_addr, u16 ast_hash);
+			   u8 *mac_addr, u16 ast_hash, u16 hw_peer_id);
 struct ath11k_peer *ath11k_peer_find(struct ath11k_base *ab, int vdev_id,
 				     const u8 *addr);
 struct ath11k_peer *ath11k_peer_find_by_addr(struct ath11k_base *ab,
-- 
2.7.4


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH] ath11k: Update tx descriptor search index properly
@ 2020-12-18 15:24 ` Karthikeyan Periyasamy
  0 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan Periyasamy @ 2020-12-18 15:24 UTC (permalink / raw)
  To: ath11k; +Cc: Karthikeyan Periyasamy, linux-wireless

Tx descriptor search index field should be updated with hw peer id
and not by AST Hash. Incorrect search index causes throughput degradation
in all the platforms. so updated the search index field with hw peer id,
which is a common change applicable for all the platforms.

Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1

Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/core.h   | 1 +
 drivers/net/wireless/ath/ath11k/dp_rx.c  | 8 ++++++--
 drivers/net/wireless/ath/ath11k/dp_tx.c  | 1 +
 drivers/net/wireless/ath/ath11k/hal_tx.c | 2 ++
 drivers/net/wireless/ath/ath11k/hal_tx.h | 1 +
 drivers/net/wireless/ath/ath11k/peer.c   | 9 +++++++--
 drivers/net/wireless/ath/ath11k/peer.h   | 3 ++-
 7 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 9db375b..8d29845 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -200,6 +200,7 @@ struct ath11k_vif {
 	u32 beacon_interval;
 	u32 dtim_period;
 	u16 ast_hash;
+	u16 ast_idx;
 	u16 tcl_metadata;
 	u8 hal_addr_search_flags;
 	u8 search_type;
diff --git a/drivers/net/wireless/ath/ath11k/dp_rx.c b/drivers/net/wireless/ath/ath11k/dp_rx.c
index 42328a0..2d90b80 100644
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1652,6 +1652,7 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab,
 	u8 mac_addr[ETH_ALEN];
 	u16 peer_mac_h16;
 	u16 ast_hash;
+	u16 hw_peer_id;
 
 	ath11k_dbg(ab, ATH11K_DBG_DP_HTT, "dp_htt rx msg type :0x%0x\n", type);
 
@@ -1672,7 +1673,7 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab,
 					 resp->peer_map_ev.info1);
 		ath11k_dp_get_mac_addr(resp->peer_map_ev.mac_addr_l32,
 				       peer_mac_h16, mac_addr);
-		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, 0);
+		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, 0, 0);
 		break;
 	case HTT_T2H_MSG_TYPE_PEER_MAP2:
 		vdev_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO_VDEV_ID,
@@ -1685,7 +1686,10 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab,
 				       peer_mac_h16, mac_addr);
 		ast_hash = FIELD_GET(HTT_T2H_PEER_MAP_INFO2_AST_HASH_VAL,
 				     resp->peer_map_ev.info2);
-		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, ast_hash);
+		hw_peer_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO1_HW_PEER_ID,
+				       resp->peer_map_ev.info1);
+		ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, ast_hash,
+				      hw_peer_id);
 		break;
 	case HTT_T2H_MSG_TYPE_PEER_UNMAP:
 	case HTT_T2H_MSG_TYPE_PEER_UNMAP2:
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 6a3fcea..1a0b9be 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -165,6 +165,7 @@ int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif,
 	ti.pkt_offset = 0;
 	ti.lmac_id = ar->lmac_id;
 	ti.bss_ast_hash = arvif->ast_hash;
+	ti.bss_ast_idx = arvif->ast_idx;
 	ti.dscp_tid_tbl_idx = 0;
 
 	if (skb->ip_summed == CHECKSUM_PARTIAL &&
diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.c b/drivers/net/wireless/ath/ath11k/hal_tx.c
index a755aa8..569e790 100644
--- a/drivers/net/wireless/ath/ath11k/hal_tx.c
+++ b/drivers/net/wireless/ath/ath11k/hal_tx.c
@@ -71,6 +71,8 @@ void ath11k_hal_tx_cmd_desc_setup(struct ath11k_base *ab, void *cmd,
 	tcl_cmd->info3 = FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_DSCP_TID_TABLE_IDX,
 				    ti->dscp_tid_tbl_idx) |
 			 FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_SEARCH_INDEX,
+				    ti->bss_ast_idx) |
+			 FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_CACHE_SET_NUM,
 				    ti->bss_ast_hash);
 	tcl_cmd->info4 = 0;
 }
diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.h b/drivers/net/wireless/ath/ath11k/hal_tx.h
index d4760a2..c291e59 100644
--- a/drivers/net/wireless/ath/ath11k/hal_tx.h
+++ b/drivers/net/wireless/ath/ath11k/hal_tx.h
@@ -29,6 +29,7 @@ struct hal_tx_info {
 	u32 flags1; /* %HAL_TCL_DATA_CMD_INFO2_ */
 	u16 addr_search_flags; /* %HAL_TCL_DATA_CMD_INFO0_ADDR(X/Y)_ */
 	u16 bss_ast_hash;
+	u16 bss_ast_idx;
 	u8 tid;
 	u8 search_type; /* %HAL_TX_ADDR_SEARCH_ */
 	u8 lmac_id;
diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c
index b69e7eb..f49abefa 100644
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -118,7 +118,7 @@ void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id)
 }
 
 void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
-			   u8 *mac_addr, u16 ast_hash)
+			   u8 *mac_addr, u16 ast_hash, u16 hw_peer_id)
 {
 	struct ath11k_peer *peer;
 
@@ -132,6 +132,7 @@ void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
 		peer->vdev_id = vdev_id;
 		peer->peer_id = peer_id;
 		peer->ast_hash = ast_hash;
+		peer->hw_peer_id = hw_peer_id;
 		ether_addr_copy(peer->addr, mac_addr);
 		list_add(&peer->list, &ab->peers);
 		wake_up(&ab->peer_mapping_wq);
@@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif,
 
 	peer->pdev_idx = ar->pdev_idx;
 	peer->sta = sta;
-	arvif->ast_hash = peer->ast_hash;
+
+	if (arvif->vif->type == NL80211_IFTYPE_STATION) {
+		arvif->ast_hash = peer->ast_hash;
+		arvif->ast_idx = peer->hw_peer_id;
+	}
 
 	peer->sec_type = HAL_ENCRYPT_TYPE_OPEN;
 	peer->sec_type_grp = HAL_ENCRYPT_TYPE_OPEN;
diff --git a/drivers/net/wireless/ath/ath11k/peer.h b/drivers/net/wireless/ath/ath11k/peer.h
index 8553ed0..619db00 100644
--- a/drivers/net/wireless/ath/ath11k/peer.h
+++ b/drivers/net/wireless/ath/ath11k/peer.h
@@ -14,6 +14,7 @@ struct ath11k_peer {
 	int peer_id;
 	u16 ast_hash;
 	u8 pdev_idx;
+	u16 hw_peer_id;
 
 	/* protected by ab->data_lock */
 	struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1];
@@ -31,7 +32,7 @@ struct ath11k_peer {
 
 void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id);
 void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
-			   u8 *mac_addr, u16 ast_hash);
+			   u8 *mac_addr, u16 ast_hash, u16 hw_peer_id);
 struct ath11k_peer *ath11k_peer_find(struct ath11k_base *ab, int vdev_id,
 				     const u8 *addr);
 struct ath11k_peer *ath11k_peer_find_by_addr(struct ath11k_base *ab,
-- 
2.7.4


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2020-12-18 15:24 ` Karthikeyan Periyasamy
@ 2020-12-18 19:23   ` Peter Oh
  -1 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2020-12-18 19:23 UTC (permalink / raw)
  To: Karthikeyan Periyasamy, ath11k; +Cc: linux-wireless


On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
> Tx descriptor search index field should be updated with hw peer id
> and not by AST Hash. Incorrect search index causes throughput degradation
> in all the platforms. so updated the search index field with hw peer id,
> which is a common change applicable for all the platforms.
>
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>
> diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c
> index b69e7eb..f49abefa 100644
> --- a/drivers/net/wireless/ath/ath11k/peer.c
> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>
> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif,
>   
>   	peer->pdev_idx = ar->pdev_idx;
>   	peer->sta = sta;
> -	arvif->ast_hash = peer->ast_hash;
> +
> +	if (arvif->vif->type == NL80211_IFTYPE_STATION) {
> +		arvif->ast_hash = peer->ast_hash;
> +		arvif->ast_idx = peer->hw_peer_id;
> +	}

How about non STATION type?


Thanks,

Peter


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2020-12-18 19:23   ` Peter Oh
  0 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2020-12-18 19:23 UTC (permalink / raw)
  To: Karthikeyan Periyasamy, ath11k; +Cc: linux-wireless


On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
> Tx descriptor search index field should be updated with hw peer id
> and not by AST Hash. Incorrect search index causes throughput degradation
> in all the platforms. so updated the search index field with hw peer id,
> which is a common change applicable for all the platforms.
>
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>
> diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c
> index b69e7eb..f49abefa 100644
> --- a/drivers/net/wireless/ath/ath11k/peer.c
> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>
> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif,
>   
>   	peer->pdev_idx = ar->pdev_idx;
>   	peer->sta = sta;
> -	arvif->ast_hash = peer->ast_hash;
> +
> +	if (arvif->vif->type == NL80211_IFTYPE_STATION) {
> +		arvif->ast_hash = peer->ast_hash;
> +		arvif->ast_idx = peer->hw_peer_id;
> +	}

How about non STATION type?


Thanks,

Peter


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2020-12-18 15:24 ` Karthikeyan Periyasamy
@ 2020-12-18 19:41   ` Peter Oh
  -1 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2020-12-18 19:41 UTC (permalink / raw)
  To: Karthikeyan Periyasamy, ath11k; +Cc: linux-wireless


On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
> Tx descriptor search index field should be updated with hw peer id
> and not by AST Hash. Incorrect search index causes throughput degradation
> in all the platforms. so updated the search index field with hw peer id,
> which is a common change applicable for all the platforms.

Could you be more details under what conditions you observed the 
throughput degradation?


Thanks,

Peter


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2020-12-18 19:41   ` Peter Oh
  0 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2020-12-18 19:41 UTC (permalink / raw)
  To: Karthikeyan Periyasamy, ath11k; +Cc: linux-wireless


On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
> Tx descriptor search index field should be updated with hw peer id
> and not by AST Hash. Incorrect search index causes throughput degradation
> in all the platforms. so updated the search index field with hw peer id,
> which is a common change applicable for all the platforms.

Could you be more details under what conditions you observed the 
throughput degradation?


Thanks,

Peter


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2020-12-18 15:24 ` Karthikeyan Periyasamy
                   ` (2 preceding siblings ...)
  (?)
@ 2021-01-26 15:59 ` Kalle Valo
  -1 siblings, 0 replies; 22+ messages in thread
From: Kalle Valo @ 2021-01-26 15:59 UTC (permalink / raw)
  To: Karthikeyan Periyasamy; +Cc: ath11k, linux-wireless, Karthikeyan Periyasamy

Karthikeyan Periyasamy <periyasa@codeaurora.org> wrote:

> Tx descriptor search index field should be updated with hw peer id
> and not by AST Hash. Incorrect search index causes throughput degradation
> in all the platforms. so updated the search index field with hw peer id,
> which is a common change applicable for all the platforms.
> 
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
> 
> Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Please reply to Peter's questions.

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/1608305041-21946-1-git-send-email-periyasa@codeaurora.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2020-12-18 15:24 ` Karthikeyan Periyasamy
                   ` (3 preceding siblings ...)
  (?)
@ 2021-01-26 15:59 ` Kalle Valo
  -1 siblings, 0 replies; 22+ messages in thread
From: Kalle Valo @ 2021-01-26 15:59 UTC (permalink / raw)
  To: Karthikeyan Periyasamy; +Cc: Karthikeyan Periyasamy, linux-wireless, ath11k

Karthikeyan Periyasamy <periyasa@codeaurora.org> wrote:

> Tx descriptor search index field should be updated with hw peer id
> and not by AST Hash. Incorrect search index causes throughput degradation
> in all the platforms. so updated the search index field with hw peer id,
> which is a common change applicable for all the platforms.
> 
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
> 
> Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Please reply to Peter's questions.

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/1608305041-21946-1-git-send-email-periyasa@codeaurora.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2020-12-18 19:23   ` Peter Oh
@ 2021-01-27  2:46     ` Karthikeyan periyasamy
  -1 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-01-27  2:46 UTC (permalink / raw)
  To: Peter Oh; +Cc: ath11k, linux-wireless

On 2020-12-19 00:53, Peter Oh wrote:
> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>> Tx descriptor search index field should be updated with hw peer id
>> and not by AST Hash. Incorrect search index causes throughput 
>> degradation
>> in all the platforms. so updated the search index field with hw peer 
>> id,
>> which is a common change applicable for all the platforms.
>> 
>> Tested-on: IPQ8074 hw2.0 AHB 
>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>> 
>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>> b/drivers/net/wireless/ath/ath11k/peer.c
>> index b69e7eb..f49abefa 100644
>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>> 
>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, struct 
>> ath11k_vif *arvif,
>>     	peer->pdev_idx = ar->pdev_idx;
>>   	peer->sta = sta;
>> -	arvif->ast_hash = peer->ast_hash;
>> +
>> +	if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>> +		arvif->ast_hash = peer->ast_hash;
>> +		arvif->ast_idx = peer->hw_peer_id;
>> +	}
> 
> How about non STATION type?
> 

no need of configuring the ast_idx, ast_hash field for non station type. 
Its recommended by HW/FW team.

Thanks,
Karthikeyan P

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-01-27  2:46     ` Karthikeyan periyasamy
  0 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-01-27  2:46 UTC (permalink / raw)
  To: Peter Oh; +Cc: linux-wireless, ath11k

On 2020-12-19 00:53, Peter Oh wrote:
> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>> Tx descriptor search index field should be updated with hw peer id
>> and not by AST Hash. Incorrect search index causes throughput 
>> degradation
>> in all the platforms. so updated the search index field with hw peer 
>> id,
>> which is a common change applicable for all the platforms.
>> 
>> Tested-on: IPQ8074 hw2.0 AHB 
>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>> 
>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>> b/drivers/net/wireless/ath/ath11k/peer.c
>> index b69e7eb..f49abefa 100644
>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>> 
>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, struct 
>> ath11k_vif *arvif,
>>     	peer->pdev_idx = ar->pdev_idx;
>>   	peer->sta = sta;
>> -	arvif->ast_hash = peer->ast_hash;
>> +
>> +	if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>> +		arvif->ast_hash = peer->ast_hash;
>> +		arvif->ast_idx = peer->hw_peer_id;
>> +	}
> 
> How about non STATION type?
> 

no need of configuring the ast_idx, ast_hash field for non station type. 
Its recommended by HW/FW team.

Thanks,
Karthikeyan P

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2021-01-27  2:46     ` Karthikeyan periyasamy
@ 2021-02-03 19:29       ` Peter Oh
  -1 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2021-02-03 19:29 UTC (permalink / raw)
  To: Karthikeyan periyasamy; +Cc: ath11k, linux-wireless


On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
> On 2020-12-19 00:53, Peter Oh wrote:
>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>> Tx descriptor search index field should be updated with hw peer id
>>> and not by AST Hash. Incorrect search index causes throughput 
>>> degradation
>>> in all the platforms. so updated the search index field with hw peer 
>>> id,
>>> which is a common change applicable for all the platforms.
>>>
>>> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>
>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>> index b69e7eb..f49abefa 100644
>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>
>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>> struct ath11k_vif *arvif,
>>>         peer->pdev_idx = ar->pdev_idx;
>>>       peer->sta = sta;
>>> -    arvif->ast_hash = peer->ast_hash;
>>> +
>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>> +        arvif->ast_hash = peer->ast_hash;
>>> +        arvif->ast_idx = peer->hw_peer_id;
>>> +    }
>>
>> How about non STATION type?
>>
>
> no need of configuring the ast_idx, ast_hash field for non station 
> type. Its recommended by HW/FW team.
>
Can you add this comment in commit message?

Also could you include the answer to "what conditions you observed the
throughput degradation?" in commit message too?


Thanks,

Peter


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-02-03 19:29       ` Peter Oh
  0 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2021-02-03 19:29 UTC (permalink / raw)
  To: Karthikeyan periyasamy; +Cc: linux-wireless, ath11k


On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
> On 2020-12-19 00:53, Peter Oh wrote:
>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>> Tx descriptor search index field should be updated with hw peer id
>>> and not by AST Hash. Incorrect search index causes throughput 
>>> degradation
>>> in all the platforms. so updated the search index field with hw peer 
>>> id,
>>> which is a common change applicable for all the platforms.
>>>
>>> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>
>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>> index b69e7eb..f49abefa 100644
>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>
>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>> struct ath11k_vif *arvif,
>>>         peer->pdev_idx = ar->pdev_idx;
>>>       peer->sta = sta;
>>> -    arvif->ast_hash = peer->ast_hash;
>>> +
>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>> +        arvif->ast_hash = peer->ast_hash;
>>> +        arvif->ast_idx = peer->hw_peer_id;
>>> +    }
>>
>> How about non STATION type?
>>
>
> no need of configuring the ast_idx, ast_hash field for non station 
> type. Its recommended by HW/FW team.
>
Can you add this comment in commit message?

Also could you include the answer to "what conditions you observed the
throughput degradation?" in commit message too?


Thanks,

Peter


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2021-02-03 19:29       ` Peter Oh
@ 2021-02-04  1:08         ` Karthikeyan periyasamy
  -1 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-02-04  1:08 UTC (permalink / raw)
  To: Peter Oh; +Cc: ath11k, linux-wireless

On 2021-02-04 00:59, Peter Oh wrote:
> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>> On 2020-12-19 00:53, Peter Oh wrote:
>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>> Tx descriptor search index field should be updated with hw peer id
>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>> degradation
>>>> in all the platforms. so updated the search index field with hw peer 
>>>> id,
>>>> which is a common change applicable for all the platforms.
>>>> 
>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>> 
>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>> index b69e7eb..f49abefa 100644
>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>> 
>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>> struct ath11k_vif *arvif,
>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>       peer->sta = sta;
>>>> -    arvif->ast_hash = peer->ast_hash;
>>>> +
>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>> +        arvif->ast_hash = peer->ast_hash;
>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>> +    }
>>> 
>>> How about non STATION type?
>>> 
>> 
>> no need of configuring the ast_idx, ast_hash field for non station 
>> type. Its recommended by HW/FW team.
>> 
> Can you add this comment in commit message?
> 

sure

> Also could you include the answer to "what conditions you observed the
> throughput degradation?" in commit message too?

In all the scenario will see degradation. Its a general improvement.

Regards,
Karthikeyan P

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-02-04  1:08         ` Karthikeyan periyasamy
  0 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-02-04  1:08 UTC (permalink / raw)
  To: Peter Oh; +Cc: linux-wireless, ath11k

On 2021-02-04 00:59, Peter Oh wrote:
> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>> On 2020-12-19 00:53, Peter Oh wrote:
>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>> Tx descriptor search index field should be updated with hw peer id
>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>> degradation
>>>> in all the platforms. so updated the search index field with hw peer 
>>>> id,
>>>> which is a common change applicable for all the platforms.
>>>> 
>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>> 
>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>> index b69e7eb..f49abefa 100644
>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>> 
>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>> struct ath11k_vif *arvif,
>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>       peer->sta = sta;
>>>> -    arvif->ast_hash = peer->ast_hash;
>>>> +
>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>> +        arvif->ast_hash = peer->ast_hash;
>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>> +    }
>>> 
>>> How about non STATION type?
>>> 
>> 
>> no need of configuring the ast_idx, ast_hash field for non station 
>> type. Its recommended by HW/FW team.
>> 
> Can you add this comment in commit message?
> 

sure

> Also could you include the answer to "what conditions you observed the
> throughput degradation?" in commit message too?

In all the scenario will see degradation. Its a general improvement.

Regards,
Karthikeyan P

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2021-02-04  1:08         ` Karthikeyan periyasamy
@ 2021-02-04  3:08           ` Peter Oh
  -1 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2021-02-04  3:08 UTC (permalink / raw)
  To: Karthikeyan periyasamy; +Cc: ath11k, linux-wireless


On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
> On 2021-02-04 00:59, Peter Oh wrote:
>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>> Tx descriptor search index field should be updated with hw peer id
>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>> degradation
>>>>> in all the platforms. so updated the search index field with hw 
>>>>> peer id,
>>>>> which is a common change applicable for all the platforms.
>>>>>
>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>
>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>> index b69e7eb..f49abefa 100644
>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>
>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>> struct ath11k_vif *arvif,
>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>       peer->sta = sta;
>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>> +
>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>> +    }
>>>>
>>>> How about non STATION type?
>>>>
>>>
>>> no need of configuring the ast_idx, ast_hash field for non station 
>>> type. Its recommended by HW/FW team.
>>>
>> Can you add this comment in commit message?
>>
>
> sure
>
>> Also could you include the answer to "what conditions you observed the
>> throughput degradation?" in commit message too?
>
> In all the scenario will see degradation. Its a general improvement.
>
It sounds good and it will better if you share the number before and 
after the patch.


Thanks,

Peter


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-02-04  3:08           ` Peter Oh
  0 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2021-02-04  3:08 UTC (permalink / raw)
  To: Karthikeyan periyasamy; +Cc: linux-wireless, ath11k


On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
> On 2021-02-04 00:59, Peter Oh wrote:
>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>> Tx descriptor search index field should be updated with hw peer id
>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>> degradation
>>>>> in all the platforms. so updated the search index field with hw 
>>>>> peer id,
>>>>> which is a common change applicable for all the platforms.
>>>>>
>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>
>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>> index b69e7eb..f49abefa 100644
>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>
>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>> struct ath11k_vif *arvif,
>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>       peer->sta = sta;
>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>> +
>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>> +    }
>>>>
>>>> How about non STATION type?
>>>>
>>>
>>> no need of configuring the ast_idx, ast_hash field for non station 
>>> type. Its recommended by HW/FW team.
>>>
>> Can you add this comment in commit message?
>>
>
> sure
>
>> Also could you include the answer to "what conditions you observed the
>> throughput degradation?" in commit message too?
>
> In all the scenario will see degradation. Its a general improvement.
>
It sounds good and it will better if you share the number before and 
after the patch.


Thanks,

Peter


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2021-02-04  3:08           ` Peter Oh
@ 2021-02-04  3:17             ` Karthikeyan periyasamy
  -1 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-02-04  3:17 UTC (permalink / raw)
  To: Peter Oh; +Cc: ath11k, linux-wireless

On 2021-02-04 08:38, Peter Oh wrote:
> On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
>> On 2021-02-04 00:59, Peter Oh wrote:
>>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>>> Tx descriptor search index field should be updated with hw peer id
>>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>>> degradation
>>>>>> in all the platforms. so updated the search index field with hw 
>>>>>> peer id,
>>>>>> which is a common change applicable for all the platforms.
>>>>>> 
>>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>> 
>>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>> index b69e7eb..f49abefa 100644
>>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>> 
>>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>>> struct ath11k_vif *arvif,
>>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>>       peer->sta = sta;
>>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>>> +
>>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>>> +    }
>>>>> 
>>>>> How about non STATION type?
>>>>> 
>>>> 
>>>> no need of configuring the ast_idx, ast_hash field for non station 
>>>> type. Its recommended by HW/FW team.
>>>> 
>>> Can you add this comment in commit message?
>>> 
>> 
>> sure
>> 
>>> Also could you include the answer to "what conditions you observed 
>>> the
>>> throughput degradation?" in commit message too?
>> 
>> In all the scenario will see degradation. Its a general improvement.
>> 
> It sounds good and it will better if you share the number before and
> after the patch.

I have seen 10% increase in WDS scenario.

Thanks,
Karthikeyan P

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-02-04  3:17             ` Karthikeyan periyasamy
  0 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-02-04  3:17 UTC (permalink / raw)
  To: Peter Oh; +Cc: linux-wireless, ath11k

On 2021-02-04 08:38, Peter Oh wrote:
> On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
>> On 2021-02-04 00:59, Peter Oh wrote:
>>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>>> Tx descriptor search index field should be updated with hw peer id
>>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>>> degradation
>>>>>> in all the platforms. so updated the search index field with hw 
>>>>>> peer id,
>>>>>> which is a common change applicable for all the platforms.
>>>>>> 
>>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>> 
>>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>> index b69e7eb..f49abefa 100644
>>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>> 
>>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>>> struct ath11k_vif *arvif,
>>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>>       peer->sta = sta;
>>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>>> +
>>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>>> +    }
>>>>> 
>>>>> How about non STATION type?
>>>>> 
>>>> 
>>>> no need of configuring the ast_idx, ast_hash field for non station 
>>>> type. Its recommended by HW/FW team.
>>>> 
>>> Can you add this comment in commit message?
>>> 
>> 
>> sure
>> 
>>> Also could you include the answer to "what conditions you observed 
>>> the
>>> throughput degradation?" in commit message too?
>> 
>> In all the scenario will see degradation. Its a general improvement.
>> 
> It sounds good and it will better if you share the number before and
> after the patch.

I have seen 10% increase in WDS scenario.

Thanks,
Karthikeyan P

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2021-02-04  3:17             ` Karthikeyan periyasamy
@ 2021-02-04  3:37               ` Peter Oh
  -1 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2021-02-04  3:37 UTC (permalink / raw)
  To: Karthikeyan periyasamy; +Cc: ath11k, linux-wireless


On 2/3/21 7:17 PM, Karthikeyan periyasamy wrote:
> On 2021-02-04 08:38, Peter Oh wrote:
>> On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
>>> On 2021-02-04 00:59, Peter Oh wrote:
>>>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>>>> Tx descriptor search index field should be updated with hw peer id
>>>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>>>> degradation
>>>>>>> in all the platforms. so updated the search index field with hw 
>>>>>>> peer id,
>>>>>>> which is a common change applicable for all the platforms.
>>>>>>>
>>>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>>>
>>>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>> index b69e7eb..f49abefa 100644
>>>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>
>>>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>>>> struct ath11k_vif *arvif,
>>>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>>>       peer->sta = sta;
>>>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>>>> +
>>>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>>>> +    }
>>>>>>
>>>>>> How about non STATION type?
>>>>>>
>>>>>
>>>>> no need of configuring the ast_idx, ast_hash field for non station 
>>>>> type. Its recommended by HW/FW team.
>>>>>
>>>> Can you add this comment in commit message?
>>>>
>>>
>>> sure
>>>
>>>> Also could you include the answer to "what conditions you observed the
>>>> throughput degradation?" in commit message too?
>>>
>>> In all the scenario will see degradation. Its a general improvement.
>>>
>> It sounds good and it will better if you share the number before and
>> after the patch.
>
> I have seen 10% increase in WDS scenario.
>
> Thanks,
> Karthikeyan P

Thank you for the sharing.

BTW, all such information should go to commit message.

Peter


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-02-04  3:37               ` Peter Oh
  0 siblings, 0 replies; 22+ messages in thread
From: Peter Oh @ 2021-02-04  3:37 UTC (permalink / raw)
  To: Karthikeyan periyasamy; +Cc: linux-wireless, ath11k


On 2/3/21 7:17 PM, Karthikeyan periyasamy wrote:
> On 2021-02-04 08:38, Peter Oh wrote:
>> On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
>>> On 2021-02-04 00:59, Peter Oh wrote:
>>>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>>>> Tx descriptor search index field should be updated with hw peer id
>>>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>>>> degradation
>>>>>>> in all the platforms. so updated the search index field with hw 
>>>>>>> peer id,
>>>>>>> which is a common change applicable for all the platforms.
>>>>>>>
>>>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>>>
>>>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>> index b69e7eb..f49abefa 100644
>>>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>
>>>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>>>> struct ath11k_vif *arvif,
>>>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>>>       peer->sta = sta;
>>>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>>>> +
>>>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>>>> +    }
>>>>>>
>>>>>> How about non STATION type?
>>>>>>
>>>>>
>>>>> no need of configuring the ast_idx, ast_hash field for non station 
>>>>> type. Its recommended by HW/FW team.
>>>>>
>>>> Can you add this comment in commit message?
>>>>
>>>
>>> sure
>>>
>>>> Also could you include the answer to "what conditions you observed the
>>>> throughput degradation?" in commit message too?
>>>
>>> In all the scenario will see degradation. Its a general improvement.
>>>
>> It sounds good and it will better if you share the number before and
>> after the patch.
>
> I have seen 10% increase in WDS scenario.
>
> Thanks,
> Karthikeyan P

Thank you for the sharing.

BTW, all such information should go to commit message.

Peter


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
  2021-02-04  3:37               ` Peter Oh
@ 2021-02-04  3:40                 ` Karthikeyan periyasamy
  -1 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-02-04  3:40 UTC (permalink / raw)
  To: Peter Oh; +Cc: ath11k, linux-wireless

On 2021-02-04 09:07, Peter Oh wrote:
> On 2/3/21 7:17 PM, Karthikeyan periyasamy wrote:
>> On 2021-02-04 08:38, Peter Oh wrote:
>>> On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
>>>> On 2021-02-04 00:59, Peter Oh wrote:
>>>>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>>>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>>>>> Tx descriptor search index field should be updated with hw peer 
>>>>>>>> id
>>>>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>>>>> degradation
>>>>>>>> in all the platforms. so updated the search index field with hw 
>>>>>>>> peer id,
>>>>>>>> which is a common change applicable for all the platforms.
>>>>>>>> 
>>>>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>>>> 
>>>>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>> index b69e7eb..f49abefa 100644
>>>>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>> 
>>>>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>>>>> struct ath11k_vif *arvif,
>>>>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>>>>       peer->sta = sta;
>>>>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>>>>> +
>>>>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>>>>> +    }
>>>>>>> 
>>>>>>> How about non STATION type?
>>>>>>> 
>>>>>> 
>>>>>> no need of configuring the ast_idx, ast_hash field for non station 
>>>>>> type. Its recommended by HW/FW team.
>>>>>> 
>>>>> Can you add this comment in commit message?
>>>>> 
>>>> 
>>>> sure
>>>> 
>>>>> Also could you include the answer to "what conditions you observed 
>>>>> the
>>>>> throughput degradation?" in commit message too?
>>>> 
>>>> In all the scenario will see degradation. Its a general improvement.
>>>> 
>>> It sounds good and it will better if you share the number before and
>>> after the patch.
>> 
>> I have seen 10% increase in WDS scenario.
>> 
>> Thanks,
>> Karthikeyan P
> 
> Thank you for the sharing.
> 
> BTW, all such information should go to commit message.
> 
> Peter

I update in the commit message

Thanks,
Karthikeyan P

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] ath11k: Update tx descriptor search index properly
@ 2021-02-04  3:40                 ` Karthikeyan periyasamy
  0 siblings, 0 replies; 22+ messages in thread
From: Karthikeyan periyasamy @ 2021-02-04  3:40 UTC (permalink / raw)
  To: Peter Oh; +Cc: linux-wireless, ath11k

On 2021-02-04 09:07, Peter Oh wrote:
> On 2/3/21 7:17 PM, Karthikeyan periyasamy wrote:
>> On 2021-02-04 08:38, Peter Oh wrote:
>>> On 2/3/21 5:08 PM, Karthikeyan periyasamy wrote:
>>>> On 2021-02-04 00:59, Peter Oh wrote:
>>>>> On 1/26/21 6:46 PM, Karthikeyan periyasamy wrote:
>>>>>> On 2020-12-19 00:53, Peter Oh wrote:
>>>>>>> On 12/18/20 7:24 AM, Karthikeyan Periyasamy wrote:
>>>>>>>> Tx descriptor search index field should be updated with hw peer 
>>>>>>>> id
>>>>>>>> and not by AST Hash. Incorrect search index causes throughput 
>>>>>>>> degradation
>>>>>>>> in all the platforms. so updated the search index field with hw 
>>>>>>>> peer id,
>>>>>>>> which is a common change applicable for all the platforms.
>>>>>>>> 
>>>>>>>> Tested-on: IPQ8074 hw2.0 AHB 
>>>>>>>> WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
>>>>>>>> 
>>>>>>>> diff --git a/drivers/net/wireless/ath/ath11k/peer.c 
>>>>>>>> b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>> index b69e7eb..f49abefa 100644
>>>>>>>> --- a/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>> +++ b/drivers/net/wireless/ath/ath11k/peer.c
>>>>>>>> 
>>>>>>>> @@ -309,7 +310,11 @@ int ath11k_peer_create(struct ath11k *ar, 
>>>>>>>> struct ath11k_vif *arvif,
>>>>>>>>         peer->pdev_idx = ar->pdev_idx;
>>>>>>>>       peer->sta = sta;
>>>>>>>> -    arvif->ast_hash = peer->ast_hash;
>>>>>>>> +
>>>>>>>> +    if (arvif->vif->type == NL80211_IFTYPE_STATION) {
>>>>>>>> +        arvif->ast_hash = peer->ast_hash;
>>>>>>>> +        arvif->ast_idx = peer->hw_peer_id;
>>>>>>>> +    }
>>>>>>> 
>>>>>>> How about non STATION type?
>>>>>>> 
>>>>>> 
>>>>>> no need of configuring the ast_idx, ast_hash field for non station 
>>>>>> type. Its recommended by HW/FW team.
>>>>>> 
>>>>> Can you add this comment in commit message?
>>>>> 
>>>> 
>>>> sure
>>>> 
>>>>> Also could you include the answer to "what conditions you observed 
>>>>> the
>>>>> throughput degradation?" in commit message too?
>>>> 
>>>> In all the scenario will see degradation. Its a general improvement.
>>>> 
>>> It sounds good and it will better if you share the number before and
>>> after the patch.
>> 
>> I have seen 10% increase in WDS scenario.
>> 
>> Thanks,
>> Karthikeyan P
> 
> Thank you for the sharing.
> 
> BTW, all such information should go to commit message.
> 
> Peter

I update in the commit message

Thanks,
Karthikeyan P

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-02-04  3:41 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-18 15:24 [PATCH] ath11k: Update tx descriptor search index properly Karthikeyan Periyasamy
2020-12-18 15:24 ` Karthikeyan Periyasamy
2020-12-18 19:23 ` Peter Oh
2020-12-18 19:23   ` Peter Oh
2021-01-27  2:46   ` Karthikeyan periyasamy
2021-01-27  2:46     ` Karthikeyan periyasamy
2021-02-03 19:29     ` Peter Oh
2021-02-03 19:29       ` Peter Oh
2021-02-04  1:08       ` Karthikeyan periyasamy
2021-02-04  1:08         ` Karthikeyan periyasamy
2021-02-04  3:08         ` Peter Oh
2021-02-04  3:08           ` Peter Oh
2021-02-04  3:17           ` Karthikeyan periyasamy
2021-02-04  3:17             ` Karthikeyan periyasamy
2021-02-04  3:37             ` Peter Oh
2021-02-04  3:37               ` Peter Oh
2021-02-04  3:40               ` Karthikeyan periyasamy
2021-02-04  3:40                 ` Karthikeyan periyasamy
2020-12-18 19:41 ` Peter Oh
2020-12-18 19:41   ` Peter Oh
2021-01-26 15:59 ` Kalle Valo
2021-01-26 15:59 ` Kalle Valo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.