Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a745b0b9 authored by Hamad Kadmany's avatar Hamad Kadmany
Browse files

wil6210: RPS implementation



If RXHASH feature is enabled, and rps_en module parameter
is true (default), driver sets rxhash of each skb to 1 to enable RPS.
The core for processing the rx skb is determined by RPS mechanism
according to rx_cpus bit mask which is configured at user level.
For processing skbs on different core from the core which processes
the interrupts, it is recommended not to enable core 0 in rx_cpus bit mask.

Change-Id: I30cf64315ba475361b77e3b0bca3b09478593121
Signed-off-by: default avatarHamad Kadmany <hkadmany@codeaurora.org>
parent 62488246
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ void *wil_if_alloc(struct device *dev)
	ndev->ieee80211_ptr = wdev;
	ndev->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
			    NETIF_F_SG | NETIF_F_GRO |
			    NETIF_F_TSO | NETIF_F_TSO6;
			    NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_RXHASH;

	ndev->features |= ndev->hw_features;
	SET_NETDEV_DEV(ndev, wiphy_dev(wdev->wiphy));
+8 −0
Original line number Diff line number Diff line
@@ -541,6 +541,14 @@ void wil_netif_rx_any(struct sk_buff *skb, struct net_device *ndev)
		[GRO_DROP]		= "GRO_DROP",
	};

	if (ndev->features & NETIF_F_RXHASH)
		/* fake L4 to ensure it won't be re-calculated later
		 * set hash to any non-zero value to activate rps
		 * mechanism, core will be chosen according
		 * to user-level rps configuration.
		 */
		skb_set_hash(skb, 1, PKT_HASH_TYPE_L4);

	skb_orphan(skb);

	if (wdev->iftype == NL80211_IFTYPE_AP && !wil->ap_isolate) {