All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>,
	Florian Westphal <fw@strlen.de>,
	David Miller <davem@davemloft.net>,
	netdev <netdev@vger.kernel.org>,
	Stas Nichiporovich <stasn77@gmail.com>
Subject: Re: [PATCH v2 net] fq_codel: fix NET_XMIT_CN behavior
Date: Mon, 06 Jun 2016 07:29:30 -0700	[thread overview]
Message-ID: <1465223370.2968.59.camel@edumazet-glaptop3.roam.corp.google.com> (raw)
In-Reply-To: <57555536.1090801@mojatatu.com>

On Mon, 2016-06-06 at 06:49 -0400, Jamal Hadi Salim wrote:
> On 16-06-05 07:30 PM, Cong Wang wrote:
> 
> > Potentially all of the following:
> >
> > net/sched/sch_choke.c:  return NET_XMIT_CN;
> > net/sched/sch_fifo.c:   return NET_XMIT_CN;
> > net/sched/sch_generic.c:        return NET_XMIT_CN;
> > net/sched/sch_gred.c:   return NET_XMIT_CN;
> > net/sched/sch_hhf.c:            return NET_XMIT_CN;
> > net/sched/sch_red.c:    return NET_XMIT_CN;
> > net/sched/sch_sfb.c:    return NET_XMIT_CN;
> > net/sched/sch_sfq.c:            return NET_XMIT_CN;
> >
> 
> As long as we are not loosing the stat that the packet
> is dropped. Some qdiscs have a counter which indicates
> congestion drops(look at RED variants of early drops);
> maybe codel needs one. The parent also must account for
> childs drops.
> BTW, returning NET_XMIT_CN could be confusing to tcp;
> it does not mean that the packet that we are getting return
> code for was dropped; it could mean _another_ packet in
> the queue was dropped.

NET_XMIT_CN does not confuse TCP at all.

Look, the issue here is the accuracy of byte backlog in upper qdiscs,
after Cong patch.

When at enqueue(sch, P2) we drop P1, but enqueue P2, we need to take
care of reporting to upper qdisc qdisc_pkt_len(P2) - qdisc_pkt_len(P1)

We used to not call qdisc_tree_reduce_backlog() in this case, since it
was qdisc_tree_decrease_qlen(sch, delta_packets) before Cong patch.

We now need to call qdisc_tree_reduce_backlog(sch, 0, delta_bytes)

  parent reply	other threads:[~2016-06-06 14:29 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-04 17:43 [PATCH net] fq_codel: fix NET_XMIT_CN behavior Eric Dumazet
2016-06-04 19:03 ` [net] " Florian Westphal
2016-06-04 19:40   ` Eric Dumazet
2016-06-04 19:55   ` [PATCH v2 net] " Eric Dumazet
2016-06-05 13:03     ` Jamal Hadi Salim
2016-06-05 20:30     ` Cong Wang
2016-06-05 20:54       ` Eric Dumazet
2016-06-05 20:55         ` Eric Dumazet
2016-06-05 23:30           ` Cong Wang
2016-06-06 10:49             ` Jamal Hadi Salim
2016-06-06 11:42               ` Florian Westphal
2016-06-06 14:37                 ` Eric Dumazet
2016-06-06 16:18                   ` Florian Westphal
2016-06-10 12:02                     ` Jamal Hadi Salim
2016-06-06 14:29               ` Eric Dumazet [this message]
2016-06-07 22:39     ` David Miller

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=1465223370.2968.59.camel@edumazet-glaptop3.roam.corp.google.com \
    --to=eric.dumazet@gmail.com \
    --cc=davem@davemloft.net \
    --cc=fw@strlen.de \
    --cc=jhs@mojatatu.com \
    --cc=netdev@vger.kernel.org \
    --cc=stasn77@gmail.com \
    --cc=xiyou.wangcong@gmail.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.