android_kernel_xiaomi_sm8350/include/net
Eric Dumazet 230140cffa [INET]: Remove per bucket rwlock in tcp/dccp ehash table.
As done two years ago on IP route cache table (commit
22c047ccbc) , we can avoid using one
lock per hash bucket for the huge TCP/DCCP hash tables.

On a typical x86_64 platform, this saves about 2MB or 4MB of ram, for
litle performance differences. (we hit a different cache line for the
rwlock, but then the bucket cache line have a better sharing factor
among cpus, since we dirty it less often). For netstat or ss commands
that want a full scan of hash table, we perform fewer memory accesses.

Using a 'small' table of hashed rwlocks should be more than enough to
provide correct SMP concurrency between different buckets, without
using too much memory. Sizing of this table depends on
num_possible_cpus() and various CONFIG settings.

This patch provides some locking abstraction that may ease a future
work using a different model for TCP/DCCP table.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-11-07 04:15:11 -08:00
..
9p Use helpers to obtain task pid in printks 2007-10-19 11:53:43 -07:00
bluetooth [Bluetooth] Add support for handling simple eSCO links 2007-10-22 02:59:47 -07:00
irda [IRDA]: Make ircomm_tty static. 2007-10-26 03:56:43 -07:00
iucv [AF_IUCV]: postpone receival of iucv-packets 2007-10-10 16:54:51 -07:00
netfilter [INET]: Collect common frag sysctl variables together 2007-10-15 12:26:40 -07:00
sctp SCTP endianness annotations regression 2007-10-29 07:41:32 -07:00
tc_act [PKT_SCHED]: Add stateless NAT 2007-10-10 16:53:11 -07:00
tipc
act_api.h
addrconf.h
af_rxrpc.h
af_unix.h [AF_UNIX]: Make code static. 2007-07-31 02:28:27 -07:00
ah.h [IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr 2007-10-10 16:55:55 -07:00
arp.h
atmclip.h
ax25.h [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ax88796.h ax88796: add 93cx6 eeprom support 2007-10-10 16:53:56 -07:00
cfg80211.h [NL80211]: add netlink interface to cfg80211 2007-10-10 16:52:14 -07:00
checksum.h
cipso_ipv4.h
compat.h
datalink.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h [NET]: Wrap netdevice hardware header creation. 2007-10-10 16:52:50 -07:00
dn.h
dsfield.h
dst.h
esp.h cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
fib_rules.h [IPV4/IPV6/DECNET]: Small cleanup for fib rules. 2007-10-10 16:51:22 -07:00
flow.h
gen_stats.h
genetlink.h [GENETLINK]: Dynamic multicast groups. 2007-07-18 15:47:52 -07:00
icmp.h [IPV4]: Add ICMPMsgStats MIB (RFC 4293) 2007-10-10 16:51:28 -07:00
ieee80211_crypt.h
ieee80211_radiotap.h [MAC80211]: Add get_unaligned to ieee80211_get_radiotap_len 2007-10-10 16:47:40 -07:00
ieee80211.h [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
ieee80211softmac_wx.h
ieee80211softmac.h [IEEE80211]: Fix softmac lockdep reports. 2007-10-10 16:52:22 -07:00
if_inet6.h [IPV6]: Add ICMPMsgStats MIB (RFC 4293) [rev 2] 2007-10-10 16:51:27 -07:00
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h
inet_connection_sock.h
inet_ecn.h
inet_frag.h [INET]: Remove no longer needed ->equal callback 2007-10-17 19:47:56 -07:00
inet_hashtables.h [INET]: Remove per bucket rwlock in tcp/dccp ehash table. 2007-11-07 04:15:11 -08:00
inet_sock.h [UDP]: Make use of inet_iif() when doing socket lookups. 2007-10-25 18:54:46 -07:00
inet_timewait_sock.h [NET]: Add a network namespace parameter to struct sock 2007-10-10 16:49:05 -07:00
inetpeer.h
ip6_checksum.h
ip6_fib.h [IPV6] XFRM: Fix connected socket to use transformation. 2007-10-10 16:48:32 -07:00
ip6_route.h
ip6_tunnel.h
ip_fib.h [IPV4]: Compact some ifdefs in the fib code. 2007-11-07 04:11:41 -08:00
ip_vs.h [IPVS]: Synchronize closing of Connections 2007-11-07 04:15:10 -08:00
ip.h [INET]: Consolidate the xxx_evictor 2007-10-15 12:26:42 -07:00
ipcomp.h [IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr 2007-10-10 16:55:55 -07:00
ipconfig.h
ipip.h
ipv6.h [INET]: Remove no longer needed ->equal callback 2007-10-17 19:47:56 -07:00
ipx.h
iw_handler.h [NL80211]: add netlink interface to cfg80211 2007-10-10 16:52:14 -07:00
lapb.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
mac80211.h [MAC80211]: Update beacon_update callback documentation 2007-10-10 16:54:21 -07:00
mip6.h
ndisc.h [IPv6]: Export userland ND options through netlink (RDNSS support) 2007-10-10 21:22:05 -07:00
neighbour.h
net_namespace.h [NET]: Relax the reference counting of init_net_ns 2007-11-01 00:43:49 -07:00
netdma.h
netevent.h
netlabel.h SELinux: restore proper NetLabel caching behavior 2007-08-02 11:52:21 -04:00
netlink.h [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
netrom.h
nexthop.h
p8022.h
pkt_cls.h [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
pkt_sched.h [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
protocol.h [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
psnap.h
raw.h
rawv6.h
red.h
request_sock.h
rose.h [ROSE]: Fix rose.ko oops on unload 2007-10-07 23:44:17 -07:00
route.h
rtnetlink.h [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
sch_generic.h [NET_CLS_ACT]: Introduce skb_act_clone 2007-10-26 02:47:23 -07:00
scm.h pid namespaces: changes to show virtual ids to user 2007-10-19 11:53:40 -07:00
slhc_vj.h
snmp.h [IPV4]: Add ICMPMsgStats MIB (RFC 4293) 2007-10-10 16:51:28 -07:00
sock.h [NET]: Define infrastructure to keep 'inuse' changes in an efficent SMP/NUMA way. 2007-11-07 04:08:57 -08:00
syncppp.h
tcp_states.h
tcp.h [TCP]: Remove unneeded implicit type cast when calling tcp_minshall_update() 2007-10-23 21:27:55 -07:00
timewait_sock.h
transp_v6.h
udp.h
udplite.h
veth.h [NET]: Virtual ethernet device driver. 2007-10-10 16:47:46 -07:00
wext.h [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
wireless.h
x25.h
x25device.h
xfrm.h [NET]: Don't declare extern variables in net/core/sysctl_net_core.c 2007-10-23 21:27:56 -07:00