Wei Wang
0da4af00b2
ipv6: only update __use and lastusetime once per jiffy at most
...
In order to not dirty the cacheline too often, we try to only update
dst->__use and dst->lastusetime at most once per jiffy.
As dst->lastusetime is only used by ipv6 garbage collector, it should
be good enough time resolution.
And __use is only used in ipv6_route_seq_show() to show how many times a
dst has been used. And as __use is not atomic_t right now, it does not
show the precise number of usage times anyway. So we think it should be
OK to only update it at most once per jiffy.
According to my latest syn flood test on a machine with intel Xeon 6th
gen processor and 2 10G mlx nics bonded together, each with 8 rx queues
on 2 NUMA nodes:
With this patch, the packet process rate increases from ~3.49Mpps to
~3.75Mpps with a 7% increase rate.
Note: dst_use() is being renamed to dst_hold_and_use() to better specify
the purpose of the function.
Signed-off-by: Wei Wang <weiwan@google.com>
Acked-by: Eric Dumazet <edumazet@googl.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-16 21:08:30 +01:00
..
9p
9p: Implement show_options
2017-07-11 06:08:58 -04:00
bluetooth
Bluetooth: make baswap src const
2017-09-01 22:49:47 +02:00
caif
iucv
netfilter
netfilter: nat: Revert "netfilter: nat: convert nat bysrc hash to rhashtable"
2017-09-08 18:55:50 +02:00
netns
ipv4: Namespaceify tcp_fastopen_blackhole_timeout knob
2017-10-01 17:55:54 -07:00
nfc
NFC: Add nfc_dbg() macro
2017-04-05 10:15:20 +02:00
phonet
net: phonet: mark phonet_protocol as const
2017-10-07 23:15:08 +01:00
sctp
sctp: introduce round robin stream scheduler
2017-10-03 16:27:29 -07:00
tc_act
sched: act: ife: update parameters via rcu handling
2017-10-12 22:23:03 -07:00
6lowpan.h
6lowpan: Fix IID format for Bluetooth
2017-04-12 22:02:36 +02:00
act_api.h
net: sched: introduce per-egress action device callbacks
2017-10-11 20:15:43 -07:00
addrconf.h
net: Convert int functions to bool
2017-09-18 11:40:03 -07:00
af_ieee802154.h
af_rxrpc.h
rxrpc: Allow failed client calls to be retried
2017-08-29 10:55:20 +01:00
af_unix.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-07-21 03:38:43 +01:00
af_vsock.h
VSOCK: use TCP state constants for sk_state
2017-10-05 18:44:17 -07:00
ah.h
arp.h
net: convert neighbour.refcnt from atomic_t to refcount_t
2017-07-01 07:39:07 -07:00
atmclip.h
ax25.h
net, ax25: convert ax25_cb.refcount from atomic_t to refcount_t
2017-07-04 22:35:19 +01:00
ax88796.h
bond_3ad.h
bond_alb.h
bond_options.h
bonding: Prevent duplicate userspace notification
2017-05-27 18:51:41 -04:00
bonding.h
net: Add extack to ndo_add_slave
2017-10-04 21:39:33 -07:00
busy_poll.h
net: fix compilation when busy poll is not enabled
2017-08-11 14:59:24 -07:00
calipso.h
net, calipso: convert calipso_doi.refcount from atomic_t to refcount_t
2017-07-04 22:35:16 +01:00
cfg80211-wext.h
cfg80211.h
cfg80211/nl80211: add a port authorized event
2017-10-02 14:08:27 +02:00
cfg802154.h
checksum.h
csum: eliminate sparse warning in remcsum_unadjust()
2017-01-20 12:12:13 -05:00
cipso_ipv4.h
net, ipv4: convert cipso_v4_doi.refcount from atomic_t to refcount_t
2017-07-04 01:29:04 -07:00
cls_cgroup.h
codel.h
codel_impl.h
codel_qdisc.h
compat.h
datalink.h
dcbevent.h
dcbnl.h
devlink.h
devlink: Add IPv6 header for dpipe
2017-08-31 14:42:19 -07:00
dn.h
dn_dev.h
dn_fib.h
net, decnet: convert dn_fib_info.fib_clntref from atomic_t to refcount_t
2017-07-04 22:35:15 +01:00
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
net: dsa: remove .set_addr
2017-10-14 18:30:06 -07:00
dsfield.h
dst.h
ipv6: only update __use and lastusetime once per jiffy at most
2017-10-16 21:08:30 +01:00
dst_cache.h
dst_metadata.h
bpf: don't rely on the verifier lock for metadata_dst allocation
2017-10-10 12:30:16 -07:00
dst_ops.h
net: add confirm_neigh method to dst_ops
2017-02-07 13:07:46 -05:00
erspan.h
gre: introduce native tunnel support for ERSPAN
2017-08-22 14:29:30 -07:00
esp.h
esp6: Reorganize esp_output
2017-04-14 10:06:42 +02:00
ethoc.h
fib_notifier.h
fib: notifier: Add VIF add and delete event types
2017-09-27 11:33:27 -07:00
fib_rules.h
net: fib_rules: Implement notification logic in core
2017-08-03 15:35:59 -07:00
firewire.h
flow.h
net: Extend struct flowi6 with multipath hash
2017-08-24 18:21:17 -07:00
flow_dissector.h
flow_dissector: Cleanup control flow
2017-09-05 11:40:08 -07:00
fou.h
fq.h
fq: support filtering a given tin
2017-10-11 09:49:34 +02:00
fq_impl.h
fq: support filtering a given tin
2017-10-11 09:49:34 +02:00
garp.h
gen_stats.h
genetlink.h
genetlink: remove ops_list from genetlink header.
2017-06-05 10:54:55 -04:00
geneve.h
gre.h
gro_cells.h
gro_cells: move to net/core/gro_cells.c
2017-02-08 14:38:18 -05:00
gtp.h
gue.h
hwbm.h
icmp.h
ieee80211_radiotap.h
wireless: radiotap: rewrite the radiotap header file
2017-01-25 16:00:33 +01:00
ieee802154_netdev.h
if_inet6.h
net, ipv6: convert ifacaddr6.aca_refcnt from atomic_t to refcount_t
2017-07-04 01:29:04 -07:00
ife.h
net: Introduce ife encapsulation module
2017-02-03 15:16:45 -05:00
ila.h
inet6_connection_sock.h
inet: drop ->bind_conflict
2017-01-18 13:04:28 -05:00
inet6_hashtables.h
net: ipv6: add second dif to inet6 socket lookups
2017-08-07 11:39:22 -07:00
inet_common.h
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
inet_connection_sock.h
tcp: ULP infrastructure
2017-06-15 12:12:40 -04:00
inet_ecn.h
net-ipv6: remove unused IP6_ECN_clear() function
2017-10-01 17:55:54 -07:00
inet_frag.h
Revert "net: fix percpu memory leaks"
2017-09-03 11:01:05 -07:00
inet_hashtables.h
net: ipv4: add second dif to inet socket lookups
2017-08-07 11:39:21 -07:00
inet_sock.h
net/tcp-fastopen: Add new API support
2017-01-25 14:04:38 -05:00
inet_timewait_sock.h
ipv4: Namespaceify tcp_tw_recycle and tcp_max_tw_buckets knob
2016-12-29 11:38:31 -05:00
inetpeer.h
inetpeer: remove AVL implementation in favor of RB tree
2017-07-17 08:59:01 -07:00
ip.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-08-21 17:06:42 -07:00
ip6_checksum.h
ip6_fib.h
ipv6: take care of rt6_stats
2017-10-07 21:22:58 +01:00
ip6_route.h
ipv6: prepare fib6_age() for exception table
2017-10-07 21:22:57 +01:00
ip6_tunnel.h
ip6_tunnel: Allow policy-based routing through tunnels
2017-04-21 13:21:30 -04:00
ip_fib.h
net: ipv4: remove fib_weight
2017-09-29 06:19:32 +01:00
ip_tunnels.h
ipv4: speedup ipv6 tunnels dismantle
2017-09-19 16:32:24 -07:00
ip_vs.h
ipvs: remove unused function ip_vs_set_state_timeout
2017-04-28 12:00:10 +02:00
ipcomp.h
ipconfig.h
ipv6.h
net/ipv6: Convert icmpv6_push_pending_frames to void
2017-10-06 09:52:31 -07:00
ipx.h
net, ipx: convert ipx_route.refcnt from atomic_t to refcount_t
2017-07-04 22:35:17 +01:00
iw_handler.h
wext: uninline stream addition functions
2017-01-13 09:38:42 +01:00
kcm.h
l3mdev.h
lapb.h
net, lapb: convert lapb_cb.refcnt from atomic_t to refcount_t
2017-07-04 22:35:16 +01:00
lib80211.h
llc.h
net, llc: convert llc_sap.refcnt from atomic_t to refcount_t
2017-07-04 22:35:15 +01:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
lwtunnel.h
net: add extack arg to lwtunnel build state
2017-05-30 11:55:32 -04:00
mac80211.h
mac80211: add documentation to ieee80211_rx_ba_offl()
2017-09-21 11:42:00 +02:00
mac802154.h
mip6.h
mld.h
mpls.h
mpls_iptunnel.h
net: mpls: Increase max number of labels for lwt encap
2017-04-01 20:21:44 -07:00
mrp.h
ncsi.h
net/ncsi: fix ncsi_vlan_rx_{add,kill}_vid references
2017-09-05 09:11:45 -07:00
ndisc.h
net: convert neighbour.refcnt from atomic_t to refcount_t
2017-07-01 07:39:07 -07:00
neighbour.h
neigh: make strucrt neigh_table::entry_size unsigned int
2017-09-25 20:36:17 -07:00
net_namespace.h
net: core: Make the FIB notification chain generic
2017-08-03 15:35:59 -07:00
net_ratelimit.h
netevent.h
netlabel.h
net: convert netlbl_lsm_cache.refcount from atomic_t to refcount_t
2017-07-01 07:39:09 -07:00
netlink.h
netlink: fix nla_put_{u8,u16,u32} for KASAN
2017-09-25 20:18:27 -07:00
netprio_cgroup.h
netrom.h
net, netrom: convert nr_node.refcount from atomic_t to refcount_t
2017-07-04 22:35:17 +01:00
nexthop.h
nl802154.h
nsh.h
net: add NSH header structures and helpers
2017-08-29 15:16:52 -07:00
p8022.h
ping.h
pkt_cls.h
net: sched: teach tcf_bind/unbind_filter to use block->q
2017-10-16 21:00:40 +01:00
pkt_sched.h
net: sched: store net pointer in block and introduce qdisc_net helper
2017-10-16 21:00:40 +01:00
pptp.h
protocol.h
IPv4: early demux can return an error code
2017-10-01 03:55:47 +01:00
psample.h
net: Introduce psample, a new genetlink channel for packet sampling
2017-01-24 13:44:28 -05:00
psnap.h
raw.h
net: ipv4: add second dif to raw socket lookups
2017-08-07 11:39:21 -07:00
rawv6.h
net: ipv6: add second dif to raw socket lookups
2017-08-07 11:39:22 -07:00
red.h
ktime: Get rid of the union
2016-12-25 17:21:22 +01:00
regulatory.h
request_sock.h
net: convert sock.sk_refcnt from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
rose.h
route.h
udp: perform source validation for mcast early demux
2017-10-01 03:55:47 +01:00
rtnetlink.h
rtnetlink: remove __rtnl_af_unregister
2017-10-04 10:33:59 -07:00
sch_generic.h
net: sched: use tcf_block_q helper to get q pointer for sch_tree_lock
2017-10-16 21:00:41 +01:00
scm.h
sched/headers: Prepare to remove <linux/cred.h> inclusion from <linux/sched.h>
2017-03-02 08:42:31 +01:00
secure_seq.h
tcp: Namespaceify sysctl_tcp_timestamps
2017-06-08 10:53:29 -04:00
seg6.h
ipv6: sr: add support for ip4ip6 encapsulation
2017-08-25 17:10:23 -07:00
seg6_hmac.h
slhc_vj.h
smc.h
smc: netlink interface for SMC sockets
2017-01-09 16:07:41 -05:00
snmp.h
sock.h
tcp: implement rb-tree based retransmit queue
2017-10-07 00:28:54 +01:00
sock_reuseport.h
Space.h
stp.h
strparser.h
strparser: initialize all callbacks
2017-08-24 21:57:50 -07:00
switchdev.h
net: bridge: Notify on bridge device mrouter state changes
2017-10-09 10:18:11 -07:00
tcp.h
tcp: remove obsolete helpers
2017-10-12 09:47:08 -07:00
tcp_states.h
timewait_sock.h
tls.h
tls: kernel TLS support
2017-06-15 12:12:40 -04:00
transp_v6.h
tso.h
net: define the TSO header size in net/tso.h
2017-08-23 20:42:09 -07:00
tun_proto.h
vxlan: factor out VXLAN-GPE next protocol
2017-08-29 15:16:52 -07:00
udp.h
IPv4: early demux can return an error code
2017-10-01 03:55:47 +01:00
udp_tunnel.h
net: add infrastructure to un-offload UDP tunnel port
2017-07-24 13:52:59 -07:00
udplite.h
udp: use a separate rx queue for packet reception
2017-05-16 15:41:29 -04:00
vsock_addr.h
vxlan.h
vxlan: factor out VXLAN-GPE next protocol
2017-08-29 15:16:52 -07:00
wext.h
dev_ioctl: copy only the smaller struct iwreq for wext
2017-06-14 13:52:44 +02:00
wimax.h
x25.h
net, x25: convert x25_neigh.refcnt from atomic_t to refcount_t
2017-07-04 22:35:18 +01:00
x25device.h
xfrm.h
xfrm: Add support for network devices capable of removing the ESP trailer
2017-08-31 09:04:03 +02:00