All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarod Wilson <jarod@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jiri Pirko <jiri@mellanox.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Tom Herbert <tom@herbertland.com>,
	Jay Vosburgh <j.vosburgh@gmail.com>,
	Veaceslav Falico <vfalico@gmail.com>,
	Andy Gospodarek <gospo@cumulusnetworks.com>,
	netdev@vger.kernel.org
Subject: Re: [RFC PATCH net] net/core: don't increment rx_dropped on inactive slaves
Date: Tue, 26 Jan 2016 16:14:53 -0500	[thread overview]
Message-ID: <20160126211453.GQ59058@redhat.com> (raw)
In-Reply-To: <1453562589.1223.445.camel@edumazet-glaptop2.roam.corp.google.com>

On Sat, Jan 23, 2016 at 07:23:09AM -0800, Eric Dumazet wrote:
> On Fri, 2016-01-22 at 14:11 -0500, Jarod Wilson wrote:
> 
> > ---
> >  net/core/dev.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/net/core/dev.c b/net/core/dev.c
> > index 8cba3d8..1354c7b 100644
> > --- a/net/core/dev.c
> > +++ b/net/core/dev.c
> > @@ -4153,8 +4153,11 @@ ncls:
> >  		else
> >  			ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
> >  	} else {
> > +		if (deliver_exact)
> > +			goto inactive; /* bond or team inactive slave */
> >  drop:
> >  		atomic_long_inc(&skb->dev->rx_dropped);
> > +inactive:
> >  		kfree_skb(skb);
> >  		/* Jamal, now you will not able to escape explaining
> >  		 * me how you were going to use this. :-)
> 
> Note that if you still have a kfree_skb() instead of consume_skb(),
> some tools will still give you a wrong signal (packet dropped ...).
> 
> But then maybe the signal is telling some truth.
> 
> We receive a packet, and decide to drop it because no one was willing to
> handle it.
> 
> Maybe someone wants to know a particular slave receives 10,000 such
> frames per second and hurts performance with useless work.
> 
> We should at least increment some counter and maybe dump it with
> "ethtool -S" or something.

I've been digging into ethtool -S a little bit, and am somewhat at a loss
as to how I would wire into this. From what I've been able to figure out,
it's entirely device-specific-ish counters spit out. On my sfc cards, I
get rx_noskb_drops and rx_nodesc_drop_cnt output from ethtool -S, but for
the core network stack, these are actually added up and shoved into
rx_dropped, and no other network driver has those two individual counters.

By itself, rx_dropped isn't output directly anywhere from ethtool, 
so far as I can see. And ethtool -S bondX shows absolutely nothing.
*Should* ethtool -S be dumping all the network core stats? I have to say I
was more than a little surprised at this:

# ethtool -S bond0
no stats available

Particularly given that if I look in /proc/net/dev or
/sys/devices/virtual/net/bond0/statistics/*, there are quite a few stats
that are being tracked and make their way out to userspace...

-- 
Jarod Wilson
jarod@redhat.com

  reply	other threads:[~2016-01-26 21:15 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-22 19:11 [RFC PATCH net] net/core: don't increment rx_dropped on inactive slaves Jarod Wilson
2016-01-22 20:59 ` Jay Vosburgh
2016-01-23  8:26   ` Jiri Pirko
2016-01-23  8:07 ` Jiri Pirko
2016-01-23 14:19 ` Andy Gospodarek
2016-01-23 15:23 ` Eric Dumazet
2016-01-26 21:14   ` Jarod Wilson [this message]
2016-01-26 21:21     ` David Miller
2016-01-26 21:36       ` Jarod Wilson
2016-01-26 21:24     ` Eric Dumazet
2016-01-26 21:35       ` Jarod Wilson
2016-01-25  6:42 ` David Miller
2016-01-25 14:27   ` Jarod Wilson
2016-01-26  4:45     ` Jarod Wilson
2016-01-27 20:21 ` [PATCH net 0/4] net: add rx_unhandled stat counter Jarod Wilson
2016-01-27 20:21   ` [PATCH net 1/4] " Jarod Wilson
2016-01-27 20:21   ` [PATCH net 2/4] net-procfs: show rx_unhandled counters Jarod Wilson
2016-01-27 20:21   ` [PATCH net 3/4] team: track sum of rx_unhandled for all slaves Jarod Wilson
2016-01-27 20:21   ` [PATCH net 4/4] bond: " Jarod Wilson
2016-01-27 21:09   ` [PATCH net 0/4] net: add rx_unhandled stat counter Eric Dumazet
2016-01-28  6:02     ` Jarod Wilson
2016-01-28  6:10       ` Jarod Wilson
2016-01-28  6:18       ` Jarod Wilson
2016-01-28 13:00         ` Eric Dumazet
2016-01-28 14:38           ` Jarod Wilson
2016-01-28 14:42             ` Eric Dumazet
2016-01-28 14:44               ` Eric Dumazet
2016-01-28 14:46                 ` Eric Dumazet
2016-01-28 15:11                   ` Jarod Wilson
2016-01-28 13:00       ` Eric Dumazet
2016-01-28 15:49 ` [PATCH net v2 0/4] net: add and use rx_nohandler " Jarod Wilson
2016-01-28 15:49   ` [PATCH net v2 1/4] net/core: relax BUILD_BUG_ON in netdev_stats_to_stats64 Jarod Wilson
2016-01-28 15:49   ` [PATCH net v2 2/4] net: add rx_nohandler stat counter Jarod Wilson
2016-01-28 15:49   ` [PATCH net v2 3/4] team: track sum of rx_nohandler for all slaves Jarod Wilson
2016-01-28 15:49   ` [PATCH net v2 4/4] bond: " Jarod Wilson
2016-01-30  3:37   ` [PATCH net v2 0/4] net: add and use rx_nohandler stat counter David Miller
2016-01-30 18:16     ` Jarod Wilson
2016-01-30 18:19   ` [PATCH net v2 1/4] net/core: relax BUILD_BUG_ON in netdev_stats_to_stats64 Jarod Wilson
2016-01-30 18:34     ` Eric Dumazet
2016-01-30 20:39       ` Jarod Wilson
2016-01-30 20:53         ` Jarod Wilson
2016-01-30 23:26           ` David Miller
2016-01-31 18:07             ` Jarod Wilson
2016-02-01 23:51   ` [PATCH net v3 0/4] net: add and use rx_nohandler stat counter Jarod Wilson
2016-02-01 23:51     ` [PATCH net v3 1/4] net/core: relax BUILD_BUG_ON in netdev_stats_to_stats64 Jarod Wilson
2016-02-01 23:51     ` [PATCH net v3 2/4] net: add rx_nohandler stat counter Jarod Wilson
2016-02-07 19:37       ` Stephen Hemminger
2016-02-07 19:46         ` David Miller
2016-02-07 20:19           ` Eric Dumazet
2016-02-08 18:32             ` Jarod Wilson
2016-02-08 19:38               ` Stephen Hemminger
2016-02-08 22:57                 ` Eric Dumazet
2016-02-09  8:40                   ` David Miller
2016-02-09 10:56                     ` Jamal Hadi Salim
2016-02-09 19:17                       ` [PATCH net-next iproute2] iplink: display rx nohandler stats Stephen Hemminger
2016-02-09 23:51                         ` Jarod Wilson
2016-02-10  1:41                           ` Stephen Hemminger
2016-02-10  4:52                             ` Eric Dumazet
2016-02-10 13:20                               ` Jarod Wilson
2016-02-10 15:06                                 ` Andy Gospodarek
2016-02-01 23:51     ` [PATCH net v3 3/4] team: track sum of rx_nohandler for all slaves Jarod Wilson
2016-02-01 23:51     ` [PATCH net v3 4/4] bond: " Jarod Wilson
2016-02-06  8:00     ` [PATCH net v3 0/4] net: add and use rx_nohandler stat counter David Miller
2016-01-28 16:22 ` [PATCH net v3 1/4] net/core: relax BUILD_BUG_ON in netdev_stats_to_stats64 Jarod Wilson

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=20160126211453.GQ59058@redhat.com \
    --to=jarod@redhat.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=gospo@cumulusnetworks.com \
    --cc=j.vosburgh@gmail.com \
    --cc=jiri@mellanox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=tom@herbertland.com \
    --cc=vfalico@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.