qcacmn: Rx optimizations to improve small pkt perf
basically tried reading peer_id from peer structure to avoid 1 cache-line miss per pkt and access mac address from frame data for WDS only if WDS condition is valid. The other optimization is to avoid accessing queue_mapping field of skb for skb received which is at 140 offset This again helps to avoid i cache miss. Another place is to do a memcpy only when we intend to add an ast entry. Change-Id: I7e328060c505bc21419d045e77329c2cda9e3644 CRs-fixed: 2388857
This commit is contained in:

کامیت شده توسط
nshrivas

والد
5bcc30f51c
کامیت
9e4b36fd89
@@ -1386,15 +1386,11 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc,
|
||||
struct cdp_tid_rx_stats *tid_stats)
|
||||
{
|
||||
bool is_ampdu, is_not_amsdu;
|
||||
uint16_t peer_id;
|
||||
uint32_t sgi, mcs, tid, nss, bw, reception_type, pkt_type;
|
||||
struct dp_vdev *vdev = peer->vdev;
|
||||
qdf_ether_header_t *eh;
|
||||
uint16_t msdu_len = QDF_NBUF_CB_RX_PKT_LEN(nbuf);
|
||||
|
||||
peer_id = DP_PEER_METADATA_PEER_ID_GET(
|
||||
hal_rx_mpdu_peer_meta_data_get(rx_tlv_hdr));
|
||||
|
||||
is_not_amsdu = qdf_nbuf_is_rx_chfrag_start(nbuf) &
|
||||
qdf_nbuf_is_rx_chfrag_end(nbuf);
|
||||
|
||||
@@ -1481,7 +1477,7 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc,
|
||||
return;
|
||||
|
||||
dp_wdi_event_handler(WDI_EVENT_UPDATE_DP_STATS, vdev->pdev->soc,
|
||||
&peer->stats, peer_id,
|
||||
&peer->stats, peer->peer_ids[0],
|
||||
UPDATE_PEER_STATS,
|
||||
vdev->pdev->pdev_id);
|
||||
#endif
|
||||
@@ -2105,8 +2101,6 @@ done:
|
||||
if (soc->process_rx_status)
|
||||
dp_rx_cksum_offload(vdev->pdev, nbuf, rx_tlv_hdr);
|
||||
|
||||
dp_set_rx_queue(nbuf, ring_id);
|
||||
|
||||
/* Update the protocol tag in SKB based on CCE metadata */
|
||||
dp_rx_update_protocol_tag(soc, vdev, nbuf, rx_tlv_hdr,
|
||||
reo_ring_num, false, true);
|
||||
|
مرجع در شماره جدید
Block a user