diff options
| author | Yun Park <yunp@qca.qualcomm.com> | 2015-05-08 14:33:58 -0700 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2015-05-14 18:04:52 +0530 |
| commit | bfaad0cb3b0f77d1940eb1d782bd8d125c557bbc (patch) | |
| tree | 3671d2a86550fed6f286bfc0bc46b478d5cfa5d5 | |
| parent | 71d5685021ccbd81df51f020bfde51665655a98f (diff) | |
qca-cld: IPA-uC: Call netif_rx when Rx packets are over threshold
This change will contribute to improve standalone SAP Rx TPUT when IPA
uC offload is enabled by reducing CPU utilization.
Change-Id: I2b46f941fd7a63efa21fb026e25243a89db2fc0a
CRs-Fixed: 835018
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_ipa.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/CORE/HDD/src/wlan_hdd_ipa.c b/CORE/HDD/src/wlan_hdd_ipa.c index 75d51bc86da8..dae93898909f 100644 --- a/CORE/HDD/src/wlan_hdd_ipa.c +++ b/CORE/HDD/src/wlan_hdd_ipa.c @@ -2102,8 +2102,12 @@ static void hdd_ipa_destory_rm_resource(struct hdd_ipa_priv *hdd_ipa) "RM CONS resource delete failed %d", ret); } +#define IPA_WLAN_RX_SOFTIRQ_THRESH 16 + static void hdd_ipa_send_skb_to_network(adf_nbuf_t skb, hdd_adapter_t *adapter) { + int result; + struct hdd_ipa_priv *hdd_ipa = ghdd_ipa; if (!adapter || adapter->magic != WLAN_HDD_ADAPTER_MAGIC) { @@ -2123,7 +2127,15 @@ static void hdd_ipa_send_skb_to_network(adf_nbuf_t skb, hdd_adapter_t *adapter) skb->protocol = eth_type_trans(skb, skb->dev); skb->ip_summed = CHECKSUM_NONE; ++adapter->hdd_stats.hddTxRxStats.rxPackets; - if (netif_rx_ni(skb) == NET_RX_SUCCESS) +#ifdef QCA_CONFIG_SMP + result = netif_rx_ni(skb); +#else + if (adapter->stats.rx_packets % IPA_WLAN_RX_SOFTIRQ_THRESH == 0) + result = netif_rx_ni(skb); + else + result = netif_rx(skb); +#endif + if (result == NET_RX_SUCCESS) ++adapter->hdd_stats.hddTxRxStats.rxDelivered; else ++adapter->hdd_stats.hddTxRxStats.rxRefused; |
