From: Johannes Berg <johannes@sipsolutions.net>
To: Michal Kazior <michal.kazior@tieto.com>, linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org, eric.dumazet@gmail.com,
dave.taht@gmail.com, emmanuel.grumbach@intel.com,
nbd@openwrt.org, Tim Shepard <shep@alum.mit.edu>
Subject: Re: [RFC/RFT] mac80211: implement fq_codel for software queuing
Date: Tue, 01 Mar 2016 15:02:51 +0100 [thread overview]
Message-ID: <1456840971.3926.29.camel@sipsolutions.net> (raw)
In-Reply-To: <1456492163-11437-1-git-send-email-michal.kazior@tieto.com> (sfid-20160226_140925_426277_05F8C3B0)
On Fri, 2016-02-26 at 14:09 +0100, Michal Kazior wrote:
>
> +typedef u64 codel_time_t;
Do we really need this? And if yes, does it have to be in the public
header file? Why a typedef anyway?
> - * @txq_ac_max_pending: maximum number of frames per AC pending in
> all txq
> - * entries for a vif.
> + * @txq_cparams: codel parameters to control tx queueing dropping
> behavior
> + * @txq_limit: maximum number of frames queuesd
typo - queued
> @@ -2133,7 +2155,8 @@ struct ieee80211_hw {
> u8 uapsd_max_sp_len;
> u8 n_cipher_schemes;
> const struct ieee80211_cipher_scheme *cipher_schemes;
> - int txq_ac_max_pending;
> + struct codel_params txq_cparams;
Should this really be a parameter the driver determines?
> +static void ieee80211_if_setup_no_queue(struct net_device *dev)
> +{
> + ieee80211_if_setup(dev);
> + dev->priv_flags |= IFF_NO_QUEUE;
> + /* Note for backporters: use dev->tx_queue_len = 0 instead
> of IFF_ */
Heh. Remove that comment; we have an spatch in backports already :)
> --- a/net/mac80211/sta_info.h
> +++ b/net/mac80211/sta_info.h
> @@ -19,6 +19,7 @@
> #include <linux/etherdevice.h>
> #include <linux/rhashtable.h>
> #include "key.h"
> +#include "codel_i.h"
>
> /**
> * enum ieee80211_sta_info_flags - Stations flags
> @@ -327,6 +328,32 @@ struct mesh_sta {
>
> DECLARE_EWMA(signal, 1024, 8)
>
> +struct txq_info;
> +
> +/**
> + * struct txq_flow - per traffic flow queue
> + *
> + * This structure is used to distinguish and queue different traffic
> flows
> + * separately for fair queueing/AQM purposes.
> + *
> + * @txqi: txq_info structure it is associated at given time
> + * @flowchain: can be linked to other flows for RR purposes
> + * @backlogchain: can be linked to other flows for backlog sorting
> purposes
> + * @queue: sk_buff queue
> + * @cvars: codel state vars
> + * @backlog: number of bytes pending in the queue
> + * @deficit: used for fair queueing balancing
> + */
> +struct txq_flow {
> + struct txq_info *txqi;
> + struct list_head flowchain;
> + struct list_head backlogchain;
> + struct sk_buff_head queue;
> + struct codel_vars cvars;
> + u32 backlog;
> + u32 deficit;
> +};
> +
> /**
> * struct sta_info - STA information
> *
> diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
> index af584f7cdd63..f42f898cb8b5 100644
> --- a/net/mac80211/tx.c
> +++ b/net/mac80211/tx.c
> @@ -34,6 +34,7 @@
> #include "wpa.h"
> #include "wme.h"
> #include "rate.h"
> +#include "codel.h"
> +static inline codel_time_t
> +custom_codel_get_enqueue_time(struct sk_buff *skb)
There are a lot of inlines here - first of all, do they all need to be
inline?
And secondly, perhaps it would make some sense to move this into
another file?
johannes
next prev parent reply other threads:[~2016-03-01 14:02 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-26 13:09 [RFC/RFT] mac80211: implement fq_codel for software queuing Michal Kazior
2016-03-01 14:02 ` Johannes Berg [this message]
2016-03-02 7:38 ` Michal Kazior
[not found] ` <CA+BoTQkritHYYWA53zb_AcGT4sc92fytQo3CGP6GQouWRift1w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-03 17:00 ` Dave Taht
2016-03-04 2:48 ` Tim Shepard
2016-03-04 6:32 ` Michal Kazior
[not found] ` <CA+BoTQk6J7kgdie9aX24MB+8PxN3oFUh0eVdmVrdyptW5RxQXg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-07 14:05 ` Avery Pennarun
[not found] ` <CAPp0ZBYP9UzUTtPz=vivUQkE2FiGSsJjDaecQtPuK8y_d3ccqA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-07 15:09 ` Felix Fietkau
[not found] ` <56DD99AA.8050403-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
2016-03-07 16:25 ` Avery Pennarun
[not found] ` <CAHqTa-2-uZ0PUdwp33E588EU2a7T6KnTYs8RWfNDEzgOLseG9g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-07 16:54 ` Dave Taht
[not found] ` <CAA93jw4JG_uEZaxk1JDKndq9K0+QPwKaAmK6=gZ8e-7qNmc=Cw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-07 17:14 ` Avery Pennarun
2016-03-07 17:22 ` Grumbach, Emmanuel
2016-03-07 18:28 ` Dave Taht
[not found] ` <CAA93jw5fvGQ5L7dQupFX4ymhxquswSit1ZiATKmLp4+O4Mwbrw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-08 7:41 ` Michal Kazior
[not found] ` <1456492163-11437-1-git-send-email-michal.kazior-++hxYGjEMp0AvxtiuMwx3w@public.gmane.org>
2016-02-26 16:48 ` Felix Fietkau
2016-02-26 18:54 ` Michal Kazior
2016-03-07 23:06 ` Dave Taht
2016-03-08 7:12 ` Michal Kazior
2016-03-08 10:19 ` Toke Høiland-Jørgensen
2016-03-08 13:14 ` Bob Copeland
2016-03-08 13:27 ` Michal Kazior
[not found] ` <CA+BoTQk+3jhwK57_fDw0scNCGzu_Edqp9-Beeppz8xj9kSQcoQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-10 18:57 ` Dave Taht
2016-03-11 8:32 ` Michal Kazior
[not found] ` <CAA93jw4XsEnp3jTgPL7OKWTJP-83VwRaCdb+foc8nCuqxk3WZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-08 10:57 ` Michal Kazior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456840971.3926.29.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=dave.taht@gmail.com \
--cc=emmanuel.grumbach@intel.com \
--cc=eric.dumazet@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=michal.kazior@tieto.com \
--cc=nbd@openwrt.org \
--cc=netdev@vger.kernel.org \
--cc=shep@alum.mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).