Ensure that _tmppt KVA is used exclusively by providing exclusive sx
lock around the mapping and uiomove(). Before r277643, it was
partially protected by Giant (but potential sleeping in fault from
uiomove() would still allow other thread to reuse the mapping).
Noted by: ian
Reviewed by: alc, ian
Sponsored by: The FreeBSD Foundation
MFC after: 3 weeks
Roger Pau Monné [Mon, 26 Jan 2015 08:42:47 +0000 (08:42 +0000)]
amd64: allow base memory segment to start at address different than 0
Current code requires that the first physical memory segment starts at 0,
but this is not really needed. We only need to make sure the bootstrap code
and page tables for APs are allocated below 4GB.
This patch removes this requirement and allows booting a Dell R710 from
UEFI, where the first physical memory segment starts at 0x10000.
- Increase default i2c bus timeout to 5 seconds from 1 second. Sometimes
1 second is not enugh for TDA19988 HDMI framer (e.g. on Beaglebone Black)
- Add per-device i2c_timout sysctl (dev.iichb.X.i2c_timeout) to control
I2C bus timeout manually
- Pass softc instead of device_t to all sysctl handlers
John Baldwin [Sun, 25 Jan 2015 20:37:32 +0000 (20:37 +0000)]
natd(8) will work with an unconfigured interface and effectively not do
anything until the interface is assigned an address. This fixes
ipfw_nat to do the same by using an IP of INADDR_ANY instead of
aborting the nat setup if the requested interface is not yet configured.
John Baldwin [Sun, 25 Jan 2015 20:16:45 +0000 (20:16 +0000)]
If the boot-time memory test is enabled, output a dot ('.') for
each GB of RAM tested so people watching the console can see that
the machine is making progress and not hung.
PR: 196650
Submitted by: Ravi Pokala <rpokala@panasas.com>
Suggestions from: Eric van Gyzen <eric@vangyzen.net>
MFC after: 2 weeks
John Baldwin [Sun, 25 Jan 2015 19:45:44 +0000 (19:45 +0000)]
Use an sbuf to generate the output of the net.inet.tcp.hostcache.list
sysctl to avoid a possible buffer overflow if the cache grows while the
text is being generated.
Mark Johnston [Sun, 25 Jan 2015 00:47:06 +0000 (00:47 +0000)]
gr_equal(): Fix a crash that could occur if the first group's member list
was longer than the second's. There is no need to compute and compare the
member list lengths in a separate pass, since we now just return false when
comparing member names if the list lengths are not equal.
Ian Lepore [Sat, 24 Jan 2015 20:18:37 +0000 (20:18 +0000)]
Reimplement fdt_clock_register_provider() correctly. It turns out you
can't use OF_xref_from_device() to implement the function that registers
the xref association with the device.
Will Andrews [Sat, 24 Jan 2015 17:32:45 +0000 (17:32 +0000)]
Add vm.panic_on_oom sysctl, which enables those who would rather panic than
kill a process, when the system runs out of memory. Defaults to off.
Usually, this is most useful when the OOM condition is due to mismanagement
of memory, on a system where the applications in question don't respond well
to being killed.
In theory, if the system is properly managed, it shouldn't be possible to
hit this condition. If it does, the panic can be more desirable for some
users (since it can be a good means of finding the root cause) rather than
killing the largest process and continuing on its merry way.
As kib@ mentions in the differential, there is also protect(1), which uses
procctl(PROC_SPROTECT) to ensure that some processes are immune. However,
a panic approach is still useful in some environments. This is primarily
intended as a development/debugging tool.
Ryan Stone [Sat, 24 Jan 2015 16:59:38 +0000 (16:59 +0000)]
vmspace_release() may sleep if the last reference is being released,
so add a WITNESS_WARN() to catch cases where it is called with a
non-sleepable lock held.
Avoid calling vmspace_free() while owning the process lock. Freeing
of an vm space may require obtaining sleepable locks. Hold the
process to keep the pointer valid, and change trylock to lock, since
there is no longer two process locks owned simultaneously in
vm_pageout_oom().
Note that after the process lock is dropped, process might exec, and
no longer qualify as the owner of biggest vm space.
In collaboration with: rstone
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Ruslan Bukin [Sat, 24 Jan 2015 13:07:07 +0000 (13:07 +0000)]
Add support for audio transmitting, include drivers for:
o Digital Audio Multiplexer (AUDMUX)
o Smart Direct Memory Access Controller (SDMA)
o Synchronous Serial Interface (SSI)
Disable by default as it depends on SDMA firmware.
Remove Giant from /dev/mem and /dev/kmem. It is definitely not needed
for i386, and from the code inspection, nothing in the
arm/mips/sparc64 implementations depends on it.
Discussed with: imp, nwhitehorn
Sponsored by: The FreeBSD Foundation
MFC after: 3 weeks
Luigi Rizzo [Sat, 24 Jan 2015 08:48:05 +0000 (08:48 +0000)]
do not strip /stand
This is a temporary workaround until the elftoolchain's version
of strip is fixed:
The previous (GNU) strip, when acting on a file with multiple links,
would modify the one and only file in place (which means creating
a new stripped copy, and then writing it back to the original).
The new version from elftoolchain creates the new file and then
unlinks the old one and renames the new.
With multiple hard links, the original remains alive. In the /stand
directory, this ends up creating 80+ copies of the same file.
Will Andrews [Sat, 24 Jan 2015 00:43:02 +0000 (00:43 +0000)]
When creating or updating a node, use vfs_timestamp() for "now" instead
of gethrestime(), to allow the administrator to decide the appropriate
timestamp precision instead of always using nanosecond precision.
Will Andrews [Fri, 23 Jan 2015 23:53:56 +0000 (23:53 +0000)]
Fix panic in firewire and creation of invalid config ROM.
(This change was supposed to be included in r277508.)
sys/boot/i386/libfirewire/firewire.c:
Fix configuration ROM generation count wrapping logic
so that the generation count is never outside of
allowed limits (0x2 -> 0xF).
Ed Maste [Fri, 23 Jan 2015 21:34:08 +0000 (21:34 +0000)]
Restore addr2line to cross tools
Addr2line is not required for the build, and a per-arch binary is no
longer required with the switch to the ELF Tool Chain. However, building
these tools during the cross tools stage can be useful for developers
who cross build HEAD from stable/10, and adds very little to the build
time.
Jilles Tjoelker [Fri, 23 Jan 2015 21:07:08 +0000 (21:07 +0000)]
Add futimens and utimensat system calls.
The core kernel part is patch file utimes.2008.4.diff from
pluknet@FreeBSD.org. I updated the code for API changes, added the manual
page and added compatibility code for old kernels. There is also audit and
Capsicum support.
A new UTIME_* constant might allow setting birthtimes in future.
Glen Barber [Fri, 23 Jan 2015 21:04:59 +0000 (21:04 +0000)]
When iterating through VMFORMATS, the VMBASE file is
not removed or truncated to a zero-size file, which
if used to create more than one disk image format, can
result in accidental pollution of the target formatted
disk image.
Instead of using a single VMBASE image (vm.img, by
default), use a single base file for each format, named
as VMFORMAT.img, which produces VMBASE.VMFORMAT as the
final formatted image.
Reported by: cperciva
MFC after: 1 month
X-MFC-with: r277458, r277536
Sponsored by: The FreeBSD Foundation
Colin Percival [Fri, 23 Jan 2015 20:24:13 +0000 (20:24 +0000)]
Provide a recipe of "true" for building the "release" target once its
prerequisites are satisfied, in order to avoid having an implicit rule
triggered by the presence of release.sh.
Ian Lepore [Fri, 23 Jan 2015 16:05:47 +0000 (16:05 +0000)]
Add pinctrl driver support for the encoded input register config words
that the linux guys made up on the fly (but didn't document) last August.
This type of encoded config now appears in the imx6 fdt data.
Will Andrews [Fri, 23 Jan 2015 16:03:02 +0000 (16:03 +0000)]
Allow lists for "nooption" and "nooptions" keywords.
usr.sbin/config/config.y
According to config(5), the "device", "devices",
"nodevice", "nodevices", "option", "options",
"nooption", and "nooptions" keywords can all take a
comma-separated list of values. However, the yacc code
did not allow lists for "nooption" and "nooptions", only
single values. This commit fixes the yacc code to allow
comma separated values for all the above keywords.
Will Andrews [Fri, 23 Jan 2015 15:55:03 +0000 (15:55 +0000)]
Print transfer times for read, write, & overall independently.
Round up calculated values for iops and average time per io to avoid a
shifting display if there are 1000+ (or even 10000+) iops, or if an
average time per io column is 1000+ ms.
Reviewed by: ken
MFC after: 1 week
Sponsored by: Spectra Logic
MFSpectraBSD: 1089947 on 2014/09/26 1093625 on 2014/09/29 1093650 on 2014/09/29 1095662 on 2014/10/09