freebsd-nq/sys
Alexander V. Chernikov 12cb7521c2 Remove LLE read lock from IPv6 fast path.
LLE structure is mostly unchanged during its lifecycle: there are only 2
things relevant for fast path lookup code:
1) link-level address change. Since r286722, these updates are performed
  under AFDATA WLOCK.
2) Some sort of feedback indicating that this particular entry is used so
  we send NS to perform reachability verification instead of expiring entry.
  The only signal that is needed from fast path is something like binary
  yes/no.
The latter is solved by the following changes:

Special r_skip_req (introduced in D3688) value is used for fast path feedback.
  It is read lockless by fast path, but updated under req_mutex mutex. If this
  field is non-zero, then fast path will acquire lock and set it back to 0.

After transitioning to STALE state, callout timer is armed to run each
  V_nd6_delay seconds to make sure that if packet was transmitted at the start
  of given interval, we would be able to switch to PROBE state in V_nd6_delay
  seconds as user expects.
(in STALE state) timer is rescheduled until original V_nd6_gctimer expires
  keeping lle in STALE state (remaining timer value stored in lle_remtime).
(in STALE state) timer is rescheduled if packet was transmitted less that
  V_nd6_delay seconds ago to make sure we transition to PROBE state exactly
  after V_n6_delay seconds.

As a result, all packets towards lle in REACHABLE/STALE/PROBE states are handled
  by fast path without acquiring lle read lock.

Differential Revision:		https://reviews.freebsd.org/D3780
2015-12-13 07:39:49 +00:00
..
amd64 Merge common parts of i386 and amd64 md_var.h and smp.h into 2015-12-07 17:41:20 +00:00
arm Add helper functions proc_readmem() and proc_writemem(). 2015-12-07 21:33:15 +00:00
arm64 Sort the list of NICs after the mii options. While here add the msk driver 2015-12-11 15:25:47 +00:00
boot Make detection of GPT a bit more reliable. 2015-12-10 10:35:07 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam The ccb_xflags enumeration was removed from FreeBSD/head in 2015-12-07 21:04:27 +00:00
cddl Change an important error message from ZFS_LOG to printf 2015-12-11 00:04:13 +00:00
compat Add some structures and defines which will be used when decoding small 2015-12-03 12:51:54 +00:00
conf Merge helper fib* functions used for basic lookups. 2015-12-08 10:50:03 +00:00
contrib Add initial ar9300 HAL support for the spectral scan mode. 2015-12-02 05:36:45 +00:00
crypto const'ify an arg that we don't update... 2015-07-29 23:37:15 +00:00
ddb Add helper to catch single step debug event and distinguish it from bkpt 2015-11-27 19:03:59 +00:00
dev In md(4) over vnode, correct handling of the unaligned unmapped io 2015-12-12 14:08:29 +00:00
fs The cdevpriv_dtr_t typedef was not able to be used in a function prototype 2015-12-02 18:27:30 +00:00
gdb
geom Make detection of GPT a bit more reliable. 2015-12-10 10:35:07 +00:00
gnu Fixing a memory leak on module unloading. 2015-09-11 22:43:35 +00:00
i386 Merge common parts of i386 and amd64 md_var.h and smp.h into 2015-12-07 17:41:20 +00:00
isa
kern Don't make assertions about td_critnest when the scheduler is stopped. 2015-12-11 20:05:07 +00:00
kgssapi
libkern libkern: ffs, fls: s/4/3/ the 3rd BSD clause 2015-10-22 21:04:47 +00:00
mips Correct the CONFIG0_VI value. According to 2015-12-11 16:51:04 +00:00
modules ahci_generic.c needs ofw_bus_if.h, add it to the module. 2015-12-08 20:05:27 +00:00
net Remove LLE read lock from IPv6 fast path. 2015-12-13 07:39:49 +00:00
net80211 [net80211] decode WPA cipher config '0' as "clear cipher config". 2015-11-26 01:54:58 +00:00
netgraph Create a USB_PNP_INFO and use it to export the existing PNP 2015-12-11 05:28:00 +00:00
netinet Clean up unused bandwidth entry in the TCP hostcache. 2015-12-11 06:22:58 +00:00
netinet6 Remove LLE read lock from IPv6 fast path. 2015-12-13 07:39:49 +00:00
netipsec Overhaul if_enc(4) and make it loadable in run-time. 2015-11-25 07:31:59 +00:00
netnatm
netpfil Merge helper fib* functions used for basic lookups. 2015-12-08 10:50:03 +00:00
netsmb The problem report was for a crash that happened when smbfs was 2015-11-18 23:04:01 +00:00
nfs Add kernel support to the NFS server for the "-manage-gids" 2015-11-30 21:54:27 +00:00
nfsclient
nfsserver
nlm
ofed Fix i386 build WITH_OFED=YES. Remove some redundant KASSERTs. 2015-12-04 18:20:55 +00:00
opencrypto Remove unneeded includes of opt_kdtrace.h. 2015-11-22 02:01:01 +00:00
pc98 Add asynchronous command support to the pass(4) driver, and the new 2015-12-03 20:54:55 +00:00
powerpc No need to reset tlb1 here, it gets reset again after BSS is cleared in 2015-12-11 01:34:13 +00:00
rpc Improve locking of sg_threadcount. 2015-11-19 08:04:05 +00:00
security fd: make 'rights' a manadatory argument to fget* functions 2015-07-05 19:05:16 +00:00
sparc64 Remove sv_prepsyscall, sv_sigsize and sv_sigtbl members of the struct 2015-11-28 08:49:07 +00:00
sys Fix typos in comments. 2015-12-13 04:15:10 +00:00
teken Sync HPA and VPA implementations with CUP. 2015-08-24 07:49:27 +00:00
tests Style 9 changes. 2015-11-12 10:31:14 +00:00
tools Rename the /usr/share/doc/legal files to driver.LICENSE to work around 2015-10-16 00:38:05 +00:00
ufs Update ctime when atime or birthtime are updated. 2015-12-07 12:09:04 +00:00
vm Don't make assertions about td_critnest when the scheduler is stopped. 2015-12-11 20:05:07 +00:00
x86 Merge common parts of i386 and amd64 md_var.h and smp.h into 2015-12-07 17:41:20 +00:00
xdr
xen xen/intr: fix the event channel enabled per-cpu mask 2015-11-05 14:33:46 +00:00
Makefile