freebsd-skq/sys/netgraph
Gleb Smirnoff 48a47609bc Provide a findhook method for ng_socket(4). The node stores a
hash with names of its hooks. It starts with size of 16, and
grows when number of hooks reaches twice the current size. A
failure to grow (memory is allocated with M_NOWAIT) isn't
fatal, however.

I used standard hash(9) function for the hash. With 25000
hooks named in the mpd (ports/net/mpd5) manner of "b%u", the
distributions is the following: 72.1% entries consist of one
element, 22.1% consist of two, 5.2% consist of three and
0.6% of four.

Speedup in a synthetic test that creates 25000 hooks and then
runs through a long cyclce dereferencing them in a random order
is over 25 times.
2012-01-23 16:43:13 +00:00
..
atm Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
bluetooth Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
netflow Add missing unlocks. 2011-07-06 09:43:25 +00:00
netgraph.h Constify "address" argument of ng_address_path(). 2011-11-06 05:20:27 +00:00
ng_async.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_async.h
ng_atmllc.c - Fix potential double mbuf free: M_PREPEND may free mbuf chain and return 2011-11-06 05:24:54 +00:00
ng_atmllc.h
ng_base.c Convert locks that protect name hash, ID hash and typelist from 2012-01-23 15:17:14 +00:00
ng_bpf.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_bpf.h
ng_bridge.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_bridge.h Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, 2010-05-05 22:06:05 +00:00
ng_car.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_car.h
ng_cisco.c Fix potential double mbuf free: M_PREPEND may free mbuf chain and return 2011-11-06 05:23:42 +00:00
ng_cisco.h
ng_deflate.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_deflate.h
ng_device.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_device.h
ng_echo.c
ng_echo.h
ng_eiface.c Provide fake link status information in an attempt to let ng_eiface(4) 2011-05-24 14:10:33 +00:00
ng_eiface.h Allow for MTU sizes of up to ETHER_MAX_LEN_JUMBO (i.e. 9018) bytes to be 2010-11-22 12:32:19 +00:00
ng_etf.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_etf.h
ng_ether_echo.c
ng_ether_echo.h
ng_ether.c remove RESTARTABLE_PANICS option 2011-07-25 09:12:48 +00:00
ng_ether.h
ng_fec.c In r191367 the need for if_free_type() was removed and a new member 2011-11-11 22:57:52 +00:00
ng_fec.h
ng_frame_relay.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_frame_relay.h
ng_gif_demux.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_gif_demux.h
ng_gif.c
ng_gif.h
ng_hole.c
ng_hole.h
ng_hub.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_hub.h Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, 2010-05-05 22:06:05 +00:00
ng_iface.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_iface.h
ng_ip_input.c
ng_ip_input.h
ng_ipfw.c Add missing static. 2012-01-16 12:33:55 +00:00
ng_ipfw.h bring the NGM_IPFW_COOKIE back into ng_ipfw.h, libnetgraph expects 2009-12-28 12:29:13 +00:00
ng_ksocket.c Use strchr() and strrchr(). 2012-01-02 12:12:10 +00:00
ng_ksocket.h
ng_l2tp.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_l2tp.h
ng_lmi.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_lmi.h
ng_message.h
ng_mppc.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_mppc.h
ng_nat.c Sync ng_nat with recent (r222806) ipfw_nat changes: 2011-06-07 06:48:42 +00:00
ng_nat.h
ng_one2many.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_one2many.h Add XMIT_FAILOVER transmit algorithm to ng_one2many node. Packets are 2011-03-01 13:10:56 +00:00
ng_parse.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_parse.h
ng_patch.c Use M_WAITOK flag instead M_WAIT for malloc. 2011-04-18 09:10:27 +00:00
ng_patch.h Style(9) fixes: 2010-06-10 16:45:30 +00:00
ng_pipe.c Assume the link to be dead if bit error rate (BER) parameter is set to 1. 2011-05-24 14:36:32 +00:00
ng_pipe.h Start copyright notice with /*- 2010-04-07 16:29:10 +00:00
ng_ppp.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_ppp.h
ng_pppoe.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_pppoe.h
ng_pptpgre.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_pptpgre.h
ng_pred1.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_pred1.h
ng_rfc1490.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_rfc1490.h
ng_sample.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_sample.h
ng_socket.c Provide a findhook method for ng_socket(4). The node stores a 2012-01-23 16:43:13 +00:00
ng_socket.h
ng_socketvar.h In ng_socket(4) expose less kernel internals to userland. This commit 2012-01-23 15:39:45 +00:00
ng_source.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_source.h Remove defunct email address from header as well. 2010-07-06 16:55:39 +00:00
ng_split.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_split.h
ng_sppp.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_sppp.h
ng_tag.c The newhook method can be called in ISR context at 2012-01-17 18:10:25 +00:00
ng_tag.h
ng_tcpmss.c Remove alignment constraints. 2010-04-01 10:41:01 +00:00
ng_tcpmss.h
ng_tee.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_tee.h
ng_tty.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_tty.h
ng_UI.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_UI.h
ng_vjc.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_vjc.h
ng_vlan.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_vlan.h
NOTES