kernel-ark/drivers/net/bonding
Eric Dumazet 9d21493b4b net: tx scalability works : trans_start
struct net_device trans_start field is a hot spot on SMP and high performance
devices, particularly multi queues ones, because every transmitter dirties
it. Is main use is tx watchdog and bonding alive checks.

But as most devices dont use NETIF_F_LLTX, we have to lock
a netdev_queue before calling their ndo_start_xmit(). So it makes
sense to move trans_start from net_device to netdev_queue. Its update
will occur on a already present (and in exclusive state) cache line, for
free.

We can do this transition smoothly. An old driver continue to
update dev->trans_start, while an updated one updates txq->trans_start.

Further patches could also put tx_bytes/tx_packets counters in 
netdev_queue to avoid dirtying dev->stats (vlan device comes to mind)

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-05-17 20:55:16 -07:00
..
bond_3ad.c net: remove needless (now buggy) & from dev->dev_addr 2009-05-17 11:59:47 -07:00
bond_3ad.h Remove duplicate slow protocol define in bond_3ad.h 2009-05-09 13:15:49 -07:00
bond_alb.c bonding: fix alb mode locking regression 2009-05-04 21:28:10 -07:00
bond_alb.h Convert bonding timers to workqueues 2007-10-23 20:32:00 -04:00
bond_ipv6.c bonding: use pr_debug instead of own macros 2008-12-09 23:09:22 -08:00
bond_main.c net: tx scalability works : trans_start 2009-05-17 20:55:16 -07:00
bond_sysfs.c Bonding: fix zero address hole bug in arp_ip_target list 2009-04-13 00:12:41 -07:00
bonding.h drivers/net/bonding: fix sparse warnings: move decls to header file 2008-12-25 23:58:57 -08:00
Makefile bonding: send IPv6 neighbor advertisement on failover 2008-11-06 00:49:37 -05:00