freebsd-skq/sys
kib e15884d6df Change the nblock mutex, protecting the needsbuffer buffer deficit
flags, to rwlock.  Lock it in read mode when used from subroutines
called from buffer release code paths.

The needsbuffer is now updated using atomics, while read lock of
nblock prevents loosing the wakeups from bufspacewakeup() and
bufcountadd() in getnewbuf_bufd_help().

In several interesting loads, needsbuffer flags are never set, while
buffers are reused quickly.  This causes brelse() and bqrelse() from
different threads to content on the nblock.  Now they take nblock in
read mode, together with needsbuffer not needing an update, allowing
higher parallelism.

Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2014-06-09 03:38:03 +00:00
..
amd64 Add ioctl(VM_REINIT) to reinitialize the virtual machine state maintained 2014-06-07 21:36:52 +00:00
arm Add a page size field to struct vm_page. Increase the page size field when 2014-06-07 17:12:26 +00:00
boot In preparation for ASLR [1] support add WITH_PIE to support building with -fPIE. 2014-06-08 17:29:31 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam The code that combines adjacent ranges for BIO_DELETEs to optimize 2014-06-05 17:13:42 +00:00
cddl - Naively fix build by partially reverting r267029 to still use 2014-06-04 05:04:15 +00:00
compat - Add support for SG_GET_SG_TABLESIZE IOCTL to report that we don't support 2014-06-04 12:05:47 +00:00
conf Initialize the pbuf counter for directio using SYSINIT, instead of 2014-06-08 10:55:06 +00:00
contrib Move mutex creation from ipf_log_soft_init() to ipf_log_soft_create() 2014-05-24 06:05:21 +00:00
crypto NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +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 TSO support on VMware Fusion 2014-06-09 02:45:53 +00:00
fs The new NFS server would not allow a hard link to be 2014-06-06 21:38:49 +00:00
gdb
geom - Fix the keyfile being cleared prematurely after r259428 2014-06-06 03:17:37 +00:00
gnu Symbolic bindings for the dts files... 2014-02-28 16:51:33 +00:00
i386 Add a page size field to struct vm_page. Increase the page size field when 2014-06-07 17:12:26 +00:00
ia64 Restore comments accidentally removed. 2014-06-06 04:08:55 +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 Change the nblock mutex, protecting the needsbuffer buffer deficit 2014-06-09 03:38:03 +00:00
kgssapi
libkern
mips Hook the ISP/SAF1761 driver into MIPS kernel builds. 2014-05-29 10:46:09 +00:00
modules Initialize the pbuf counter for directio using SYSINIT, instead of 2014-06-08 10:55:06 +00:00
net misc bugfixes: 2014-06-06 15:17:19 +00:00
net80211 Use logical rather than bitwise OR in if() expression. 2014-04-26 23:22:49 +00:00
netgraph Use M_WAITOK for the NGM_PIPE_SET_CFG control message. We expect it to 2014-05-28 13:15:14 +00:00
netinet Use ENOBUFS instead of ENOMEM in error situations related to m_uiotombuf(). 2014-06-05 12:51:12 +00:00
netinet6 Remove unused variable. 2014-06-08 09:08:51 +00:00
netipsec Use IPv4 statistics in ipsec4_process_packet() rather than the IPv6 2014-05-28 23:01:20 +00:00
netnatm
netpfil DNOLD_IS_ECN introduced by r266941 is not required. 2014-06-01 20:19:17 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs Introduce new per-thread lock to protect the list of requests. 2014-06-08 09:40:26 +00:00
nfsclient
nfsserver The PR reported that the old NFS server did not set uio_td == NULL 2014-04-24 20:47:58 +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 Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
opencrypto allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too... 2014-03-11 01:45:46 +00:00
pc98 lindev(4): finish the partial commit in r265212 2014-05-02 07:14:22 +00:00
pci Increase the number of TX DMA segments from 32 to 35. It turned 2014-03-31 01:54:59 +00:00
powerpc Commit the rest of the changes that were intended to be part of r266826. 2014-05-29 01:42:22 +00:00
rpc Split RPC pool threads into number of smaller semi-isolated groups. 2014-06-08 11:19:32 +00:00
security audit: plug FILEDESC_LOCK leak in audit_canon_path. 2014-03-21 01:30:33 +00:00
sparc64 Restore comments accidentally removed. 2014-06-06 04:08:55 +00:00
sys For Xeon 7500 and 48XX (Nehalem EX and Westmere EX) variants of the 2014-06-04 16:06:38 +00:00
teken Fix typo. 2014-02-06 13:28:06 +00:00
tools Fix logic error. <blush> 2014-04-30 20:52:38 +00:00
ufs Initialize the pbuf counter for directio using SYSINIT, instead of 2014-06-08 10:55:06 +00:00
vm Make mmap(MAP_STACK) search for the available address space, similar 2014-06-09 03:37:41 +00:00
x86 Eliminate the fake contig_dmamap and replace it with a new flag, 2014-05-27 21:31:11 +00:00
xdr
xen Make this compile with gcc. 2014-04-05 22:43:18 +00:00
Makefile Reorganize this Makefile so that all the bsd.*.mk bits are in one 2014-05-29 16:03:08 +00:00