Message ID | 1456669193-56860-1-git-send-email-nbd@openwrt.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Johannes Berg |
Headers | show |
On Sun, Feb 28, 2016 at 6:19 AM, Felix Fietkau <nbd@openwrt.org> wrote: > Buffered multicast frames must be passed to the driver directly via > drv_tx instead of going through the txq, otherwise they cannot easily be > scheduled to be sent after DTIM. > > Signed-off-by: Felix Fietkau <nbd@openwrt.org> > --- > net/mac80211/tx.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > index 3a7475f..b294820 100644 > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -1247,7 +1247,8 @@ static void ieee80211_drv_tx(struct ieee80211_local *local, > struct txq_info *txqi; > u8 ac; > > - if (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE) > + if ((info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) || > + (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE)) > goto tx_normal; > > if (!ieee80211_is_data(hdr->frame_control)) > -- > 2.2.2 I would like hooks to emerge to be able to keep the level of multicast at a dull roar, relative to other traffic, and the impact of a multicast bursts measureable (stat exposed to userspace, something reporting back to the main tx queues that one just happened and how long it took). On receive, too..... > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 2016-02-28 at 15:19 +0100, Felix Fietkau wrote: > Buffered multicast frames must be passed to the driver directly via > drv_tx instead of going through the txq, otherwise they cannot easily > be scheduled to be sent after DTIM. > Applied. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 2016-02-28 at 09:35 -0800, Dave Taht wrote: > On Sun, Feb 28, 2016 at 6:19 AM, Felix Fietkau <nbd@openwrt.org> > wrote: > > Buffered multicast frames must be passed to the driver directly via > > drv_tx instead of going through the txq, otherwise they cannot > > easily be > > scheduled to be sent after DTIM. > > > > Signed-off-by: Felix Fietkau <nbd@openwrt.org> > > --- > > net/mac80211/tx.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > > index 3a7475f..b294820 100644 > > --- a/net/mac80211/tx.c > > +++ b/net/mac80211/tx.c > > @@ -1247,7 +1247,8 @@ static void ieee80211_drv_tx(struct > > ieee80211_local *local, > > struct txq_info *txqi; > > u8 ac; > > > > - if (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE) > > + if ((info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) || > > + (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE)) > > goto tx_normal; > > > > if (!ieee80211_is_data(hdr->frame_control)) > > -- > > 2.2.2 > > I would like Feel free to propose patches for anything you like :) johannes > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Mar 3, 2016 at 7:14 AM, Johannes Berg <johannes@sipsolutions.net> wrote: > On Sun, 2016-02-28 at 09:35 -0800, Dave Taht wrote: >> On Sun, Feb 28, 2016 at 6:19 AM, Felix Fietkau <nbd@openwrt.org> >> wrote: >> > Buffered multicast frames must be passed to the driver directly via >> > drv_tx instead of going through the txq, otherwise they cannot >> > easily be >> > scheduled to be sent after DTIM. >> > >> > Signed-off-by: Felix Fietkau <nbd@openwrt.org> >> > --- >> > net/mac80211/tx.c | 3 ++- >> > 1 file changed, 2 insertions(+), 1 deletion(-) >> > >> > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c >> > index 3a7475f..b294820 100644 >> > --- a/net/mac80211/tx.c >> > +++ b/net/mac80211/tx.c >> > @@ -1247,7 +1247,8 @@ static void ieee80211_drv_tx(struct >> > ieee80211_local *local, >> > struct txq_info *txqi; >> > u8 ac; >> > >> > - if (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE) >> > + if ((info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) || >> > + (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE)) >> > goto tx_normal; >> > >> > if (!ieee80211_is_data(hdr->frame_control)) >> > -- >> > 2.2.2 >> >> I would like > > Feel free to propose patches for anything you like :) At the moment all I can do is cheer people on, and try to assemble enough gear to test comprehensively when enough patches have landed in your tree... Go, felix! Go, Michal! Go Mohammed! Go, Ben! Go Tim! Go, Emmanuel! Go Johannes! > > johannes >> -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 3a7475f..b294820 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1247,7 +1247,8 @@ static void ieee80211_drv_tx(struct ieee80211_local *local, struct txq_info *txqi; u8 ac; - if (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE) + if ((info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) || + (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE)) goto tx_normal; if (!ieee80211_is_data(hdr->frame_control))
Buffered multicast frames must be passed to the driver directly via drv_tx instead of going through the txq, otherwise they cannot easily be scheduled to be sent after DTIM. Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- net/mac80211/tx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)