netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>, netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	Jamal Hadi Salim <jhs@mojatatu.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Jiri Pirko <jiri@resnulli.us>, Eric Dumazet <edumazet@google.com>,
	Ivan Vecera <ivecera@redhat.com>
Subject: Re: [PATCH net-next 5/5] Revert: "net: sched: put back q.qlen into a single location"
Date: Tue, 09 Apr 2019 09:52:40 +0200	[thread overview]
Message-ID: <0f1b4b528b14822c067a4c20f237f2a02c719dfa.camel@redhat.com> (raw)
In-Reply-To: <1871d6ac-cb83-69a5-608c-d944fa93b315@gmail.com>

Hi,

On Mon, 2019-04-08 at 14:17 -0700, Eric Dumazet wrote:
> On 04/08/2019 09:35 AM, Paolo Abeni wrote:
> > This revert commit 46b1c18f9deb ("net: sched: put back q.qlen
> > into a single location").
> > After the previous patch nobody accesses directly qlen for a child
> > qdisc when such qdisc does per CPU stats accounting.
> > In the control path nobody uses directly qlen since commit
> > 677f1bc207c ("net: sched: introduce and use qdisc tree flush/purge
> > helpers"), so we can remove the contented atomic ops from the
> > datapath.
> > 
> 
> Have you tested HTB with a pfifo_fast on a throttled class ?
> 
> I do not see any changes in HTB in your patch series, so it is not
> clear why your patch series is not adding back the issue.

Thank you for the feedback.

I tested this series enslaving pfifo_fast to each classful qdiscs -
including HTB - sending traffic through the pfifo_fast qdisc, and
checking correct accounting.

When pfifo_fast is enslaved to HTB, the NOLOCK flag is cleared -  by
qdisc_graft(), as HTB is a lock qdisc. As per patch 4/5, TCQ_F_CPUSTATS
is cleared, too, so pfifo_fast switches to global accounting, under
root lock protection.

In HTB context, <child pfifo_fast>->q.qlen should be always valid, no
changes required there, nor to any other classful qdisc - until we will
have lockless classful qdiscs: they should not access <child>->q.qlen
directly.

Please let me know if the above is somewhat clear. Have I missed
something?

Thanks,

Paolo



  reply	other threads:[~2019-04-09  7:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-08 16:35 [PATCH net-next 0/5] net: sched: move back qlen to per CPU accounting Paolo Abeni
2019-04-08 16:35 ` [PATCH net-next 1/5] net: caif: avoid using qdisc_qlen() Paolo Abeni
2019-04-08 16:35 ` [PATCH net-next 2/5] net: sched: prefer qdisc_is_empty() over direct qlen access Paolo Abeni
2019-04-08 16:35 ` [PATCH net-next 3/5] net: sched: always do stats accounting according to TCQ_F_CPUSTATS Paolo Abeni
2019-04-09  9:50   ` kbuild test robot
2019-04-09 10:41     ` Paolo Abeni
2019-04-09 10:19   ` kbuild test robot
2019-04-08 16:35 ` [PATCH net-next 4/5] net: sched: when clearing NOLOCK, clear TCQ_F_CPUSTATS, too Paolo Abeni
2019-04-08 16:35 ` [PATCH net-next 5/5] Revert: "net: sched: put back q.qlen into a single location" Paolo Abeni
2019-04-08 21:17   ` Eric Dumazet
2019-04-09  7:52     ` Paolo Abeni [this message]
2019-04-09  9:51   ` kbuild test robot
2019-04-09 11:55   ` kbuild test robot

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=0f1b4b528b14822c067a4c20f237f2a02c719dfa.camel@redhat.com \
    --to=pabeni@redhat.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=ivecera@redhat.com \
    --cc=jhs@mojatatu.com \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --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 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).