qcacmn: Optimize tx completion processing in fast path
Optimize tx completion processing in fastpath by adding the list of tx descs to the free list directly instead of individually accessing each descriptor and adding it to free list. This gives advantages of not taking descriptor pool lock for each descriptor and rather takes the lock only once when appending the whole list of descs to the free list. Also removed unused member shinfo_addr from tx_desc structure. Removal of this member enables increase of flags type from u16 to u32 without increasing the size of tx_desc structure. These changes improved peak KPI by 2% in SFE mode. Change-Id: I995de9cc08c866ad6e1cd1efc76ac2a35d40fb7c CRs-Fixed: 3584578
这个提交包含在:

提交者
Rahul Choudhary

父节点
fb7d334b7c
当前提交
15812b8137
@@ -4297,6 +4297,27 @@ static inline void dp_soc_get_ap_mld_mode(struct dp_soc *soc)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef QCA_VDEV_STATS_HW_OFFLOAD_SUPPORT
|
||||
/**
|
||||
* dp_soc_hw_txrx_stats_init() - Initialize hw_txrx_stats_en in dp_soc
|
||||
* @soc: Datapath soc handle
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static inline
|
||||
void dp_soc_hw_txrx_stats_init(struct dp_soc *soc)
|
||||
{
|
||||
soc->hw_txrx_stats_en =
|
||||
wlan_cfg_get_vdev_stats_hw_offload_config(soc->wlan_cfg_ctx);
|
||||
}
|
||||
#else
|
||||
static inline
|
||||
void dp_soc_hw_txrx_stats_init(struct dp_soc *soc)
|
||||
{
|
||||
soc->hw_txrx_stats_en = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_soc_init() - Initialize txrx SOC
|
||||
* @soc: Opaque DP SOC handle
|
||||
@@ -4485,6 +4506,8 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
||||
|
||||
soc->vdev_stats_id_map = 0;
|
||||
|
||||
dp_soc_hw_txrx_stats_init(soc);
|
||||
|
||||
dp_soc_get_ap_mld_mode(soc);
|
||||
|
||||
return soc;
|
||||
|
在新工单中引用
屏蔽一个用户