All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cong Wang <xiyou.wangcong@gmail.com>
To: Flavio Leitner <fbl@redhat.com>
Cc: Linux Kernel Network Developers <netdev@vger.kernel.org>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Paolo Abeni <pabeni@redhat.com>,
	David Miller <davem@davemloft.net>,
	Florian Westphal <fw@strlen.de>,
	NetFilter <netfilter-devel@vger.kernel.org>
Subject: Re: [PATCH net-next] net: preserve sock reference when scrubbing the skb.
Date: Thu, 28 Jun 2018 16:18:47 -0700	[thread overview]
Message-ID: <CAM_iQpW6B+4eUO6tKVpbHoBZhYmjTijXzWCFzf5JCodL386tZw@mail.gmail.com> (raw)
In-Reply-To: <20180625155610.30802-1-fbl@redhat.com>

On Mon, Jun 25, 2018 at 8:59 AM Flavio Leitner <fbl@redhat.com> wrote:
> XPS breaks because the queue mapping stored in the socket is not
> available, so another random queue might be selected when the stack
> needs to transmit something like a TCP ACK, or TCP Retransmissions.
> That causes packet re-ordering and/or performance issues.

Now let me look at the XPS part, a key question first:

By queue mapping stored in socket, you mean sk_tx_queue_get(),
which is only called in __netdev_pick_tx(), and of course even before
hitting qdisc layer.

However, veth device orphans the skb inside its veth_xmit(),
(dev_forward_skb()), which is after going through qdisc layer.

So, how could the skb_orphan() called _after_ XPS break XPS?

We are talking about a simple netns-to-netns case, so XPS won't
be hit again once leaves it.

Another _dumb_ question:

veth is virtual device, it has literally no queues, I know technically
there is a queue for installing qdisc.

So, why does even queue mapping matters here???

      parent reply	other threads:[~2018-06-28 23:19 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-25 15:56 [PATCH net-next] net: preserve sock reference when scrubbing the skb Flavio Leitner
2018-06-26  4:15 ` Cong Wang
2018-06-26  6:41   ` Eric Dumazet
2018-06-26 12:38     ` Flavio Leitner
2018-06-26 13:06       ` Eric Dumazet
2018-06-26 13:32         ` Flavio Leitner
2018-06-26 21:48     ` Cong Wang
2018-06-26 22:03       ` Flavio Leitner
2018-06-26 22:47         ` Cong Wang
2018-06-26 23:33           ` Flavio Leitner
2018-06-27  0:29             ` Cong Wang
2018-06-27  0:39               ` Flavio Leitner
2018-06-27  1:28                 ` Cong Wang
2018-06-27 12:31                   ` Flavio Leitner
2018-06-27 19:06                     ` Cong Wang
2018-06-27 20:19                       ` Flavio Leitner
2018-06-28 21:51                         ` Cong Wang
2018-06-27  2:32               ` Eric Dumazet
2018-06-26 23:53           ` Eric Dumazet
2018-06-27  0:44             ` Cong Wang
2018-06-27  2:35               ` Eric Dumazet
2018-06-27 18:59                 ` Cong Wang
2018-06-27 19:33                   ` Eric Dumazet
2018-06-27 19:55                     ` Cong Wang
2018-06-28 23:18 ` Cong Wang [this message]

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=CAM_iQpW6B+4eUO6tKVpbHoBZhYmjTijXzWCFzf5JCodL386tZw@mail.gmail.com \
    --to=xiyou.wangcong@gmail.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=fbl@redhat.com \
    --cc=fw@strlen.de \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.