Commit Graph

194598 Commits

Author SHA1 Message Date
jhb
e1016866c7 MFC 257422,257661,258075,258476,258494,258579,258609,258699:
Several enhancements to the I/O APIC support in bhyve including:
- Move the I/O APIC device model from userspace into vmm.ko and add
  ioctls to assert and deassert I/O APIC pins.
- Add HPET device emulation including a single timer block with 8 timers.
- Remove the 'vdev' abstraction.

Approved by:	neel
2014-01-23 20:21:39 +00:00
loos
49a10991a2 MFC r256959:
Add the Raspberry Pi BSC (I2C compliant) controller driver.

  Reviewed by:	rpaulo

MFC r256961:

  Enable the build of OFW I2C bus for FDT systems.

MFC r258045:

  As all the IIC controllers on system uses the same 'iichb' prefix we cannot
  rely only on checking the device unit to indentify the BSC unit we are
  attaching to.  Make use of the device base address to identify our BSC unit.

MFC r259127:

  Bring the RPi I2C driver in line with ti_i2c.  Make it treat any slave
  address as a 7-bit address.

Approved by:	adrian (mentor)
2014-01-23 12:32:30 +00:00
loos
f516feec90 MFC r257127:
Remove all the instances of '#undef DEBUG' from kernel.

Suggested by:	rpaulo
Approved by:	adrian (mentor)
2014-01-23 12:02:04 +00:00
mav
31820682b5 MFC r260229, r260258, r260367, r260390, r260459, r260648:
Rework NFS Duplicate Request Cache cleanup logic.

 - Introduce additional hash to group requests by hash of sockref.  This
allows to process TCP acknowledgements without looping though all the cache,
and as result allows to do it every time.
 - Indroduce additional callbacks to notify application layer about sockets
disconnection.  Without this last few requests processed just before socket
disconnection never processed their ACKs and stuck in cache for many hours.
 - Implement transport-specific method for tracking reply acknowledgements.
New implementation does not cross multiple stack layers to get the data and
does not have race conditions that previously made some requests stuck
in cache.  This could be done more efficiently at sockbuf layer, but that
would broke some KBIs, while I don't know other consumers for it aside NFS.
 - Instead of traversing all DRC twice per request, run cleaning only once
per request, and except in some conditions traverse only single hash slot
at a time.

Together this limits NFS DRC growth only to situations of real connectivity
problems.  If network is working well, and so all replies are acknowledged,
cache remains almost empty even after hours of heavy load.  Without this
change on the same test cache was growing to many thousand requests even
with perfectly working local network.

As another result this reduces CPU time spent on the DRC handling during
SPEC NFS benchmark from about 10% to 0.5%.

Sponsored by:   iXsystems, Inc.
2014-01-22 23:55:25 +00:00
mav
9b0c44b0a6 MFC r260097:
Move most of NFS file handle affinity code out of the heavily congested
global RPC thread pool lock and protect it with own set of locks.

On synthetic benchmarks this improves peak NFS request rate by 40%.
2014-01-22 23:52:20 +00:00
mav
695b5b9179 MFC r260036:
Introduce xprt_inactive_self()  -- variant for use when sure that port
is assigned to thread.  For example, withing receive handlers.  In that
case the function reduces to single assignment and can avoid locking.
2014-01-22 23:51:12 +00:00
mav
ec416d0ab8 MFC r260031:
In addition to r259632 completely block receive upcalls if we have more
data than we need.  This reduces lock pressure from xprt_active() side.
2014-01-22 23:50:13 +00:00
mav
2d67ee21c0 MFC r259877:
Slightly simplify expiration logic introduced in r254337.

 - Do not update the histogram for items we are any way deleting from cache.
 - Do not update the histogram if nfsrc_tcphighwater is not set.
 - Remove some extra math operations.
2014-01-22 23:49:37 +00:00
mav
28a527f07e MFC r259828:
Fix a bug introduced at r259632, triggering infinite loop in some cases.
2014-01-22 23:48:54 +00:00
mav
bdd6d3eac3 MFC r259765:
Fix RPC server threads file handle affinity to work better with ZFS.

  Instead of taking 8 specific bytes of file handle to identify file during
RPC thread affitinity handling, use trivial hash of the full file handle.
ZFS's struct zfid_short does not have padding field after the length field,
as result, originally picked 8 bytes are loosing lower 16 bits of object ID,
causing many false matches and unneeded requests affinity to same thread.
  This fix substantially improves NFS server latency and scalability in SPEC
NFS benchmark by more flexible use of multiple NFS threads.
2014-01-22 23:48:15 +00:00
mav
76d8788652 MFC r259659, r259662:
Remove several linear list traversals per request from RPC server code.

  Do not insert active ports into pool->sp_active list if they are success-
fully assigned to some thread.  This makes that list include only ports that
really require attention, and so traversal can be reduced to simple taking
the first one.

  Remove idle thread from pool->sp_idlethreads list when assigning some
work (port of requests) to it.  That again makes possible to replace list
traversals with simple taking the first element.
2014-01-22 23:47:29 +00:00
mav
01e3debc7e MFC r259632:
Rework flow control for connection-oriented (TCP) RPC server.

  When processing receive buffer, write the amount of data, expected
in present request record, into socket's so_rcv.sb_lowat to make stack
aware about our needs.  When processing following upcalls, ignore them
until socket collect enough data to be read and processed in one turn.
  This change reduces number of context switches and other operations
in RPC stack during large NFS writes (especially via non-Jumbo networks)
by order of magnitude.

  After precessing current packet, take another look into the pending
buffer to find out whether the next packet had been already received.
If not, deactivate this port right there without making RPC code to
push this port to another thread just to find that there is nothing.
If the next packet is received partially, also deactivate the port, but
also update socket's so_rcv.sb_lowat to not be woken up prematurely.
  This change additionally reduces number of context switches per NFS
request about in half.
2014-01-22 23:46:19 +00:00
mav
4202d51e16 MFC r258578, r258580, r258581 (by hrs):
Replace Sun RPC license in TI-RPC library with a 3-clause BSD license
with the explicit permissions.
2014-01-22 23:45:27 +00:00
mav
096adafbe7 MFC r258132:
Some minor tuning to rpc/svc.c:
 - close cosmetic race in svc_exit();
 - do not set wait timeout for idle threads if we have no use for wakeups;
 - create new requested thread sooner, not only after some another thread
wakeup, that may happen later under constant load.
2014-01-22 23:42:30 +00:00
glebius
dfcbb7ef75 Merge r260377: fix panic on pf_get_translation() failure.
PR:		182557
2014-01-22 10:45:16 +00:00
glebius
929fc2bbee Merge r260046: Fix the parse type for NGM_LISTTYPES. 2014-01-22 10:38:01 +00:00
glebius
6cb9337539 Merge r259855: We have in base iconv.
PR:		185135
2014-01-22 10:35:30 +00:00
glebius
3b6c6cb1cd Merge r258702: Fix some misinformation in netgraph manual pages. 2014-01-22 10:31:56 +00:00
glebius
99ea781723 Merge r258478, r258479, r258480, r259719: fixes related to mass source
nodes removal.

PR:		176763
2014-01-22 10:29:15 +00:00
glebius
5da449f113 Merge several fixlets from head:
r257619: Remove unused PFTM_UNTIL_PACKET const.
r257620: Code logic of handling PFTM_PURGE into pf_find_state().
r258475: Don't compare unsigned <= 0.
r258477: Fix off by ones when scanning source nodes hash.
2014-01-22 10:18:25 +00:00
glebius
34e36d1706 Merge r257846:
Make TCP_KEEP* socket options readable. At least PostgreSQL wants
  to read the values.
2014-01-22 10:08:33 +00:00
glebius
a86bc98471 Merge r257686: Add required kernel option. 2014-01-22 10:01:13 +00:00
glebius
018ed48113 Merge 257643: Document RB_FOREACH_SAFE() and RB_FOREACH_REVERSE_SAFE(). 2014-01-22 09:59:49 +00:00
glebius
4277478f01 Merge 260225:
Fix circular math macro.

PR:	146082
2014-01-22 09:22:39 +00:00
jhibbits
76839750ad MFC r260621
Add missing EM_PPC64 to e_machine header display.
2014-01-22 06:27:02 +00:00
pfg
f3048e2672 MFC r260874:
gcc: fix libgcc by adding the bswap builtins for all platforms.

This change was missing from r258428 which attempted to add the
bswap builtins to gcc. The change is also missing from the patch
in gnu/155309.

Found by:	marcel
2014-01-22 01:35:30 +00:00
gjb
a3e74b51d9 10.0-RELEASE is out, so call stable/10 -STABLE again.
Reminded by:	David Wolfskill
Sponsored by:	The FreeBSD Foundation
2014-01-21 15:57:59 +00:00
marck
bc9a363c26 MFC r259925-259926:
Add GPT UUID for VMware vSAN meta-data partition.

Approved by:	ae
2014-01-21 09:19:28 +00:00
mav
5f170995ac MFC r260407:
Allow delete_method sysctl to be set to "DISABLE".
2014-01-20 23:56:49 +00:00
wblock
0b6cdba729 MFC r260782:
-h and -H options backwards in manual page.
2014-01-20 23:23:29 +00:00
gjb
2a273a2a5a Add UPDATING entry for 10.0-RELEASE.
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-01-20 22:32:23 +00:00
pfg
d2ee769b39 MFC r259531;
gcc: point to our address for bug reports.

As recommended by the FSF in gcc/version.c :

"If you distribute a modified version of GCC, please change
this to refer to a document giving instructions for reporting
bugs to you, not us."
2014-01-20 21:58:20 +00:00
pfg
81471e9f9b MFC r260332;
gcc: backport some fixes from llvm-gcc

llvm-gcc backported some patches from gcc trunk:

http://gcc.gnu.org/ml/gcc-cvs/2007-05/msg00662.html
http://gcc.gnu.org/ml/gcc-cvs/2007-07/msg00019.html
http://gcc.gnu.org/ml/gcc-cvs/2007-08/msg00240.html
http://gcc.gnu.org/ml/gcc-cvs/2007-08/msg00493.html

The first two were always GPL2. The last two were
added after the GPL3 transition, but were written
by aaw@google.com and Rafael Espíndola got permission
to relicense them under the GPL2 for inclusion in
llvm-gcc.

This fixes GCC-PR c++/31749

Obtained from:	llvm-gcc (rev. 75463; GPLv2)
2014-01-20 21:50:31 +00:00
trociny
f4854f7fc4 MFC r260833:
Bring back r226403, the fix for bin/161526, which was (accidentally?)
reverted in r238896.

PR:		bin/161526
Reported by:	Karli.Sjoberg slu.se
2014-01-20 20:33:40 +00:00
pfg
1f607ed1d1 MFC r260014, r260099:
gcc: Add support for label attributes and "unavailable" attribute.

Apple GCC has extensions to support for both label attributes and
an "unavailable" attribute. These are critical for objc but are
also useful in regular C/C++.

Obtained from:	Apple GCC 4.2 - 5531
2014-01-20 19:37:38 +00:00
bapt
bc9afa8bed MFH: r260483, r260484, r260594, r260595, r260596, r260597
Improve error message shown to the user when trying to load a module that is
already loaded or compiled withing the kernel
Point the user to dmesg(1) to get informations about why loading a module did fail
instead of printing the cryptic "Exec format error"
Update the BUGS section of kld(4) according the recent changes in kldload(8)
2014-01-20 14:37:02 +00:00
hrs
567342fbad Document an ipfw fwd issue.
Suggested by:	jmg
2014-01-20 05:57:58 +00:00
hrs
cb4a87d340 - Fix a bxe(4) entry. This issue is not related to NFSv4, and poor
performance is caused by disabling TSO, not the issue itself.
- s/&os;-STABLE/&os; &release.current;/
2014-01-20 05:44:45 +00:00
jilles
f972275c13 MFC r260556: Add some missing .Nm for newer syscalls in existing man pages. 2014-01-18 22:47:25 +00:00
pluknet
9ee780ef73 MFC r258675: Fix build. 2014-01-18 21:57:38 +00:00
bryanv
416eede02b MFC r260583: Add unmapped IO support to virtio_scsi(4) 2014-01-18 18:41:24 +00:00
bryanv
652e7f2331 MFC r260582: Add unmapped IO support to virtio_blk(4) 2014-01-18 18:39:39 +00:00
bryanv
ef8dde25f6 MFC r260581: Add sglist_append_bio(9) to append a struct bio's data to
a sglist
2014-01-18 18:36:41 +00:00
gjb
84f240d845 Fix description of pw(8) regression.
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-01-18 04:27:13 +00:00
gjb
9e3d6ba01f Document pw(8) regression when the '-G' flag is used.
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-01-18 04:17:42 +00:00
gjb
ba2f98e1a6 Fix wording from r260842.
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-01-18 04:06:00 +00:00
gjb
0506af8909 Document a bsdconfig(8) compatibility nit with pkg(7) 1.2.x.
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-01-18 04:03:05 +00:00
gjb
78cc26793a Document possible poor NFSv6 performance with bxe(4) when 'tso'
is enabled.

Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-01-18 03:44:43 +00:00
bryanv
c634686d69 MFC r260566: Remove incorrect bit shift when assigning the LUN request field 2014-01-18 03:33:01 +00:00
delphij
d51d93481f Document the killall(1) regression.
While I'm there also correct a typo.

Reviewed by:	gjb (earlier version), hrs
2014-01-17 21:37:55 +00:00