mac80211: tweak TSQ settings

Latencies can be much higher on wifi devices, especially with
aggregation. Tune the network stack setting introduced in the previous
commit to account for that.
This commit reintroduces the previously reverted one with a fix for the
crash issues

Signed-off-by: Felix Fietkau <nbd@nbd.name>
openwrt-18.06
Felix Fietkau 2017-11-16 09:57:13 +01:00
parent 18cc8d520c
commit 111b499024
2 changed files with 16 additions and 1 deletions

View File

@ -0,0 +1,15 @@
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3750,6 +3750,12 @@ out:
netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{
+#if defined(sk_pacing_shift) || LINUX_VERSION_IS_GEQ(4,15,0)
+ if (skb->sk && sk_fullsock(skb->sk) &&
+ skb->sk->sk_pacing_shift != 6)
+ skb->sk->sk_pacing_shift = 6;
+#endif
+
if (unlikely(ieee80211_multicast_to_unicast(skb, dev))) {
struct sk_buff_head queue;

View File

@ -56,7 +56,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
if (txq->sta) if (txq->sta)
tx.sta = container_of(txq->sta, struct sta_info, sta); tx.sta = container_of(txq->sta, struct sta_info, sta);
@@ -3790,6 +3791,7 @@ ieee80211_build_data_template(struct iee @@ -3796,6 +3797,7 @@ ieee80211_build_data_template(struct iee
hdr = (void *)skb->data; hdr = (void *)skb->data;
tx.sta = sta_info_get(sdata, hdr->addr1); tx.sta = sta_info_get(sdata, hdr->addr1);
tx.skb = skb; tx.skb = skb;