git: network - Completely revamp the netisr / dispatch code
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Sep 10 09:10:29 PDT 2010
commit c3c96e4421a1087a390825eac6c01c9ed9182387
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Sep 9 15:13:36 2010 -0700
network - Completely revamp the netisr / dispatch code
* All netisrs are dispatched MPSAFE (followup in later commits)
* Centralize the protocol threads. There is now just one thread
per cpu managed by the netisr code. No more separate tcp/udp threads
on each cpu.
* Make the mbuf M_HASH/m_pkthdr.hash mechanic the central routing
mechanic for netmsgs.
* Remove the netisr ip_mport and pktinfo_portfn stuff and replace with a
cpufn function which handles M_HASH/m_pkthdr.hash when M_HASH is not
already set.
* Seriously clean up the packet input paths. Adjust ether_input_chain() and
friends to not have to adjust the mbuf forwards and backwards, instead
pass a header offset to the ni_cpufn function. The ip pullup and other
related code will use the offset to determine where the ip header is
within the packet.
Summary of changes:
sys/bus/usb/usb_ethersubr.c | 7 +-
sys/dev/acpica5/acpi_cpu_pstate.c | 14 +-
sys/dev/netif/ic/if_ic.c | 2 +-
sys/kern/kern_poll.c | 18 +-
sys/net/bpf.c | 2 +-
sys/net/bridge/if_bridge.c | 2 +-
sys/net/ef/if_ef.c | 8 +-
sys/net/faith/if_faith.c | 3 +-
sys/net/gif/if_gif.c | 3 +-
sys/net/if.c | 22 +-
sys/net/if_atmsubr.c | 3 +-
sys/net/if_ethersubr.c | 146 ++------
sys/net/if_poll.c | 20 +-
sys/net/if_var.h | 1 -
sys/net/ipfw/ip_fw2.c | 4 +-
sys/net/netisr.c | 667 +++++++++++++++-------------------
sys/net/netisr.h | 39 +--
sys/net/netmsg.h | 174 +++++-----
sys/net/netmsg2.h | 12 +-
sys/net/ppp/if_ppp.c | 7 +-
sys/net/sppp/if_spppsubr.c | 13 +-
sys/net/stf/if_stf.c | 2 +-
sys/net/tun/if_tun.c | 2 +-
sys/netbt/bt_input.c | 4 +
sys/netbt/bt_proto.c | 3 +-
sys/netgraph/iface/ng_iface.c | 2 +-
sys/netgraph/netgraph/ng_base.c | 8 +-
sys/netgraph7/ng_base.c | 4 +-
sys/netgraph7/ng_iface.c | 2 +-
sys/netgraph7/ng_ip_input.c | 2 +-
sys/netinet/if_ether.c | 20 +-
sys/netinet/in_proto.c | 7 +-
sys/netinet/ip_demux.c | 178 ++++------
sys/netinet/ip_divert.c | 15 +-
sys/netinet/ip_flow.c | 6 +-
sys/netinet/ip_gre.c | 4 +-
sys/netinet/ip_input.c | 121 ++++---
sys/netinet/ip_var.h | 9 +-
sys/netinet/tcp_subr.c | 65 +---
sys/netinet/tcp_syncache.c | 4 +-
sys/netinet/tcp_usrreq.c | 4 +-
sys/netinet/tcp_var.h | 1 -
sys/netinet/udp_usrreq.c | 16 +-
sys/netinet6/ah_input.c | 2 +-
sys/netinet6/esp_input.c | 2 +-
sys/netinet6/frag6.c | 5 +-
sys/netinet6/in6_proto.c | 7 +-
sys/netinet6/ip6_input.c | 5 +-
sys/netinet6/ip6_var.h | 2 +-
sys/netproto/atalk/aarp.c | 5 +-
sys/netproto/atalk/ddp_input.c | 7 +-
sys/netproto/atalk/ddp_usrreq.c | 9 +-
sys/netproto/atm/atm_subr.c | 5 +-
sys/netproto/atm/ipatm/ipatm_input.c | 2 +-
sys/netproto/ipx/ipx_input.c | 8 +-
sys/netproto/ipx/ipx_ip.c | 2 +-
sys/netproto/mpls/mpls_demux.c | 39 +-
sys/netproto/mpls/mpls_input.c | 15 +-
sys/netproto/mpls/mpls_var.h | 3 +-
sys/netproto/natm/natm.c | 11 +-
sys/netproto/ns/ns_input.c | 8 +-
sys/netproto/ns/ns_ip.c | 2 +-
sys/sys/mbuf.h | 3 +-
sys/sys/thread.h | 4 +-
64 files changed, 783 insertions(+), 1009 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c3c96e4421a1087a390825eac6c01c9ed9182387
--
DragonFly BSD source repository
More information about the Commits
mailing list