netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch net-next v5 0/4] return offloaded stats as default and expose original sw stats
@ 2016-06-21 15:15 Jiri Pirko
  2016-06-21 15:15 ` [patch net-next v5 1/4] netdevice: add SW statistics ndo Jiri Pirko
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: Jiri Pirko @ 2016-06-21 15:15 UTC (permalink / raw)
  To: netdev
  Cc: davem, nogahf, idosch, eladr, yotamg, ogerlitz, roopa, nikolay,
	linville, tgraf, gospo, sfeldma, sd, eranbe, ast, edumazet,
	hannes, f.fainelli, dsa

From: Jiri Pirko <jiri@mellanox.com>

The problem we try to handle is about offloaded forwarded packets
which are not seen by kernel. Let me try to draw it:

    port1                       port2 (HW stats are counted here)
      \                          /
       \                        /
        \                      /
         --(A)---- ASIC --(B)--
                    |
                   (C)
                    |
                   CPU (SW stats are counted here)


Now we have couple of flows for TX and RX (direction does not matter here):

1) port1->A->ASIC->C->CPU

   For this flow, HW and SW stats are equal.

2) port1->A->ASIC->C->CPU->C->ASIC->B->port2

   For this flow, HW and SW stats are equal.

3) port1->A->ASIC->B->port2

   For this flow, SW stats are 0.

The purpose of this patchset is to provide facility for user to
find out the difference between flows 1+2 and 3. In other words, user
will be able to see the statistics for the slow-path (through kernel).

Also note that HW stats are what someone calls "accumulated" stats.
Every packet counted by SW is also counted by HW. Not the other way around.

As a default the accumulated stats (HW) will be exposed to user
so the userspace apps can react properly.

---
v4->v5:
- updated cover letter
- patch3/4:
  - using memcpy directly to copy stats as requested by DaveM
v3->v4:
- patch1/4:
  - fixed "return ()" pointed out by EricD
- patch2/4:
  - fixed if_nlmsg_size as pointed out by EricD
v2->v3:
- patch1/4:
  - added dev_have_sw_stats helper
- patch2/4:
  - avoided memcpy as requested by DaveM
- patch3/4:
  - use new dev_have_sw_stats helper
v1->v2:
- patch3/4: 
  - fixed NULL initialization

Nogah Frankel (4):
  netdevice: add SW statistics ndo
  rtnetlink: add HW/SW stats distinction in rtnl_fill_stats
  net: core: add SW stats to if_stats_msg
  mlxsw: spectrum: Implement SW stats ndo and expose HW stats by default

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 110 +++++++++++++++++++++++--
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h |   5 ++
 include/linux/netdevice.h                      |  13 +++
 include/uapi/linux/if_link.h                   |   2 +
 net/core/dev.c                                 |  31 +++++++
 net/core/rtnetlink.c                           |  49 +++++++++--
 6 files changed, 195 insertions(+), 15 deletions(-)

-- 
2.5.5

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-07-08 14:05 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-21 15:15 [patch net-next v5 0/4] return offloaded stats as default and expose original sw stats Jiri Pirko
2016-06-21 15:15 ` [patch net-next v5 1/4] netdevice: add SW statistics ndo Jiri Pirko
2016-06-21 15:15 ` [patch net-next v5 2/4] rtnetlink: add HW/SW stats distinction in rtnl_fill_stats Jiri Pirko
2016-06-21 15:15 ` [patch net-next v5 3/4] net: core: add SW stats to if_stats_msg Jiri Pirko
2016-06-21 15:15 ` [patch net-next v5 4/4] mlxsw: spectrum: Implement SW stats ndo and expose HW stats by default Jiri Pirko
2016-06-22 19:32 ` [patch net-next v5 0/4] return offloaded stats as default and expose original sw stats Roopa Prabhu
2016-06-23  5:40   ` Jiri Pirko
2016-06-23 11:27     ` Roopa Prabhu
2016-06-23 11:35       ` Jiri Pirko
2016-06-23 15:11         ` Anuradha Karuppiah
2016-06-23 15:40           ` Jiri Pirko
2016-06-25 15:50             ` Roopa Prabhu
2016-06-26  9:33               ` Jiri Pirko
2016-06-26 18:06                 ` Roopa Prabhu
2016-06-26 18:15                   ` Jiri Pirko
2016-06-27  2:53                     ` Roopa Prabhu
2016-06-27  6:51                       ` Jiri Pirko
2016-06-27 13:02                         ` Roopa Prabhu
2016-06-27 13:11                           ` Jiri Pirko
2016-07-08 14:05                             ` Roopa Prabhu

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).