freebsd-dev/sys
Gleb Smirnoff 1fbe6a82f4 Improve reference counting of EXT_SFBUF pages attached to mbufs.
o Do not use UMA refcount zone. The problem with this zone is that
  several refcounting words (16 on amd64) share the same cache line,
  and issueing atomic(9) updates on them creates cache line contention.
  Also, allocating and freeing them is extra CPU cycles.
  Instead, refcount the page directly via vm_page_wire() and the sfbuf
  via sf_buf_alloc(sf_buf_page(sf)) [1].

o Call refcounting/freeing function for EXT_SFBUF via direct function
  call, instead of function pointer. This removes barrier for CPU
  branch predictor.

o Do not cleanup the mbuf to be freed in mb_free_ext(), merely to
  satisfy assertion in mb_dtor_mbuf(). Remove the assertion from
  mb_dtor_mbuf(). Use bcopy() instead of manual assignments to
  copy m_ext in mb_dupcl().

[1] This has some problems for now. Using sf_buf_alloc() merely to
    increase refcount is expensive, and is broken on sparc64. To be
    fixed.

Sponsored by:	Netflix
Sponsored by:	Nginx, Inc.
2014-07-11 19:40:50 +00:00
..
amd64 Use the correct offset when converting a logical address (segment:offset) 2014-07-11 01:23:38 +00:00
arm Pending interrupt status is cleared by writing to the ISR, not the data reg. 2014-07-10 14:06:18 +00:00
boot Compile boot2 with clang on pc98. 2014-07-10 00:15:50 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam Add LUN options to specify 64-bit EUI and NAA identifiers. 2014-07-09 04:37:50 +00:00
cddl MFV r268455: 2014-07-09 23:14:59 +00:00
compat All mbuf external free functions never fail, so let them be void. 2014-07-11 13:58:48 +00:00
conf Remove ia64. 2014-07-07 00:27:09 +00:00
contrib Remove redundant USE_INET6 test that enables INET6 in the ipfilter userland 2014-07-11 16:26:51 +00:00
crypto Put the aesni_cipher_setup() and aesni_cipher_process() functions into 2014-06-24 06:55:49 +00:00
ddb handle longer commands so that lines don't overflow... people who added 2014-06-02 23:50:19 +00:00
dev Fix style bug: rename the refcount field of m_ext to ext_cnt, to match 2014-07-11 14:34:29 +00:00
fs Naughty NANDFS was using hidden unused flag, hiding the fact that the 2014-07-07 23:21:07 +00:00
gdb Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
geom After EFI support was added to the installer, it needed to allow boot 2014-07-04 15:55:32 +00:00
gnu Symbolic bindings for the dts files... 2014-02-28 16:51:33 +00:00
i386 Correct si_code for the SIGBUS signal generated by the alignment trap. 2014-07-08 08:05:42 +00:00
isa Remove vestiges of knowing the ISA bus, which we gave up on around 20 2014-03-19 21:03:04 +00:00
kern Improve reference counting of EXT_SFBUF pages attached to mbufs. 2014-07-11 19:40:50 +00:00
kgssapi
libkern Remove ia64. 2014-07-07 00:27:09 +00:00
mips Introduce pmap_unwire(). It will replace pmap_change_wiring(). There are 2014-07-06 17:42:38 +00:00
modules Remove ia64. 2014-07-07 00:27:09 +00:00
net Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
net80211 Use logical rather than bitwise OR in if() expression. 2014-04-26 23:22:49 +00:00
netgraph Remove any stale mbuf tags from packets being injected into a netgraph 2014-07-01 07:54:12 +00:00
netinet Bugfix: When a remote address was added to an endpoint, 2014-07-11 17:31:40 +00:00
netinet6 Fix condition. 2014-07-11 06:34:15 +00:00
netipsec Fix style bug: rename the refcount field of m_ext to ext_cnt, to match 2014-07-11 14:34:29 +00:00
netnatm
netpfil On machines with strict alignment copy pfsync_state_key from packet 2014-07-10 12:41:58 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs Fix/improve fhe_stats sysctl output. 2014-06-14 12:26:12 +00:00
nfsclient
nfsserver Change NFS readdir() to only ignore cookies preceding the given offset for 2014-07-01 20:00:35 +00:00
nlm Correct a typo in nlm_find_host_by_addr(): the intention of the 2014-03-11 00:25:55 +00:00
ofed Fix OFED startup order: All SYSINIT()'s and modules should be loaded 2014-07-06 14:22:13 +00:00
opencrypto allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too... 2014-03-11 01:45:46 +00:00
pc98 Compile fixes: 2014-06-28 17:36:18 +00:00
pci Fix various NIC drivers to properly cleanup static DMA resources. 2014-06-11 14:53:58 +00:00
powerpc Correct the accounting code for wired mappings. The wrong field of the PVO 2014-07-10 20:55:38 +00:00
rpc Merge the NFSv4.1 server code in projects/nfsv4.1-server over 2014-07-01 20:47:16 +00:00
security Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
sparc64 Introduce pmap_unwire(). It will replace pmap_change_wiring(). There are 2014-07-06 17:42:38 +00:00
sys Improve reference counting of EXT_SFBUF pages attached to mbufs. 2014-07-11 19:40:50 +00:00
teken Fix typo. 2014-02-06 13:28:06 +00:00
tools Call cpp with -P to avoid printing line markings. 2014-06-10 06:24:01 +00:00
ufs In msdosfs_setattr(), add a check for result of the utimes(2) 2014-06-17 07:11:00 +00:00
vm vm_phys: remove limitation on number of fictitious regions 2014-07-09 08:12:58 +00:00
x86 Remove ia64. 2014-07-07 00:27:09 +00:00
xdr
xen Remove ia64. 2014-07-07 00:27:09 +00:00
Makefile Remove ia64. 2014-07-07 00:27:09 +00:00