From: Jason Andryuk <jandryuk@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: make-wifi-fast@lists.bufferbloat.net,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH v5] mac80211: Move reorder-sensitive TX handlers to after TXQ dequeue.
Date: Thu, 1 Sep 2016 22:48:50 -0400 [thread overview]
Message-ID: <CAKf6xptJrniYA3Q2pYN4DkpKf_30dNJTdHqm+jCM=enDRSQhJQ@mail.gmail.com> (raw)
In-Reply-To: <20160901160312.31540-1-toke@toke.dk>
On Thu, Sep 1, 2016 at 12:03 PM, Toke H=C3=B8iland-J=C3=B8rgensen <toke@tok=
e.dk> wrote:
> @@ -1481,33 +1506,57 @@ struct sk_buff *ieee80211_tx_dequeue(struct ieee8=
0211_hw *hw,
> {
> struct ieee80211_local *local =3D hw_to_local(hw);
> struct txq_info *txqi =3D container_of(txq, struct txq_info, txq)=
;
> - struct ieee80211_hdr *hdr;
> struct sk_buff *skb =3D NULL;
> struct fq *fq =3D &local->fq;
> struct fq_tin *tin =3D &txqi->tin;
> + struct ieee80211_tx_info *info;
>
> spin_lock_bh(&fq->lock);
>
> if (test_bit(IEEE80211_TXQ_STOP, &txqi->flags))
> goto out;
>
> +begin:
> skb =3D fq_tin_dequeue(fq, tin, fq_tin_dequeue_func);
> if (!skb)
> goto out;
>
> ieee80211_set_skb_vif(skb, txqi);
>
> - hdr =3D (struct ieee80211_hdr *)skb->data;
> - if (txq->sta && ieee80211_is_data_qos(hdr->frame_control)) {
> + info =3D IEEE80211_SKB_CB(skb);
> + if (txq->sta && info->control.flags & IEEE80211_TX_CTRL_FAST_XMIT=
) {
> struct sta_info *sta =3D container_of(txq->sta, struct st=
a_info,
> sta);
> - struct ieee80211_tx_info *info =3D IEEE80211_SKB_CB(skb);
> + struct ieee80211_fast_tx *fast_tx;
>
> - hdr->seq_ctrl =3D ieee80211_tx_next_seq(sta, txq->tid);
> - if (test_bit(IEEE80211_TXQ_AMPDU, &txqi->flags))
> - info->flags |=3D IEEE80211_TX_CTL_AMPDU;
> - else
> - info->flags &=3D ~IEEE80211_TX_CTL_AMPDU;
> + fast_tx =3D rcu_dereference(sta->fast_tx);
> + if (WARN_ON(!fast_tx)) {
> + /* lost the fast_tx pointer while the packet was =
queued */
> + ieee80211_free_txskb(hw, skb);
> + goto begin;
> + }
> + ieee80211_xmit_fast_finish(sta->sdata, sta, fast_tx, skb,=
false);
> + } else {
> + struct ieee80211_tx_data tx =3D { };
> +
> + __skb_queue_head_init(&tx.skbs);
> + tx.local =3D local;
> + if (txq->sta) {
> + struct sta_info *sta =3D container_of(txq->sta,
> + struct sta_in=
fo,
> + sta);
sta is unneeded give the assignment below?
Regards,
Jason
> + tx.sta =3D container_of(txq->sta, struct sta_info=
, sta);
> + tx.sdata =3D sta->sdata;
> + } else {
> + tx.sdata =3D vif_to_sdata(info->control.vif);
> + }
> +
> + __skb_queue_tail(&tx.skbs, skb);
> +
> + if (invoke_tx_handlers_late(&tx))
> + goto begin;
> +
> + __skb_unlink(skb, &tx.skbs);
> }
next prev parent reply other threads:[~2016-09-02 2:48 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-17 12:58 [PATCH] mac80211: Move crypto IV generation to after TXQ dequeue Toke Høiland-Jørgensen
2016-08-17 13:08 ` Johannes Berg
2016-08-17 13:16 ` Toke Høiland-Jørgensen
2016-08-17 13:18 ` Johannes Berg
2016-08-17 13:23 ` Toke Høiland-Jørgensen
2016-08-17 14:45 ` [PATCH v2] " Toke Høiland-Jørgensen
2016-08-17 19:49 ` Johannes Berg
2016-08-17 20:07 ` [Make-wifi-fast] " Dave Taht
2016-08-17 20:43 ` Johannes Berg
2016-08-22 14:47 ` Toke Høiland-Jørgensen
2016-08-26 8:38 ` Johannes Berg
2016-08-26 8:54 ` Toke Høiland-Jørgensen
2016-08-24 16:20 ` [PATCH v3] mac80211: Move reorder-sensitive TX handlers " Toke Høiland-Jørgensen
2016-08-30 13:15 ` [PATCH v4] " Toke Høiland-Jørgensen
2016-08-31 21:06 ` Johannes Berg
2016-09-01 8:23 ` Toke Høiland-Jørgensen
2016-09-01 8:34 ` Johannes Berg
2016-09-01 8:38 ` Toke Høiland-Jørgensen
2016-09-01 9:07 ` Johannes Berg
2016-09-01 9:20 ` Toke Høiland-Jørgensen
2016-09-01 9:27 ` Johannes Berg
2016-09-01 9:42 ` Toke Høiland-Jørgensen
2016-09-01 16:03 ` [PATCH v5] " Toke Høiland-Jørgensen
2016-09-01 17:59 ` Johannes Berg
2016-09-01 18:30 ` Toke Høiland-Jørgensen
2016-09-01 18:35 ` Johannes Berg
2016-09-02 2:48 ` Jason Andryuk [this message]
2016-09-02 9:27 ` Toke Høiland-Jørgensen
2016-09-02 13:41 ` [PATCH v6] " Toke Høiland-Jørgensen
2016-09-02 14:44 ` Toke Høiland-Jørgensen
2016-09-05 11:30 ` [PATCH v7] " Toke Høiland-Jørgensen
2016-09-05 17:49 ` Felix Fietkau
2016-09-05 17:59 ` Toke Høiland-Jørgensen
2016-09-05 18:44 ` Felix Fietkau
2016-09-06 11:43 ` Toke Høiland-Jørgensen
2016-09-06 11:45 ` Toke Høiland-Jørgensen
2016-09-06 11:44 ` [PATCH v8] " Toke Høiland-Jørgensen
2016-09-06 22:04 ` Felix Fietkau
2016-09-12 12:35 ` Johannes Berg
2016-09-12 13:08 ` Toke Høiland-Jørgensen
2016-09-12 13:19 ` Johannes Berg
2016-09-22 17:04 ` [PATCH v9 0/2] mac80211: TXQ dequeue path rework Toke Høiland-Jørgensen
2016-09-22 17:04 ` [PATCH v9 1/2] mac80211: Move ieee802111_tx_dequeue() to later in tx.c Toke Høiland-Jørgensen
2016-09-30 11:13 ` Johannes Berg
2016-09-22 17:04 ` [PATCH v9 2/2] mac80211: Move reorder-sensitive TX handlers to after TXQ dequeue Toke Høiland-Jørgensen
2016-09-30 10:27 ` Johannes Berg
2016-09-30 12:39 ` Toke Høiland-Jørgensen
2016-09-30 12:43 ` Johannes Berg
2016-09-30 12:45 ` Toke Høiland-Jørgensen
2016-09-30 12:49 ` Johannes Berg
2016-09-30 14:01 ` Toke Høiland-Jørgensen
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='CAKf6xptJrniYA3Q2pYN4DkpKf_30dNJTdHqm+jCM=enDRSQhJQ@mail.gmail.com' \
--to=jandryuk@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=make-wifi-fast@lists.bufferbloat.net \
--cc=toke@toke.dk \
/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).