summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYun Park <yunp@qca.qualcomm.com>2015-05-08 14:33:58 -0700
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-05-14 18:04:52 +0530
commitbfaad0cb3b0f77d1940eb1d782bd8d125c557bbc (patch)
tree3671d2a86550fed6f286bfc0bc46b478d5cfa5d5
parent71d5685021ccbd81df51f020bfde51665655a98f (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.c14
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;