208082 Commits

Author SHA1 Message Date
dteske
cb7d127145 Comments. No functional change.
MFC after:	3 days
X-MFC-to:	stable/10
2015-04-01 00:49:34 +00:00
wollman
299467e040 Fix overflow bugs in and remove obsolete limit from kernel RPC
implementation.

The kernel RPC code, which is responsible for the low-level scheduling
of incoming NFS requests, contains a throttling mechanism that
prevents too much kernel memory from being tied up by NFS requests
that are being serviced.  When the throttle is engaged, the RPC layer
stops servicing incoming NFS sockets, resulting ultimately in
backpressure on the clients (if they're using TCP).  However, this is
a very heavy-handed mechanism as it prevents all clients from making
any requests, regardless of how heavy or light they are.  (Thus, when
engaged, the throttle often prevents clients from even mounting the
filesystem.)  The throttle mechanism applies specifically to requests
that have been received by the RPC layer (from a TCP or UDP socket)
and are queued waiting to be serviced by one of the nfsd threads; it
does not limit the amount of backlog in the socket buffers.

The original implementation limited the total bytes of queued requests
to the minimum of a quarter of (nmbclusters * MCLBYTES) and 45 MiB.
The former limit seems reasonable, since requests queued in the socket
buffers and replies being constructed to the requests in progress will
all require some amount of network memory, but the 45 MiB limit is
plainly ridiculous for modern memory sizes: when running 256 service
threads on a busy server, 45 MiB would result in just a single
maximum-sized NFS3PROC_WRITE queued per thread before throttling.

Removing this limit exposed integer-overflow bugs in the original
computation, and related bugs in the routines that actually account
for the amount of traffic enqueued for service threads.  The old
implementation also attempted to reduce accounting overhead by
batching updates until each queue is fully drained, but this is prone
to livelock, resulting in repeated accumulate-throttle-drain cycles on
a busy server.  Various data types are changed to long or unsigned
long; explicit 64-bit types are not used due to the unavailability of
64-bit atomics on many 32-bit platforms, but those platforms also
cannot support nmbclusters large enough to cause overflow.

This code (in a 10.1 kernel) is presently running on production NFS
servers at CSAIL.

Summary of this revision:
* Removes 45 MiB limit on requests queued for nfsd service threads
* Fixes integer-overflow and signedness bugs
* Avoids unnecessary throttling by not deferring accounting for
  completed requests

Differential Revision:	https://reviews.freebsd.org/D2165
Reviewed by:	rmacklem, mav
MFC after:	30 days
Relnotes:	yes
Sponsored by:	MIT Computer Science & Artificial Intelligence Laboratory
2015-04-01 00:45:47 +00:00
tychon
b3c521e852 Fix "MOVS" instruction memory to MMIO emulation. Currently updates to
%rdi, %rsi, etc are inadvertently bypassed along with the check to
see if the instruction needs to be repeated per the 'rep' prefix.

Add "MOVS" instruction support for the 'MMIO to MMIO' case.

Reviewed by:	neel
2015-04-01 00:15:31 +00:00
cperciva
cbabb678ca Add code for creating an EC2 AMI. 2015-04-01 00:00:17 +00:00
dteske
9f8c781a8d Whitespace and cleanup. No functional change(s).
MFC after:	3 days
X-MFC-to:	stable/10
2015-03-31 23:09:54 +00:00
dteske
f593bd9721 Optimize bootmsg to use fg/bg/me from screen.4th
NB: screen.4th is included by way of check-password.4th

MFC after:	3 days
X-MFC-to:	stable/10
2015-03-31 23:00:48 +00:00
dteske
c297bb1171 Comments. No functional change(s).
MFC after:	3 days
X-MFC-to:	stable/10
2015-03-31 22:32:35 +00:00
dteske
c76b827427 Whitespace. No functional change(s).
MFC after:	3 days
MFH:		stable/10
2015-03-31 22:10:40 +00:00
dteske
fb22dbc652 Change contents of the exec variable in loader.conf to be friendly to both
Ficl/Forth and Lua. No visible change for Forth while enabling Lua support.

Submitted by:	rpaulo
2015-03-31 21:46:44 +00:00
dteske
9c696b424e Fix typo in a comment.
MFC after:	3 days
X-MFC-to:	stable/10 stable/9
2015-03-31 21:34:42 +00:00
jilles
1a2e63b4e8 sh: Add more tests for exotic IFS splitting. 2015-03-31 20:59:37 +00:00
jilles
b9ad20386c wordexp: Explicitly pass along IFS.
Per Austin group issue , sh should not import IFS from the environment
but always set it to $' \t\n'. For wordexp(), however, it is documented and
useful for it to use IFS from the environment.

Since sh currently imports IFS from the environment, this change has no
functional effect.

MFC after:	1 week
2015-03-31 20:51:01 +00:00
delphij
6bd2edbbed Add limited to the default restrictions.
X-MFC-with:	r280849
2015-03-31 19:56:46 +00:00
cy
4295db0989 Fix build. 2015-03-31 19:35:32 +00:00
delphij
e1529aa2cb Constify.
Suggested by:	rdivacky
MFC after:	2 weeks
2015-03-31 19:12:13 +00:00
andrew
629c6677c8 Add the fe* symbols to libm for arm64.
Sponsored by:	The FreeBSD Foundation
2015-03-31 19:07:28 +00:00
kevlo
a06b60def5 Remove bogus cast. 2015-03-31 15:03:58 +00:00
ae
ad5d4cffda The offset variable has been cleared all bits except IP6F_OFF_MASK.
Use ip6f_mf variable instead of checking its bits.
2015-03-31 14:41:29 +00:00
emaste
c15d6a555b unwind-d2 build workaround for arm64
The __builtin_init_dwarf_reg_size_table function is unimplemented in
clang 3.6 for AArch64. Comment it out for now and replace it with
a message and abort.

Tracked in upstream LLVM PR 22997
https://llvm.org/bugs/show_bug.cgi?id=22997

Submitted by:	andrew
2015-03-31 13:37:32 +00:00
emaste
f6c3ac521b Correct copyright typo 2015-03-31 12:53:07 +00:00
ganbold
79db12f2a8 Add kernel config files for Hardkernel Odroid-C1 and Visson ATV-102 devices.
Submitted by:	  John Wehle
Approved by:	  stas (mentor)
2015-03-31 11:59:57 +00:00
ganbold
61f3000027 Add device tree files for Hardkernel Odroid-C1 and Visson ATV-102 devices.
Submitted by:	John Wehle
Approved by:	stas (mentor)
2015-03-31 11:55:56 +00:00
ganbold
4ae869175b Add necessary changes to support various Amlogic SoC devices
specially aml8726-m6 and aml8726-m8b SoC based devices.
aml8726-m6 SoC exist in devices such as Visson ATV-102.
Hardkernel ODROID-C1 board has aml8726-m8b SoC.

The following support is included:
  Basic machdep code
  SMP
  Interrupt controller
  Clock control driver (aka gate)
  Pinctrl
  Timer
  Real time clock
  UART
  GPIO
  I2C
  SD controller
  SDXC controller
  USB
  Watchdog
  Random number generator
  PLL / Clock frequency measurement
  Frame buffer

Submitted by:   John Wehle
Approved by:    stas (mentor)
2015-03-31 11:50:46 +00:00
jch
e6365e0ee8 Use appropriate timeout_t* instead of void* in tcp_timer_activate()
Suggested by:		imp
Differential Revision:	https://reviews.freebsd.org/D2154
Reviewed by:		imp, jhb
Approved by:		jhb
2015-03-31 10:17:13 +00:00
andrew
6e8d4c1770 Add the arm64 code to the runtime linker. It's not able to be built as we
still need libc_pic for a few things, but this is expected to be ready
soon.

Differential Revision:	https://reviews.freebsd.org/D2136
Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
2015-03-31 09:51:19 +00:00
ngie
ee03676b70 - Fix -Wsign issue
- Bump up to WARNS=6
2015-03-31 06:51:13 +00:00
ngie
dbd242443f Minor cleanup before converting to ATF testcases
- Remove blank (tab-only) lines.
- Fix -Wunused warnings.
- Bump up to WARNS= 6
2015-03-31 06:50:28 +00:00
ngie
6e3c8628a6 Cleanup and do minor refactoring before converting testcases to ATF
- Convert errx(-1, ..) to errx(1, ..)
- Move the aio(4) checks to a single function (aio_available); use modfind(2)
  instead of depending on SIGSYS (doesn't work when aio(4) support is missing,
  not documented in the aio syscall manpages).
- Use aio_available liberally in the testcase functions
- Use mkstemp(3) + unlink(2) instead of mktemp(3)
- Fix some -Wunused warnings
- Bump WARNS to 6

MFC after: 1 week
Submitted by: mjohnston [*]
Sponsored by: EMC / Isilon Storage Division
2015-03-31 06:43:55 +00:00
jhibbits
aebe90ff98 CCSRBAR_VA is mpc85xx-specific, so add guards, and include the proper header
file for it.

MFC after:	1 month
2015-03-31 05:29:44 +00:00
jhibbits
9986b6cf15 machine/fdt.h no longer exists for powerpc.
MFC after:	1 month
2015-03-31 05:26:30 +00:00
amdmi3
b0ece496c1 - Remove more files when MK_ZONEINFO == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:44:46 +00:00
amdmi3
37650bc000 - Remove more files when MK_TESTS_SUPPORT == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:43:25 +00:00
amdmi3
01a4084e15 - Remove more files when MK_LEGACY_CONSOLE == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:42:00 +00:00
amdmi3
5b9e43b4b3 - Remove more files when MK_KERBEROS_SUPPORT == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:39:59 +00:00
amdmi3
2629e24b80 - Remove more files when MK_KDUMP == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:37:57 +00:00
amdmi3
cf14ab226e - Remove more files when MK_JAIL == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:36:51 +00:00
cperciva
30e3acf20a It would help if I committed the right patch... 2015-03-31 04:35:35 +00:00
amdmi3
8914c8573e - Remove more files when MK_CASPER == no
MFC after:	1 week
Reviewed by:	ngie
Approved by:	ngie
Differential Revision:	D1600
2015-03-31 04:31:42 +00:00
markj
b940cb0c6b Fix a misparenthesization that could cause a crash if TERM is not set.
Reported by:	Coverity (internal)
MFC after:	3 days
Sponsored by:	EMC / Isilon Storage Division
2015-03-31 02:49:05 +00:00
cperciva
2d3f9a1b0b Partially revert r278118 now that the required logic for deciding whether
freebsd-update can be useful has moved into the firstboot_freebsd_update
script.
2015-03-31 01:44:29 +00:00
kib
82927bc930 Provide workaround for a performance issue with the popcnt instruction
on Intel processors.  Clear spurious dependency by explicitely xoring
the destination register of popcnt.

Use bitcount64() instead of re-implementing SWAR locally, for
processors without popcnt instruction.

Reviewed by:	jhb
Discussed with:	jilles (previous version)
Sponsored by:	The FreeBSD Foundation
2015-03-31 01:44:07 +00:00
cperciva
763a23e973 Add bits for building EC2 disk images. Make logic for uploading these
to create EC2 AMIs will come in a later commit.
2015-03-31 01:28:33 +00:00
np
cab76c0301 cxgbe/tom: return rx credits promptly if the socket buffer's low water
mark cannot be reached because the window advertised to the peer isn't
wide enough.  While here, tweak the normal credit return too.

MFC after:	1 month
2015-03-31 01:22:20 +00:00
rrs
59d85f7f18 Adopt jhb's suggested changes, updated comments and callout_migration() moving
to kern/kern_timeout.c

This does *not* address his -1 -> NOCPU comment.

Sponsored by:	Netflix Inc.
2015-03-31 00:18:00 +00:00
rrs
67a59f75f0 Change the c_iflags and c_flags fields to short rather then int. This
allows us to keep the KPI the same.

Discussed and brain-stormed with imp (thanks for the help Warner!)
Sponsored by:	Netflix Inc.
2015-03-31 00:15:27 +00:00
bdrewery
b845121fe0 Fix --one-file-system to include the directory encountered rather than
excluding it.  This was broken in 3.0.4 (r238856).

Obtained from:	https://github.com/libarchive/libarchive/commit/fa9e61
MFC after:	3 days
Sponsored by:	EMC / Isilon Storage Division
2015-03-31 00:00:47 +00:00
glebius
e4390a8823 Catch up on r271387 and remove unused parameter from
VOP_GETPAGES_ASYNC().
2015-03-30 22:49:26 +00:00
andrew
2156d333cf Restore setting cpufuncs on arm1176, it was removed by accident with the
arm1136 code.

Reviewed by:	ian
2015-03-30 20:44:08 +00:00
dim
0c2a5465b4 Add llvm patch corresponding to r280865. 2015-03-30 20:23:06 +00:00
jhb
4e5400d652 Wait 100 microseconds for a local APIC to dispatch each startup-related IPI
rather than 20.  The MP 1.4 specification states in Appendix B.2:

  "A period of 20 microseconds should be sufficient for IPI dispatch to
   complete under normal operating conditions".

(Note that this appears to be separate from the 10 millisecond (INIT) and
200 microsecond (STARTUP) waits after the IPIs are dispatched.)  The
Intel SDM is silent on this issue as far as I can tell.

At least some hardware requires 60 microseconds as noted in the PR, so
bump this to 100 to be on the safe side.

PR:		197756
Reported by:	zaphod@berentweb.com
MFC after:	1 week
2015-03-30 20:13:22 +00:00