git: network - Completely revamp the netisr / dispatch code

看板DFBSD_commit作者時間15年前 (2010/09/11 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit c3c96e4421a1087a390825eac6c01c9ed9182387 Author: Matthew Dillon <dillon@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
文章代碼(AID): #1CYd9kZX (DFBSD_commit)