qcacmn: Reuse the tx descriptors in direct switch
Reuse the tx descriptors released in tx completions without releasing the associated skbs to reduce the cpu utilization in direct switch mode. Change-Id: I4ab3ac58977a626344877b8a818a4dbc4864aaf3 CRs-Fixed: 3393968
此提交包含在:

提交者
Madan Koyyalamudi

父節點
87f6016da2
當前提交
0a7d729a98
@@ -5420,6 +5420,19 @@ dp_tx_nbuf_dev_queue_free(qdf_nbuf_queue_head_t *nbuf_queue_head,
|
||||
qdf_nbuf_free(nbuf);
|
||||
}
|
||||
|
||||
static inline void
|
||||
dp_tx_nbuf_dev_queue_free_no_flag(qdf_nbuf_queue_head_t *nbuf_queue_head,
|
||||
qdf_nbuf_t nbuf)
|
||||
{
|
||||
if (!nbuf)
|
||||
return;
|
||||
|
||||
if (nbuf->is_from_recycler)
|
||||
qdf_nbuf_dev_queue_head(nbuf_queue_head, nbuf);
|
||||
else
|
||||
qdf_nbuf_free(nbuf);
|
||||
}
|
||||
|
||||
static inline void
|
||||
dp_tx_nbuf_dev_kfree_list(qdf_nbuf_queue_head_t *nbuf_queue_head)
|
||||
{
|
||||
@@ -5438,6 +5451,13 @@ dp_tx_nbuf_dev_queue_free(qdf_nbuf_queue_head_t *nbuf_queue_head,
|
||||
qdf_nbuf_free(desc->nbuf);
|
||||
}
|
||||
|
||||
static inline void
|
||||
dp_tx_nbuf_dev_queue_free_no_flag(qdf_nbuf_queue_head_t *nbuf_queue_head,
|
||||
qdf_nbuf_t nbuf)
|
||||
{
|
||||
qdf_nbuf_free(nbuf);
|
||||
}
|
||||
|
||||
static inline void
|
||||
dp_tx_nbuf_dev_kfree_list(qdf_nbuf_queue_head_t *nbuf_queue_head)
|
||||
{
|
||||
@@ -5481,13 +5501,15 @@ dp_tx_comp_process_desc_list(struct dp_soc *soc,
|
||||
}
|
||||
|
||||
if (desc->flags & DP_TX_DESC_FLAG_PPEDS) {
|
||||
qdf_nbuf_t nbuf;
|
||||
|
||||
if (qdf_likely(txrx_peer))
|
||||
dp_tx_update_peer_basic_stats(txrx_peer,
|
||||
desc->length,
|
||||
desc->tx_status,
|
||||
false);
|
||||
dp_tx_nbuf_dev_queue_free(&h, desc);
|
||||
dp_ppeds_tx_desc_free(soc, desc);
|
||||
nbuf = dp_ppeds_tx_desc_free(soc, desc);
|
||||
dp_tx_nbuf_dev_queue_free_no_flag(&h, nbuf);
|
||||
desc = next;
|
||||
continue;
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者