freebsd.git
6 years agoMFV r324198: 8081 Compiler warnings in zdb
mav [Sun, 18 Feb 2018 04:00:29 +0000 (04:00 +0000)]
MFV r324198: 8081 Compiler warnings in zdb

illumos/illumos-gate@3f7978d02b206a6ebc5652c91aa9f42da6fbe00c
https://github.com/illumos/illumos-gate/commit/3f7978d02b206a6ebc5652c91aa9f42da6fbe00c

https://www.illumos.org/issues/8081
  zdb(8) is full of minor problems that generate compiler warnings. On FreeBSD,
  which uses -WError, the only way to build it is to disable all compiler
  warnings. This makes it much harder to detect newly introduced bugs. We should
  cleanup all the warnings.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Alan Somers <asomers@gmail.com>

6 years agoBuild modules specific to imx5/imx6 only when building those kernels.
ian [Sun, 18 Feb 2018 02:48:54 +0000 (02:48 +0000)]
Build modules specific to imx5/imx6 only when building those kernels.

This adds sys/modules/imx with a SUBDIR makefile to make the whole
collection of modules that are specific to these SoCs.  Initially, that
"whole collection" consists of the if_ffec and imx_i2c drivers.

The if_ffec driver is referenced in its existing home in ../ffec rather
than moving it into the imx directory, because it's used by powerpc too,
but it is no longer built for all armv6/7 systems.

The imx_i2c driver is newly added as a module.

6 years agoAdd a detach method so that this can be a kldunload-friendly module.
ian [Sun, 18 Feb 2018 02:01:41 +0000 (02:01 +0000)]
Add a detach method so that this can be a kldunload-friendly module.

6 years agoMFV r323911:
mav [Sun, 18 Feb 2018 01:42:17 +0000 (01:42 +0000)]
MFV r323911:
8502 illumos#7955 broke delegated datasets when libshare is not present

illumos/illumos-gate@1c18e8fbd8db41a9fb39bd3ef7a18ee71ece20da
https://github.com/illumos/illumos-gate/commit/1c18e8fbd8db41a9fb39bd3ef7a18ee71ece20da

https://www.illumos.org/issues/8502
  The code in lib/libzfs/common/libzfs_mount.c already basically handles
  the case when libshare is not installed. We just need to not fail in
  zfs_init_libshare_impl.  I tested this in lx and things work as
  expected. I also tested there trying to set sharenfs and sharesmb on
  the delegated dataset. Neither is allowed from within a zone.  The
  spew of msgs from a native zone is not ZFS specific. I see the same
  spew simply running the share command.

Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Yuri Pankov <yuripv@gmx.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Jerry Jelinek <jerry.jelinek@joyent.com>

6 years agostand/lua: More style nits, config.lua
kevans [Sun, 18 Feb 2018 01:35:46 +0000 (01:35 +0000)]
stand/lua: More style nits, config.lua

Some other points I think we need to be consistent on:
- Spacing around string concatenation (always)
- Test against 'nil' explicitly rather than relying on 'not' for things that
  reasonably won't be returning a boolean. e.g. loader.getenv

Eventually this will all get formalized somewhere.

6 years agoliblua: Fix missing '}' in lutil.c after r329499
kevans [Sun, 18 Feb 2018 01:31:18 +0000 (01:31 +0000)]
liblua: Fix missing '}' in lutil.c after r329499

6 years agolua loader: Auto detect eligible list of kernels to boot
cem [Sun, 18 Feb 2018 01:16:37 +0000 (01:16 +0000)]
lua loader: Auto detect eligible list of kernels to boot

Reviewed by: imp, kevans
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14419

6 years agoLua loader: Add barebones "lfs" module
cem [Sun, 18 Feb 2018 01:15:25 +0000 (01:15 +0000)]
Lua loader: Add barebones "lfs" module

Add a Lua FileSystem module, an emulation of a subset of the permissively
licensed (MIT) Lua library of the same name[0], to our loader's Lua
environment.

[0]: https://github.com/keplerproject/luafilesystem/

Reviewed by: kevans
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14418

6 years agointerp_lua: Register io/loader with regular Lua module system
cem [Sun, 18 Feb 2018 01:13:58 +0000 (01:13 +0000)]
interp_lua: Register io/loader with regular Lua module system

Reviewed by: kevans
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14421

6 years agostand/lua: Remove some debugging bits that snuck in... gr...
kevans [Sun, 18 Feb 2018 01:01:15 +0000 (01:01 +0000)]
stand/lua: Remove some debugging bits that snuck in... gr...

6 years agostand/lua: Fix module_path handling with multiple kernels
kevans [Sun, 18 Feb 2018 00:56:12 +0000 (00:56 +0000)]
stand/lua: Fix module_path handling with multiple kernels

Once we've successfully loaded a kernel, we add its directory to
module_path. If we switch kernels with the kernel selector, we again prepend
the kernel directory to the current module_path and end up with multiple
kernel paths, potentially with mismatched kernel/modules, added to
module_path.

Fix it by caching module_path at load() time and using the cached version
whenever we load a new kernel.

6 years agostand/lua: Fix verbiage and some typos
kevans [Sun, 18 Feb 2018 00:44:09 +0000 (00:44 +0000)]
stand/lua: Fix verbiage and some typos

"other_kernel" is decidedly not spelled "other_kern"

6 years agoFix fallout from the import of fresh dts source files from linux 4.15. It
ian [Sun, 18 Feb 2018 00:02:09 +0000 (00:02 +0000)]
Fix fallout from the import of fresh dts source files from linux 4.15.  It
appears that node names no longer include leading zeroes in the @address
qualifiers, so we have to search for the nodes involved in interrupt fixup
using both flavors of name to be compatible with old and new .dtb files.

(You know you're in a bad place when you're applying a workaround to code
that exists only as a workaround for another problem.)

6 years agoDon't call sdhci_cleanup_slot() if sdhci_init_slot() never got called.
ian [Sat, 17 Feb 2018 23:39:10 +0000 (23:39 +0000)]
Don't call sdhci_cleanup_slot() if sdhci_init_slot() never got called.
Also, do callout_init() very early in attach, so that callout_drain()
can be called in detach without worrying about whether it ever got init'd.

6 years agoDo not try to deallocate memory that wasn't allocated (you'd think that
ian [Sat, 17 Feb 2018 23:23:27 +0000 (23:23 +0000)]
Do not try to deallocate memory that wasn't allocated (you'd think that
would be safe, but the function also tries to destroy mutexes that never
got created).

I guess this can only happen when imx_ehci_detach() is called on the
error-exit path from imx_ehci_attach(), and that path never got exercised
before today.

6 years agoImplement spin_trylock_irq() function macro in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 22:45:15 +0000 (22:45 +0000)]
Implement spin_trylock_irq() function macro in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoStub more lockdep function macros in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 22:41:20 +0000 (22:41 +0000)]
Stub more lockdep function macros in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoImplement get_task_pid() function macro in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 22:33:26 +0000 (22:33 +0000)]
Implement get_task_pid() function macro in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoliblua: Emulate DIR, opendir, fdopendir, closedir
cem [Sat, 17 Feb 2018 22:18:39 +0000 (22:18 +0000)]
liblua: Emulate DIR, opendir, fdopendir, closedir

In a similar fashion to FILE, provide thin shims for the standard directory
manipulation functions.

Reviewed by: imp
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14417

6 years agoliblua: Clean up io/loader C module registration
cem [Sat, 17 Feb 2018 22:17:21 +0000 (22:17 +0000)]
liblua: Clean up io/loader C module registration

Utilize registration APIs Lua provides to make module definition a little
cleaner.

Discussed with: imp
Sponsored by: Dell EMC Isilon

6 years agoAllow the put_user() function macro to put constant values by using the
hselasky [Sat, 17 Feb 2018 21:47:15 +0000 (21:47 +0000)]
Allow the put_user() function macro to put constant values by using the
existing __put_user() macro.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoImplement BUILD_BUG_ON_INVALID() function macro in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 21:40:19 +0000 (21:40 +0000)]
Implement BUILD_BUG_ON_INVALID() function macro in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoAdd support for printk_ratelimit() function macro and improve the existing
hselasky [Sat, 17 Feb 2018 21:25:19 +0000 (21:25 +0000)]
Add support for printk_ratelimit() function macro and improve the existing
printk_ratelimited() function macro to return a boolean stating if there
was a printout, true, or not, false.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoMerge AIM and Book-E PCPU fields
jhibbits [Sat, 17 Feb 2018 20:59:12 +0000 (20:59 +0000)]
Merge AIM and Book-E PCPU fields

This is part of a long-term goal of merging Book-E and AIM into a single GENERIC
kernel.  As more work is done, the struct may be optimized further.

Reviewed by: nwhitehorn

6 years agoAdd support for kref_read() function in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 20:56:35 +0000 (20:56 +0000)]
Add support for kref_read() function in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoAdd support for mmgrab() function in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 20:52:54 +0000 (20:52 +0000)]
Add support for mmgrab() function in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoAdd support for __percpu and __weak macros in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 20:50:18 +0000 (20:50 +0000)]
Add support for __percpu and __weak macros in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoMove the IRQ_RETVAL() and irqreturn definitions to irqreturn.h in the
hselasky [Sat, 17 Feb 2018 20:37:21 +0000 (20:37 +0000)]
Move the IRQ_RETVAL() and irqreturn definitions to irqreturn.h in the
LinuxKPI to be compatible with Linux. No functional change.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoAdd checks for valid IRQ tag before setting up or tearing down an interrupt
hselasky [Sat, 17 Feb 2018 20:09:43 +0000 (20:09 +0000)]
Add checks for valid IRQ tag before setting up or tearing down an interrupt
handler in the LinuxKPI. This is needed when the interrupt handler is disabled
before freeing the interrupt.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoaw_mmc: Only change the clock if it has really changed
manu [Sat, 17 Feb 2018 18:30:25 +0000 (18:30 +0000)]
aw_mmc: Only change the clock if it has really changed

This also seems to fix problem when booting Pine64 from the mmc.

Tested On: Pine64
Tested On: Pine64-LTS

6 years agoRevert r329448.
mjg [Sat, 17 Feb 2018 17:23:43 +0000 (17:23 +0000)]
Revert r329448.

Turns out is is actually racy, reproducible with stress2/misc/truss.sh

Requested by: kib

6 years agoRemove unused bus_autoconf section from usb.ko.
hselasky [Sat, 17 Feb 2018 14:44:03 +0000 (14:44 +0000)]
Remove unused bus_autoconf section from usb.ko.

Sponsored by: Mellanox Technologies

6 years agoRemove obsolete tool, bus_autoconf, which is replaced by devmatch(8).
hselasky [Sat, 17 Feb 2018 14:40:28 +0000 (14:40 +0000)]
Remove obsolete tool, bus_autoconf, which is replaced by devmatch(8).

6 years agoFix USB driver matching in devmatch(8).
hselasky [Sat, 17 Feb 2018 14:34:47 +0000 (14:34 +0000)]
Fix USB driver matching in devmatch(8).

Multiple drivers can match on the same USB device and the order of loading
decides which driver gets the device. Use the supplied mask value as an
indication of priority, so that vendor specific device drivers are loaded
before more generic ones.

Sponsored by: Mellanox Technologies

6 years agostand/lua: dumpModules => lsModules
kevans [Sat, 17 Feb 2018 14:30:39 +0000 (14:30 +0000)]
stand/lua: dumpModules => lsModules

rgrimes@ notes that this behavior is more befitting of the latter name than
the former, and I'm inclined to agree.

Reported by: rgrimes

6 years agoFix handling of "one_nomatch" shell variable to preserve its contents
hselasky [Sat, 17 Feb 2018 13:32:29 +0000 (13:32 +0000)]
Fix handling of "one_nomatch" shell variable to preserve its contents
appearing as a single argument passed to devmatch(8).

Don't depend on "sort" utility from usr/bin which might not be
available when devd is started.

Sponsored by: Mellanox Technologies

6 years agoInvoke devmatch rc.d script directly instead of depending on "service"
hselasky [Sat, 17 Feb 2018 13:13:55 +0000 (13:13 +0000)]
Invoke devmatch rc.d script directly instead of depending on "service"
which is installed in usr/sbin and might not be available at the time
devd is started.

Sponsored by: Mellanox Technologies

6 years agoRevert redundant parts of r329440 after recent devmatch(8) changes.
hselasky [Sat, 17 Feb 2018 12:38:46 +0000 (12:38 +0000)]
Revert redundant parts of r329440 after recent devmatch(8) changes.

Sponsored by: Mellanox Technologies

6 years agoCapsicumize uuidgen.
oshogbo [Sat, 17 Feb 2018 12:32:53 +0000 (12:32 +0000)]
Capsicumize uuidgen.

6 years agoIntroduce channel flags in libcasper.
oshogbo [Sat, 17 Feb 2018 12:22:29 +0000 (12:22 +0000)]
Introduce channel flags in libcasper.

Instead of passing flags (which describe a type of nvlist)
every send/recv we remember them in channel.
It's enough for use to extract them only during unwrap.
This simplify use of Casper.

Reviewed by: bruffer@, bcr@ (both man page)
Differential Revision: https://reviews.freebsd.org/D14196 (man page)

6 years agoUndo LOCK_PROFILING pessimisation after r313454 and r313455
mjg [Sat, 17 Feb 2018 12:07:09 +0000 (12:07 +0000)]
Undo LOCK_PROFILING pessimisation after r313454 and r313455

With the option used to compile the kernel both sx and rw shared ops would
always go to the slow path which added avoidable overhead even when the
facility is disabled.

Furthermore the increased time spent doing uncontested shared lock acquire
would be bogusly added to total wait time, somewhat skewing the results.

Restore old behaviour of going there only when profiling is enabled.

This change is a no-op for kernels without LOCK_PROFILING (which is the
default).

6 years agoexit: stop doing PROC_SLOCK just to call proc_reap
mjg [Sat, 17 Feb 2018 09:03:11 +0000 (09:03 +0000)]
exit: stop doing PROC_SLOCK just to call proc_reap

It immediately does PROC_SUNLOCK anyway and the lock plays no role.

6 years agoexit: get rid of PROC_SLOCK when checking a process to report
mjg [Sat, 17 Feb 2018 08:48:45 +0000 (08:48 +0000)]
exit: get rid of PROC_SLOCK when checking a process to report

All accessed fields are protected with already held process lock.

6 years agoCompile fix for GCC in the LinuxKPI.
hselasky [Sat, 17 Feb 2018 08:12:35 +0000 (08:12 +0000)]
Compile fix for GCC in the LinuxKPI.

Older versions of GCC don't allow flexible array members in a union.
Use a zero length array instead.

MFC after: 1 week
Reported by: jbeich@
Sponsored by: Mellanox Technologies

6 years agoImplement --hints to read hints file directly
imp [Sat, 17 Feb 2018 06:57:43 +0000 (06:57 +0000)]
Implement --hints to read hints file directly

In testing, it's often useful to copy a few files into a directory and
kldxref them to ensure that particular cases are handled correctly.
Add --hints (-h) to facilitate this testing and enable future
automated testing.

Sponsored by: Netflix

6 years agoPass in the NOMATCH event to devmatch
imp [Sat, 17 Feb 2018 06:57:38 +0000 (06:57 +0000)]
Pass in the NOMATCH event to devmatch

In devd/devmatch.conf, we need to pass the event to the devmatch
serivce. It gets passed to devmatch -p for matching. We always pass
this, unlike hps' original patch, so we kill two birds with one stone
and only match modules to the event passed in.

Submitted by: hps@
Sponsored by: Netflix

6 years agoAdd option to parse NOMATCH event and suggest modules to load
imp [Sat, 17 Feb 2018 06:57:34 +0000 (06:57 +0000)]
Add option to parse NOMATCH event and suggest modules to load

Add --nomatch/-p to search for individual drivers based on a NOMATCH
event from devd.

Submitted by: hps (earlier version)
Sponsored by: Netflix

6 years agoTweak the 'I' flagged value
imp [Sat, 17 Feb 2018 06:57:30 +0000 (06:57 +0000)]
Tweak the 'I' flagged value

'I' was omitting 'zero' values. This is not quite correct, and was put
in as a hack but not documented. Remove it. If we find what the hack
was really needed for, we'll either fix the need for it, or invent a
new flagged value type.

Submitted by: hps@
Sponsored by: Netflix

6 years agoImplement 'T' field matching.
imp [Sat, 17 Feb 2018 06:57:25 +0000 (06:57 +0000)]
Implement 'T' field matching.

Implement 'T' field matching. This is needed to prevent false
positives. However, it's not general enough. It only handles one field
and there's a ton of edge cases even with that it likely wouldn't
handle. To do it more generally and also eliminate a lot of the
hackiness that's in this program now, we'd need to creating
directories for lookups ala awk, pearl, python, etc. It appears to be
sufficient, though, to get my keyboard loaded on boot.

Sponsored by: Netflix

6 years agoIf we're passed an argument, then treat it as a single NOMATCH event
imp [Sat, 17 Feb 2018 06:57:21 +0000 (06:57 +0000)]
If we're passed an argument, then treat it as a single NOMATCH event
to parse rather than searching for all events. Pass with new -p arg to
devmatch. devmatch will use that one event rather than walking the
entire tree.

kldload will stop at the first failure. So we need to loop.  Also,
symbolic links may confused kldload into trying (and failing) to load
multiple modules at once, so guard against that.

Noticed by: hps (with similar patch)
Sponsored by: Netflix

6 years agoCorrect the PNP information generated by the usb driver to match the
imp [Sat, 17 Feb 2018 06:57:17 +0000 (06:57 +0000)]
Correct the PNP information generated by the usb driver to match the
artificial NOMATCH usb does in lieu of creating a device_t for devices
with no drivers. Also, correct bus to be 'uhub' since where USB
devices attach, even though 'usb' is more logical, we need the
physical bus here.

Submitted by: hps@

6 years agoWarn when we encounter unknown PNP field specifiers.
imp [Sat, 17 Feb 2018 06:57:12 +0000 (06:57 +0000)]
Warn when we encounter unknown PNP field specifiers.

The 'T' field went unimplemented for months due to a lack of warning.
Add a warnings to detect mistakes sooner.

Sponsored by: Netflix

6 years agoAdd description for T specifier. It's for PNP keys that are checked
imp [Sat, 17 Feb 2018 06:57:08 +0000 (06:57 +0000)]
Add description for T specifier. It's for PNP keys that are checked
programatically that must be true for a device to match, but aren't in
the table as discrete fields.

Sponsored by: Netflix

6 years agoFixup minor nits in the PNP_INFO protocol.
imp [Sat, 17 Feb 2018 06:57:03 +0000 (06:57 +0000)]
Fixup minor nits in the PNP_INFO protocol.

Sponsored by: Netflix

6 years agostand/lua: Debugging string snuck in...
kevans [Sat, 17 Feb 2018 05:53:41 +0000 (05:53 +0000)]
stand/lua: Debugging string snuck in...

6 years agostand/lua: Style pass
kevans [Sat, 17 Feb 2018 05:52:25 +0000 (05:52 +0000)]
stand/lua: Style pass

These are the style points that I'd like to try and maintain in our lua
scripts:
- Parentheses around conditionals
- Trailing semicolons, except on block terminators
- s:method(...) instead of string.method(s, ...) where applicable

There's likely more, but that'll get hammered out as we continue.

6 years agostand/lua: Check for nil (GELI prompt)
kevans [Sat, 17 Feb 2018 05:28:06 +0000 (05:28 +0000)]
stand/lua: Check for nil (GELI prompt)

6 years agostand/lua: Add optional GELI passphrase prompt
kevans [Sat, 17 Feb 2018 05:26:28 +0000 (05:26 +0000)]
stand/lua: Add optional GELI passphrase prompt

Prompt for GELI passphrase when geom_eli_passphrase_prompt has been set to
"YES" in loader.conf(5).

This entailed breaking out the password prompt into its own function that
can be reused between the password compare bits and this prompt that simply
takes the entered password and passes it along in the environment as
kern.geom.eli.passphrase.

I've also added a TODO to re-evaluate later if we want the "password
masking" -- it is currently not functional, so one still can't observe the
length of the password typed at the prompt.

6 years agostand/lua: Try to load alternate kernels as directories first
kevans [Sat, 17 Feb 2018 05:02:38 +0000 (05:02 +0000)]
stand/lua: Try to load alternate kernels as directories first

This is the procedure that config.loadkernel tries to go through, but
reloading kernel config didn't use this function. Amend config.loadkernel to
take an optional other_kernel.

While here, be a little more verbose ("Trying to load kernel") so that it's
easy to follow where we've gone wrong.

6 years agostand/lua: Correct test sense, this should have been 'not nil'
kevans [Sat, 17 Feb 2018 04:46:06 +0000 (04:46 +0000)]
stand/lua: Correct test sense, this should have been 'not nil'

6 years agostand/lua: Address some nits
kevans [Sat, 17 Feb 2018 04:43:41 +0000 (04:43 +0000)]
stand/lua: Address some nits

1.) Instead of string.function(s, ...), use s:function(...)
2.) Don't try to concatenate `res`, it was just tested to be nil
3.) Note that "Loading configuration" is configured modules, and be a little
more precise in mentioning what failed ("loading of one or more modules")

6 years agostand/lua: Add debug method to dump modules
kevans [Sat, 17 Feb 2018 04:33:37 +0000 (04:33 +0000)]
stand/lua: Add debug method to dump modules

6 years agostand/lua: Correct some trivial errors in config
kevans [Sat, 17 Feb 2018 04:22:36 +0000 (04:22 +0000)]
stand/lua: Correct some trivial errors in config

An empty module_path to start with isn't ideal, but if all modules are
contained within a kernel directory (which is what we just tested) then it
isn't strictly an error. Don't assume that module_path has a value already.

When we fail to load the kernel, printing the result (which is guaranteed to
be nil) is not intended; print the name of the kernel.

6 years agostand/lua: Color non-default kernels blue
kevans [Sat, 17 Feb 2018 04:07:16 +0000 (04:07 +0000)]
stand/lua: Color non-default kernels blue

6 years agostand/lua: Correct interpretation of autoboot_delay
kevans [Sat, 17 Feb 2018 03:39:55 +0000 (03:39 +0000)]
stand/lua: Correct interpretation of autoboot_delay

autoboot_delay=NO is documented to wait for input and *not* autoboot, which
is the exact opposite of the current behavior.

Additionally, autoboot_delay=-1 is documented to disallow the user from
interrupting the boot (i.e. autoboot immediately), which was not previously
honored.

This also fixes the case insensitive comparison to be truly case
insensitive. This is kind of nit-picky, but the previous version would only
accept "no" and "NO".

6 years agostand/lua: Enable menu autoboot; it seems to work
kevans [Sat, 17 Feb 2018 03:13:05 +0000 (03:13 +0000)]
stand/lua: Enable menu autoboot; it seems to work

6 years agostand/lua: Don't set autoboot_delay=NO in menu autoboot sequence
kevans [Sat, 17 Feb 2018 03:12:35 +0000 (03:12 +0000)]
stand/lua: Don't set autoboot_delay=NO in menu autoboot sequence

We'll set it later if "Escape to loader prompt" is actually chosen, there's
no need to be setting it here.

6 years agoOn process exit signal the parent after dropping the proctree lock.
mjg [Sat, 17 Feb 2018 00:24:50 +0000 (00:24 +0000)]
On process exit signal the parent after dropping the proctree lock.

6 years agoUnref the prison after proctree is dropped.
mjg [Sat, 17 Feb 2018 00:23:56 +0000 (00:23 +0000)]
Unref the prison after proctree is dropped.

6 years agoPostpone sx_sunlock(&proctree_lock) on fork until after allproc is dropped.
mjg [Sat, 17 Feb 2018 00:23:28 +0000 (00:23 +0000)]
Postpone sx_sunlock(&proctree_lock) on fork until after allproc is dropped.

There is a significant contention on the lock during -j 128 package build.
This change drops total wait time on this lock by 60%.

6 years agoTidy up kern_wait6
mjg [Sat, 17 Feb 2018 00:21:50 +0000 (00:21 +0000)]
Tidy up kern_wait6

- don't relock curproc in msleep
- don't relock proctree if P_STATCHILD is spotted
- reformat the proc_to_reap call in the main loop

6 years agoRevert r329269.
benno [Sat, 17 Feb 2018 00:12:30 +0000 (00:12 +0000)]
Revert r329269.

I tried to rework a section to fit inside 80 columns but the change ended
up being functional. Back this out so I can readdress.

6 years agostand/lua: Make CAROUSEL_ENTRY func parameters consistent with name
kevans [Fri, 16 Feb 2018 23:59:50 +0000 (23:59 +0000)]
stand/lua: Make CAROUSEL_ENTRY func parameters consistent with name

We have no need for the index yet, but add it anyways to keep signatures
consistent.

6 years agoRemove unused symbols.
kib [Fri, 16 Feb 2018 23:18:42 +0000 (23:18 +0000)]
Remove unused symbols.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

6 years agostand/lua: Don't reload kernel config if we only have one kernel
kevans [Fri, 16 Feb 2018 22:57:52 +0000 (22:57 +0000)]
stand/lua: Don't reload kernel config if we only have one kernel

Don't move this into config.reload because we may want to force reloads if
/boot changes out from under us later.

As a caution: changing kernels in lualoader at the moment might not be
loading all of your modules (in my testing, at least) from loader.conf(5).
This is a known problem.

6 years agostand/lua: Don't try to divide by 0; do nothing
kevans [Fri, 16 Feb 2018 22:51:08 +0000 (22:51 +0000)]
stand/lua: Don't try to divide by 0; do nothing

6 years agostand/lua: Allow MENU_RETURN items to have a func, fix escape to prompt
kevans [Fri, 16 Feb 2018 22:17:30 +0000 (22:17 +0000)]
stand/lua: Allow MENU_RETURN items to have a func, fix escape to prompt

6 years agozfs: fix formatting in a log statement
asomers [Fri, 16 Feb 2018 21:59:08 +0000 (21:59 +0000)]
zfs: fix formatting in a log statement

Submitted by: Dave Baukus <daveb@spectralogic.com>
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp

6 years agotrpt(8): Clean up build hack to detect ancient compiler
cem [Fri, 16 Feb 2018 20:46:44 +0000 (20:46 +0000)]
trpt(8): Clean up build hack to detect ancient compiler

Detect ancient GCC specifically, rather than using target architecture as a
crude heuristic.

Side note: compilers should really ignore -Wno- and -Wno-error= flags they
don't recognize.  Seems like modern compilers produce warnings instead of
errors.  Though, with -Werror they turn into errors.  Clang's error can be
disabled with -Wno-error=unknown-warning-option, but GCC doesn't seem to
have a named method to disable the specific warning.

Submitted by: rpokala@ (earlier version)
Suggested by: rpokala@
Reviewed by: tinderbox
Sponsored by: Dell EMC Isilon

6 years agoUpgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
dim [Fri, 16 Feb 2018 20:45:32 +0000 (20:45 +0000)]
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
6.0.0 (branches/release_60 r325330).

MFC after: 3 months
X-MFC-With: r327952
PR: 224669

6 years agolua-test: Image the loader test directory if it doesn't exist yet
kevans [Fri, 16 Feb 2018 20:26:18 +0000 (20:26 +0000)]
lua-test: Image the loader test directory if it doesn't exist yet

6 years agoDefault to /tmp/loadertest for lua test scripts
kevans [Fri, 16 Feb 2018 20:23:48 +0000 (20:23 +0000)]
Default to /tmp/loadertest for lua test scripts

6 years agoVendor import of llvm release_60 branch r325330:
dim [Fri, 16 Feb 2018 19:10:15 +0000 (19:10 +0000)]
Vendor import of llvm release_60 branch r325330:
https://llvm.org/svn/llvm-project/llvm/branches/release_60@325330

6 years agostand/lua: Use escaped dot instead of single character class
kevans [Fri, 16 Feb 2018 18:50:06 +0000 (18:50 +0000)]
stand/lua: Use escaped dot instead of single character class

6 years agoFollow r329348 in ipcs for getting rid of the requirement to include SysV IPC
lwhsu [Fri, 16 Feb 2018 18:07:04 +0000 (18:07 +0000)]
Follow r329348 in ipcs for getting rid of the requirement to include SysV IPC
headers with _KERNEL

Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D14398

6 years agoxen/pv: remove the attach of the ISA bus from the Xen PV bus
royger [Fri, 16 Feb 2018 18:04:27 +0000 (18:04 +0000)]
xen/pv: remove the attach of the ISA bus from the Xen PV bus

There's no need to attach the ISA bus from the Xen PV one.

Sponsored by:           Citrix Systems R&D

6 years agoDefine CK_MD_TSO for the relevant arches (i386, amd64 and sparc64).
cognet [Fri, 16 Feb 2018 17:50:06 +0000 (17:50 +0000)]
Define CK_MD_TSO for the relevant arches (i386, amd64 and sparc64).
Defaulting to CK_MD_RMO has the unfortunate side effect of generating
memory barriers that are useless on those arches, and the even more
unfortunate side effect of generating lfence/sfence/mfence on i386, even
if older CPUs don't support it.
This should fix the panic reported when using IPFW on a Pentium 3.
Note that mfence and sfence might still be used in a few case, but that
shouldn't happen in FreeBSD right now, and should be fixed upstream first.

MFC after: 1 week

6 years agostand/lua: Chop off the decimal for numbers passed to setcursor
kevans [Fri, 16 Feb 2018 17:46:07 +0000 (17:46 +0000)]
stand/lua: Chop off the decimal for numbers passed to setcursor

Decimals screw up the escape sequence and the cursor will not get set. Right
now this only affects setting the cursor for drawing "Welcome to FreeBSD" --
the resulting number after our (x+(w/2)-9) calculation gets output as
"14.0."

This should be fixed at the interpreter level, rather than here, but this is
not a widespread problem at the moment so we'll fix it up in further work.

Reported by: David Wolfskill <david@catwhisker.org>
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D14375

6 years agostand/lua: Correct usage and acceptance of BACKSPACE/DELETE keys
kevans [Fri, 16 Feb 2018 17:42:38 +0000 (17:42 +0000)]
stand/lua: Correct usage and acceptance of BACKSPACE/DELETE keys

6 years agoHandle generic pathconf attributes in the .zfs ctldir
asomers [Fri, 16 Feb 2018 16:56:09 +0000 (16:56 +0000)]
Handle generic pathconf attributes in the .zfs ctldir

MFC instructions: change the value of _PC_LINK_MAX to INT_MAX

Reported by: jhb
MFC after: 19 days
X-MFC-With: 329265
Sponsored by: Spectra Logic Corp

6 years agoPut the pine64 root filesystem on teh correct partition.
andrew [Fri, 16 Feb 2018 16:22:54 +0000 (16:22 +0000)]
Put the pine64 root filesystem on teh correct partition.

The Pine64 root filesystem was incorrectly created directly on the MBR
partition. This can cause the loader to get confused when loading the
kernel from this filesystem.

The loader will see this as a small partition meaning later checks to
ensure it doesn't read past the end of the disk incorrectly report a
failure. This seems to work mostly by accident with the released images as
they are smaller than the reported size, however after growfs has run the
image may no longer boot.

Reviewed by: gjb, emaste, imp
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14343

6 years agoImplement mutex_trylock_recursive() in the LinuxKPI.
hselasky [Fri, 16 Feb 2018 16:01:39 +0000 (16:01 +0000)]
Implement mutex_trylock_recursive() in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoImplement memdup_user_nul() in the LinuxKPI.
hselasky [Fri, 16 Feb 2018 15:52:28 +0000 (15:52 +0000)]
Implement memdup_user_nul() in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoImplement tasklet_enable() and tasklet_disable() in the LinuxKPI.
hselasky [Fri, 16 Feb 2018 15:41:16 +0000 (15:41 +0000)]
Implement tasklet_enable() and tasklet_disable() in the LinuxKPI.

MFC after: 1 week
Requested by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoFix a memory leak introduced in r328426.
markj [Fri, 16 Feb 2018 15:41:03 +0000 (15:41 +0000)]
Fix a memory leak introduced in r328426.

ffs_sbget() may return a superblock buffer even if it fails, so the
caller must be prepared to free it in this case. Moreover, when tasting
alternate superblock locations in a loop, ffs_sbget()'s readfunc
callback must free the previously allocated buffer.

Reported and tested by: pho
Reviewed by: kib (previous version)
Differential Revision: https://reviews.freebsd.org/D14390

6 years agoUse the conventional name for an array of pages.
markj [Fri, 16 Feb 2018 15:38:22 +0000 (15:38 +0000)]
Use the conventional name for an array of pages.

No functional change intended.

Discussed with: kib
MFC after: 3 days

6 years agoCorrect module symbol export handling
emaste [Fri, 16 Feb 2018 15:38:02 +0000 (15:38 +0000)]
Correct module symbol export handling

EXPORT_SYMS can be set to YES, NO, a list of symbols to export from a
module, or to a filename containing such a list.  For the case that it
is set to a symbol list, replace spaces in the list with newlines, so
the created file is in the format expected by kmod_syms.awk.

Reviewed by: imp, jhb
MFC after: 1 month
Sponsored by: Turing Robotic Industries Inc.
Differential Revision: https://reviews.freebsd.org/D14284

6 years agoImplement enable_irq() and disable_irq() in the LinuxKPI.
hselasky [Fri, 16 Feb 2018 15:37:33 +0000 (15:37 +0000)]
Implement enable_irq() and disable_irq() in the LinuxKPI.

MFC after: 1 week
Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoAllow the cmpxchg() macro in the LinuxKPI to work on pointers without
hselasky [Fri, 16 Feb 2018 15:20:21 +0000 (15:20 +0000)]
Allow the cmpxchg() macro in the LinuxKPI to work on pointers without
generating compiler warnings, -Wint-conversion .

Requested by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

6 years agoRationalize license text on Linuxolator files
emaste [Fri, 16 Feb 2018 15:00:14 +0000 (15:00 +0000)]
Rationalize license text on Linuxolator files

Many licenses on Linuxolator files contained small variations from the
standard FreeBSD license text.  To avoid license proliferation switch to
the standard 2-clause FreeBSD license for those files where I have
permission from each of the listed copyright holders.  Additional files
waiting on permission from others are listed in review D14210.

Approved by: kan, marcel, sos, rdivacky
MFC after: 1 week
Sponsored by: The FreeBSD Foundation