linux/net
Eric Dumazet 45203a3b38 net_sched: add 64bit rate estimators
struct gnet_stats_rate_est contains u32 fields, so the bytes per second
field can wrap at 34360Mbit.

Add a new gnet_stats_rate_est64 structure to get 64bit bps/pps fields,
and switch the kernel to use this structure natively.

This structure is dumped to user space as a new attribute :

TCA_STATS_RATE_EST64

Old tc command will now display the capped bps (to 34360Mbit), instead
of wrapped values, and updated tc command will display correct
information.

Old tc command output, after patch :

eric:~# tc -s -d qd sh dev lo
qdisc pfifo 8001: root refcnt 2 limit 1000p
 Sent 80868245400 bytes 1978837 pkt (dropped 0, overlimits 0 requeues 0)
 rate 34360Mbit 189696pps backlog 0b 0p requeues 0

This patch carefully reorganizes "struct Qdisc" layout to get optimal
performance on SMP.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-06-11 02:51:03 -07:00
..
9p Lots of virtio work which wasn't quite ready for last merge window. Plus 2013-05-02 14:14:04 -07:00
802 net/802/mrp: fix lockdep splat 2013-05-14 13:02:30 -07:00
8021q net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
appletalk net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
atm net: always pass struct netdev_notifier_info to netdevice notifiers 2013-05-28 21:58:54 -07:00
ax25 net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
batman-adv batman-adv: Start new development cycle 2013-05-29 02:44:56 +02:00
bluetooth Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
bridge bridge: Add a flag to control unicast packet flood. 2013-06-11 02:04:32 -07:00
caif net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
can net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
ceph libceph: init sent and completed when starting 2013-05-13 12:52:23 -05:00
core net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
dcb rtnetlink: Remove passing of attributes into rtnl_doit functions 2013-03-22 10:31:16 -04:00
dccp
decnet net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
dns_resolver
dsa dsa: fix freeing of sparse port allocation 2013-03-25 12:23:41 -04:00
ethernet net: add ETH_P_802_3_MIN 2013-03-28 01:20:42 -04:00
ieee802154 net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
ipv4 net: remove last caller of skb_tail_offset() and itself 2013-06-10 22:22:23 -07:00
ipv6 tcp: add low latency socket poll support. 2013-06-10 21:22:36 -07:00
ipx net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
irda net: irda: using kzalloc() instead of kmalloc() to avoid strncpy() issue. 2013-05-19 15:10:47 -07:00
iucv net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
key xfrm: force a garbage collection after deleting a policy 2013-05-31 17:30:07 -07:00
l2tp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-07 18:37:01 -04:00
lapb
llc llc: Fix missing msg_namelen update in llc_ui_recvmsg() 2013-04-07 16:28:01 -04:00
mac80211 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
mac802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-30 03:55:20 -04:00
mpls MPLS: Add limited GSO support 2013-05-27 22:50:59 -07:00
netfilter net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
netlabel net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
netlink netlink: Add compare function for netlink_table 2013-06-11 02:39:42 -07:00
netrom net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
nfc NFC: Remove commented out LLCP related Makefile line 2013-05-21 10:47:41 +02:00
openvswitch net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
packet net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
phonet net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
rds
rfkill Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-04-22 14:58:14 -04:00
rose net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
rxrpc
sched net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
sctp sctp: Correct byte order of access to skb->{network, transport}_header 2013-05-31 01:41:36 -07:00
sunrpc Merge branch 'for-3.10' of git://linux-nfs.org/~bfields/linux 2013-05-31 09:48:56 +09:00
tipc net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
unix af_unix: fix a fatal race with bit fields 2013-05-01 15:13:49 -04:00
vmw_vsock Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-30 03:55:20 -04:00
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
x25 net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
xfrm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
compat.c net: Unbreak compat_sys_{send,recv}msg 2013-06-06 11:52:14 -07:00
Kconfig net: add low latency socket poll 2013-06-10 21:22:35 -07:00
Makefile MPLS: Add limited GSO support 2013-05-27 22:50:59 -07:00
nonet.c
socket.c net: add low latency socket poll 2013-06-10 21:22:35 -07:00
sysctl_net.c