git: ifsq: Let ifaltq_subque know its related hardware TX queue's serializer
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Fri Mar 15 00:56:35 PDT 2013
commit bfefe4a6d6b571306fcc5dc75e8a9c476234dc4d
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Fri Mar 15 13:57:21 2013 +0800
ifsq: Let ifaltq_subque know its related hardware TX queue's serializer
This avoids following operations on packet transmission hot path:
- Dereferening device driver supplied serialize function pointers
- Locating hardware TX queue's serializer
Comparing to the lwkt_serialize functions, the above two operations are
costful.
Driver changes:
- For device drivers which use the default ifnet serializer, no additional
code will be needed, if_attach() will assign ifnet serializer to
ifaltq_subque.
- For device drivers which use independent serializers for main function,
RX queues and TX queues, ifsq_set_hw_serialize() must be called to
properly assign the hardware TX queue's serializer to ifaltq_subque.
Drivers in this category are bce(4), emx(4), igb(4) and jme(4).
Summary of changes:
sys/dev/netif/bce/if_bce.c | 1 +
sys/dev/netif/emx/if_emx.c | 1 +
sys/dev/netif/igb/if_igb.c | 1 +
sys/dev/netif/jme/if_jme.c | 2 +
sys/net/altq/altq_cbq.c | 4 +-
sys/net/altq/altq_subr.c | 4 +-
sys/net/altq/if_altq.h | 11 ++++-
sys/net/bridge/if_bridge.c | 2 +-
sys/net/gif/if_gif.c | 6 +--
sys/net/gre/if_gre.c | 6 +--
sys/net/if.c | 14 +++---
sys/net/if_var.h | 105 +++++++-----------------------------------
sys/net/ifq_var.h | 30 +++++++++++-
sys/net/ppp/if_ppp.c | 6 +--
sys/net/sl/if_sl.c | 4 +-
sys/net/sppp/if_spppsubr.c | 4 +-
sys/net/stf/if_stf.c | 6 +--
sys/net/tun/if_tun.c | 4 +-
sys/net/vlan/if_vlan.c | 2 +-
sys/netgraph/fec/ng_fec.c | 6 +--
sys/netgraph/iface/ng_iface.c | 6 +--
sys/netproto/atm/atm_if.c | 6 +--
sys/netproto/ipx/ipx_ip.c | 6 +--
23 files changed, 104 insertions(+), 133 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bfefe4a6d6b571306fcc5dc75e8a9c476234dc4d
--
DragonFly BSD source repository
More information about the Commits
mailing list