5 years agoMerge remote-tracking branch 'origin/vendor/BINUTILS227'
zrj [Thu, 24 Nov 2016 15:28:14 +0000 (17:28 +0200)]
Merge remote-tracking branch 'origin/vendor/BINUTILS227'

5 years agoInitial import of binutils 2.27 on vendor branch
zrj [Thu, 24 Nov 2016 07:20:38 +0000 (09:20 +0200)]
Initial import of binutils 2.27 on vendor branch

5 years agoSync ACPICA with Intel's version 20161117.
Sascha Wildner [Wed, 23 Nov 2016 20:04:50 +0000 (21:04 +0100)]
Sync ACPICA with Intel's version 20161117.

* Fixed regression introduced in 20160729 in the table manager. Also,
  add a new public interface, AcpiPutTable().

* Fix a problem where runtime implicit conversion as incorrectly
  disabled for some ASL operators.

* Various fixes and improvements for iasl(8).

* In acpixtract(8), add handling for both LF and CR/LF line
  termination to accept acpidump output from any system.

* In acpibin(8), add new -a and -o options.

For a more detailed list, please see sys/contrib/dev/acpica/changes.txt.

5 years agoUpdate the pciconf(8) database.
Sascha Wildner [Wed, 23 Nov 2016 19:03:05 +0000 (20:03 +0100)]
Update the pciconf(8) database.

October 29, 2016 snapshot from http://pciids.sourceforge.net/

5 years agokernel/if_re: Adjust permissions.
Sascha Wildner [Wed, 23 Nov 2016 17:46:53 +0000 (18:46 +0100)]
kernel/if_re: Adjust permissions.

5 years agore: Leverage Realtek driver's chip/PHY initialization/reset.
Sepherosa Ziehau [Thu, 3 Nov 2016 06:16:26 +0000 (14:16 +0800)]
re: Leverage Realtek driver's chip/PHY initialization/reset.

It is mainly used to solve all kinds of weirdness, e.g. hanging after
watchdog timeout, and PHY read failure, we have encountered so far on
these chips.

The DEVMETHODs, ifnet setup, and data path are still ours.  miibus(4)
is no longer used, ifmedia(4) is used directly.

NOTE: This change drops the 8139C+ and 8169 w/ external PHY support,
which are deemed to be too old.

Realtek's driver is taken from their website: version 1.92 (2016/10/25).

Tested-by: dillon, zrj
5 years agoefi - Add EFI run-time ABI support (3)
Matthew Dillon [Wed, 23 Nov 2016 02:07:25 +0000 (18:07 -0800)]
efi - Add EFI run-time ABI support (3)

* Cleanup debugging code that is no longer needed.

5 years agoefi - Add EFI run-time ABI support (2)
Matthew Dillon [Tue, 22 Nov 2016 23:12:34 +0000 (15:12 -0800)]
efi - Add EFI run-time ABI support (2)

* Files forgotten in last commit.  Fix ABI (microsoft call ABI is used
  for EFI direct calls).

5 years agoefi - Add EFI run-time ABI support
Matthew Dillon [Tue, 22 Nov 2016 22:53:50 +0000 (14:53 -0800)]
efi - Add EFI run-time ABI support

* Add EFI run-time ABI support, ability to query and set the time,
  scan EFI BIOS variables, etc.

* Port from FreeBSD.  Use our vmspace management functions to handle
  the specialized pmap requirements instead of rerolling the page
  table.  Make adjustments for differences in the device API.  etc.

Ported-by: swildner, dillon
Ported-from: FreeBSD, Warner Losh

5 years agosys/dev/disk/dm: Sync with Linux changes in flakey read behavior
Tomohiro Kusumi [Tue, 22 Nov 2016 14:50:01 +0000 (23:50 +0900)]
sys/dev/disk/dm: Sync with Linux changes in flakey read behavior

Synw with the following Linux kernel commits.

Note that above commits and this commit change read behavior.
It seems the existing read behavior was not what dm-flakey was
originally designed to be.

DragonFly's dm-flakey basically just does what Linux dm-flakey
does, so this commit just syncs with above changes.

5 years agoudp: Don't propagate connect error, as long as the inpcb has local port.
Sepherosa Ziehau [Tue, 22 Nov 2016 02:57:13 +0000 (10:57 +0800)]
udp: Don't propagate connect error, as long as the inpcb has local port.

This fixes the UDP socket disconnect->[read/write] support; before this
fix, the immediate read/write after disconnect will get EAFNOTSUPPORT.

5 years agotest/udp: Add echo test for connected->disconnected socket.
Sepherosa Ziehau [Tue, 22 Nov 2016 02:56:22 +0000 (10:56 +0800)]
test/udp: Add echo test for connected->disconnected socket.

5 years agogcc50: Activate workaround for libgcc_pic.a.
zrj [Mon, 21 Nov 2016 14:24:01 +0000 (16:24 +0200)]
gcc50: Activate workaround for libgcc_pic.a.

For now to ease up dports compilations (affects only c++ -pthread -shared).

In-discussion-with: marino

5 years agosvc(8): Link as static.
zrj [Mon, 21 Nov 2016 11:14:08 +0000 (13:14 +0200)]
svc(8): Link as static.

Depends on libpthread.so that is in /usr/lib and symlink.
Avoids problems on split / and /usr layout installations.

5 years agolibsmb: Install .so.2 into /lib to unbreak mount_smbfs(8).
zrj [Mon, 21 Nov 2016 11:28:20 +0000 (13:28 +0200)]
libsmb: Install .so.2 into /lib to unbreak mount_smbfs(8).

Fixes issue for /sbin/mount_smbfs on split / and /usr layout installations.

5 years agolibdevstat: Install .so.3 into /lib to unbreak vinum(8).
zrj [Mon, 21 Nov 2016 11:17:15 +0000 (13:17 +0200)]
libdevstat: Install .so.3 into /lib to unbreak vinum(8).

Fixes issue for /sbin/vinum on split / and /usr layout installations.

Reported-by: Stefan Unterweger
5 years agodrm: Use struct fb_info * as arg for syscons fb restore helper function.
Imre Vadász [Tue, 15 Nov 2016 23:34:04 +0000 (00:34 +0100)]
drm: Use struct fb_info * as arg for syscons fb restore helper function.

* This makes the framebuffer api handling in drm slightly nicer, and
  reduces the diffs in drm/radeonkms/i915 a bit.

* Renames the cookie element in struct fb_info to par, to avoid diffs
  in drm, radeonkms and i915.

* While there, use drm_fb_helper_alloc_fbi() in drm/radeon as well for
  allocating the struct fb_info, and uncomment drm_fb_helper_release_fbi(),
  which is needed in an error handler there.

5 years agoRemove /usr/include/readline from mtree too.
Sascha Wildner [Sat, 19 Nov 2016 11:19:09 +0000 (12:19 +0100)]
Remove /usr/include/readline from mtree too.

5 years agoi386 removal, part 61/x: Adjust some further #ifdefs.
Sascha Wildner [Sat, 19 Nov 2016 10:09:06 +0000 (11:09 +0100)]
i386 removal, part 61/x: Adjust some further #ifdefs.

5 years agoi386 removal, part 60/x: Generalize a buildkernel error message a bit.
Sascha Wildner [Sat, 19 Nov 2016 09:41:08 +0000 (10:41 +0100)]
i386 removal, part 60/x: Generalize a buildkernel error message a bit.

Pointed-out-by: zrj
5 years agoi386 removal, part 59/x: Revert a i386 specific local change in dma(8).
Sascha Wildner [Sat, 19 Nov 2016 09:38:44 +0000 (10:38 +0100)]
i386 removal, part 59/x: Revert a i386 specific local change in dma(8).

5 years agoRemove some old architecture handling.
Sascha Wildner [Sat, 19 Nov 2016 09:34:53 +0000 (10:34 +0100)]
Remove some old architecture handling.

Affected #ifdefs:


5 years agoi386 removal, part 58/x: Remove <sys/link_aout.h>.
Sascha Wildner [Sat, 19 Nov 2016 09:08:12 +0000 (10:08 +0100)]
i386 removal, part 58/x: Remove <sys/link_aout.h>.

Its last user was removed in aeaecd482b46e655e59bf281f04e91d0bb4f773b.

5 years agodrm - Fix lock order reversal
Matthew Dillon [Sat, 19 Nov 2016 05:55:50 +0000 (21:55 -0800)]
drm - Fix lock order reversal

* Lock order reversal caused by holding dev_pager_mtx() across
  the object->un_pager.devp.ops->cdev_pg_dtor() call.  devpgr -> drmslk.

* Move the lock from before to after the call.  Holding the mutex shouldn't
  be necessary across the call.  This also fixes the reversal as devpgr is
  no longer held across the call.

* Fixes a lock order reversal against drm_ioctl() which obtains drmslk first
  and recurses into a device pager operation which gets devpgr.

* Fix a few other incidental bugs that would normally not be triggered by
  the DRM code due to outer locks held by the DRM code.  Plus some formatting

5 years agokernel - Fix swap warning message when swap is full
Matthew Dillon [Fri, 18 Nov 2016 23:24:45 +0000 (15:24 -0800)]
kernel - Fix swap warning message when swap is full

* Wrong variable tested caused confusing warning to be output.  Output
  swap full warning instead of 'no swap space configured' warning when
  swap is full and swap space has been configured.

Reported-by: tuxillo
5 years agoLIBPRIV: Add private includes for dfuife_curses.
zrj [Fri, 18 Nov 2016 17:02:10 +0000 (19:02 +0200)]
LIBPRIV: Add private includes for dfuife_curses.

installer(1) is only built during make release or WANT_INSTALLER=yes.

5 years agoRelocate readline and ncurses headers to /usr/include/priv
John Marino [Thu, 17 Nov 2016 20:46:24 +0000 (14:46 -0600)]
Relocate readline and ncurses headers to /usr/include/priv

Having public headers for private libraries can cause confusion for
software that assumes the presence of headers leads to the availability
of the libraries.

Discussed-with: dillon

5 years agosys/vfs/hammer: Fix wrong comment
Tomohiro Kusumi [Fri, 18 Nov 2016 08:40:27 +0000 (17:40 +0900)]
sys/vfs/hammer: Fix wrong comment

7f1e2b68 should have had 4TB, not 4GB.

5 years agowlan - Don't check bgscanidle setting in net80211 for full-offload scan.
Imre Vadász [Thu, 17 Nov 2016 22:06:29 +0000 (23:06 +0100)]
wlan - Don't check bgscanidle setting in net80211 for full-offload scan.

* If full-offload scan is used, the NIC driver (or rather the firmware of
  the NIC) should take care of interrupting and continuing the background
  scan. So net80211 should ignore the vap->iv_bgscanidle setting then,
  instead the NIC driver might look at this setting and pass it on to the
  firmware in some way if possible.

* Since full-offload scans won't be explicitly interrupted by net80211, it
  also doesn't really make sense to check the vap->iv_bgscanidle condition
  in that case, before starting a background scan. If the NIC driver
  advertises background scan support and full-offload scanning, the firmware
  should be able to execute that scan without interfering too much with our
  data traffic.

Taken-From: FreeBSD (svn r308785)

5 years agodrm/linux: add sg_pcopy_{from/to}_buffer()
zrj [Thu, 17 Nov 2016 18:40:57 +0000 (20:40 +0200)]
drm/linux: add sg_pcopy_{from/to}_buffer()

Needed for i915 guc fw loading.

Found on github implemented by mattmacy@ FreeBSD repo

5 years agodrm/linux: Add ida_simple_get()
François Tigeot [Thu, 17 Nov 2016 16:39:10 +0000 (17:39 +0100)]
drm/linux: Add ida_simple_get()

Inspired-by: NetBSD
5 years agodrm/linux: add few ida_* functions.
zrj [Thu, 17 Nov 2016 16:05:38 +0000 (17:05 +0100)]
drm/linux: add few ida_* functions.

Needed for i915 guc submission.

zRJ-note: technically should be in idr(9) but for now will do.

Found on github implemented by mattmacy@ FreeBSD repo

5 years agodrm/linux: Add cache_line_size()
François Tigeot [Tue, 15 Nov 2016 20:38:53 +0000 (21:38 +0100)]
drm/linux: Add cache_line_size()

5 years agodrm/linux: add atomic64_cmpxchg()
zrj [Tue, 15 Nov 2016 19:19:33 +0000 (20:19 +0100)]
drm/linux: add atomic64_cmpxchg()

Found on github implemented by mattmacy@ FreeBSD repo

5 years agodrm/i915/trace: Add missing include files
François Tigeot [Tue, 15 Nov 2016 16:16:37 +0000 (17:16 +0100)]
drm/i915/trace: Add missing include files

5 years agodrm/linux: MODULE_FIRMWARE is defined in linux/module.h
François Tigeot [Tue, 15 Nov 2016 16:12:59 +0000 (17:12 +0100)]
drm/linux: MODULE_FIRMWARE is defined in linux/module.h

5 years agodrm/linux: implement div64_u64_rem() helper in math64.h
zrj [Tue, 15 Nov 2016 12:08:26 +0000 (13:08 +0100)]
drm/linux: implement div64_u64_rem() helper in math64.h

5 years agodntpd: Fix typo.
Sascha Wildner [Mon, 14 Nov 2016 17:35:02 +0000 (18:35 +0100)]
dntpd: Fix typo.

5 years agogcc50: Add alternative variant of pthread presence checking.
zrj [Mon, 14 Nov 2016 08:47:36 +0000 (10:47 +0200)]
gcc50: Add alternative variant of pthread presence checking.

There are few issues that ld.gold is having with DragonFly libgcc_pic.a.
This alternative variant is less strict when linking c++ projects.

5 years agoLINT64: Fix buildkernel with WANT_HAMMER2=yes.
zrj [Sun, 13 Nov 2016 17:52:15 +0000 (19:52 +0200)]
LINT64: Fix buildkernel with WANT_HAMMER2=yes.

Mostly #if DEBUG paths, also use panic() in z_error() for kernel.

5 years agonvi: Convert catalog creation to use hostprog.
zrj [Fri, 11 Nov 2016 12:51:43 +0000 (14:51 +0200)]
nvi: Convert catalog creation to use hostprog.

nvi dump utility is not part of btools, so just split vidump as hostprog.
There were few issues:
 * build races like dump and say spanish get created twice (and raced)
 * buildworld failures, from time to time i hit ./dump linking race (rare)
 * ./dump being used as target program (problems on crosscompilations)
 * missing env LANG=C for sort, minor issues in awk script and SHAREDIR.

Now even "cd usr.bin/vi && make -j9 depend all" should be race free.

5 years agogcc47: Remove bits/ handling.
zrj [Thu, 10 Nov 2016 18:43:24 +0000 (20:43 +0200)]
gcc47: Remove bits/ handling.

Not used by any active sources.
Now quickworld should not delete libstdcxx .depend on no source changes.

5 years agogcc50: Fix logic in cxx hostlib.
zrj [Thu, 10 Nov 2016 18:41:54 +0000 (20:41 +0200)]
gcc50: Fix logic in cxx hostlib.

Now quickworld should not delete libstdcxx .depend on no source changes.

5 years agoinstaller - Fix a bug in survey_storage()
Antonio Huete Jimenez [Thu, 10 Nov 2016 22:59:50 +0000 (23:59 +0100)]
installer - Fix a bug in survey_storage()

- survey_storage() issues DIOCGPART on every disk present in
  kern.disks in order to retrieve information about it.
  The problem was that a failure to get that information from
  any disk in the list caused the whole storage survey to be
  marked as failed. This happens, for example, with some card
  readers that present the disk devices even though there is no
  media inserted on the corresponding slot.

- Fix the logic in the installer and allow to check all disks
  in the system.

5 years agoinstaller - Allow to specify cmdnames file path
Antonio Huete Jimenez [Thu, 10 Nov 2016 22:26:45 +0000 (23:26 +0100)]
installer - Allow to specify cmdnames file path

5 years agoif_iwm - Check sc->sc_attached flag in suspend/resume callbacks.
Imre Vadász [Sun, 13 Nov 2016 21:36:16 +0000 (22:36 +0100)]
if_iwm - Check sc->sc_attached flag in suspend/resume callbacks.

* There is (almost) nothing to do in suspend/resume if if_iwm has failed
  during initialization (e.g. because of firmware load failure) and was
  already uninitialized by iwm_detach_local().

5 years agosys/vfs/hammer: Fix comments
Tomohiro Kusumi [Sat, 12 Nov 2016 15:45:04 +0000 (00:45 +0900)]
sys/vfs/hammer: Fix comments

5 years agosys/vfs/hammer: Remove wrong comment
Tomohiro Kusumi [Sat, 12 Nov 2016 15:44:51 +0000 (00:44 +0900)]
sys/vfs/hammer: Remove wrong comment

5 years agosys/vfs/hammer: Use HAMMER_HEAD_DOALIGN()
Tomohiro Kusumi [Sat, 12 Nov 2016 09:57:41 +0000 (18:57 +0900)]
sys/vfs/hammer: Use HAMMER_HEAD_DOALIGN()

5 years agosbin/hammer: sbin/hammer: Fix hammer show-undo output format
Tomohiro Kusumi [Sat, 12 Nov 2016 09:48:50 +0000 (18:48 +0900)]
sbin/hammer: sbin/hammer: Fix hammer show-undo output format

Add some ondisk redo fields.

5 years agosys/vfs/hammer: Change unused ondisk redo_mtime to reserved
Tomohiro Kusumi [Sat, 12 Nov 2016 09:26:13 +0000 (18:26 +0900)]
sys/vfs/hammer: Change unused ondisk redo_mtime to reserved

It was never used after added in 6048b411 in 2010.

5 years agoif_iwm - Move iwm_read_firmware() call into iwm_attach().
Imre Vadász [Sat, 12 Nov 2016 12:41:49 +0000 (13:41 +0100)]
if_iwm - Move iwm_read_firmware() call into iwm_attach().

* We should load the firmware exactly once before the driver really
  initializes the hardware the first time, and unload it at detach time.
  There is no need to retrieve the firmware during execution of
  iwm_mvm_load_ucode_wait_alive(), we should make sure we already have the
  firmware data at hand before that.

* The existing sc_preinit_hook code fails to deal with the case where
  if_iwm is loaded by the loader (or is statically linked) and the
  firmware needs to be loaded from disk. So we can just call
  iwm_read_firmware() from iwm_attach() directly.

* A separate solution will have to be added to properly defer the firmware
  loading during bootup, until the necessary filesystem is mounted.

5 years agoDo 3b5eca529baf58ea74a485139963552cc4c1d977 a bit better.
Sascha Wildner [Sat, 12 Nov 2016 11:45:01 +0000 (12:45 +0100)]
Do 3b5eca529baf58ea74a485139963552cc4c1d977 a bit better.

FWIW, keep the NO_CRYPT dependency in lib/libcrypt for various sources.

5 years agoif_iwm - Attach to new AC3168 and AC8265 chipsets (untested).
Imre Vadász [Fri, 11 Nov 2016 20:09:05 +0000 (21:09 +0100)]
if_iwm - Attach to new AC3168 and AC8265 chipsets (untested).

5 years agoiwmfw - Add version 22 firmwares for AC3168 and AC8265 chipsets.
Imre Vadász [Fri, 11 Nov 2016 20:08:29 +0000 (21:08 +0100)]
iwmfw - Add version 22 firmwares for AC3168 and AC8265 chipsets.

5 years agosbin/hammer: Fix hammer show-undo output format
Tomohiro Kusumi [Sat, 12 Nov 2016 06:25:41 +0000 (15:25 +0900)]
sbin/hammer: Fix hammer show-undo output format

The whole size should be in %d since data size is in %d as well.

5 years agosys/vfs/hammer: Add hammer_xlate_to_undo()
Tomohiro Kusumi [Sat, 12 Nov 2016 05:37:26 +0000 (14:37 +0900)]
sys/vfs/hammer: Add hammer_xlate_to_undo()

5 years agosbin/hammer: Refactor left/right boundary elms in hammer show
Tomohiro Kusumi [Sat, 12 Nov 2016 04:11:10 +0000 (13:11 +0900)]
sbin/hammer: Refactor left/right boundary elms in hammer show

hammer show doesn't need to pass around pointers to left/right
boundary elms in every function while walking the B-Tree.

Left/right elms are there to test whether a B-Tree node in
question fits in boundaries defined by its parent, which means
that hammer show always requires the right elm be (left+1), but
not some random elm after the left elm. Because of this, it
only needs to pass around the left elm.

The code is more efficient plus look better without bunch of
left/right stuff.

5 years agosbin/hammer: Cleanup zone statistics
Tomohiro Kusumi [Fri, 11 Nov 2016 18:23:52 +0000 (03:23 +0900)]
sbin/hammer: Cleanup zone statistics

5 years agosbin/hammer: Cleanup hammer show-undo
Tomohiro Kusumi [Fri, 11 Nov 2016 18:14:49 +0000 (03:14 +0900)]
sbin/hammer: Cleanup hammer show-undo

5 years agosbin/hammer: Make hammer show-undo support zone statistics
Tomohiro Kusumi [Fri, 11 Nov 2016 18:09:39 +0000 (03:09 +0900)]
sbin/hammer: Make hammer show-undo support zone statistics

5 years agosys/vfs/hammer: Add HAMMER_UNDO_DOALIGN()
Tomohiro Kusumi [Wed, 9 Nov 2016 15:56:25 +0000 (00:56 +0900)]
sys/vfs/hammer: Add HAMMER_UNDO_DOALIGN()

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment size.

5 years agosbin/hammer: Cleanup blockmap
Tomohiro Kusumi [Wed, 9 Nov 2016 15:41:31 +0000 (00:41 +0900)]
sbin/hammer: Cleanup blockmap

5 years agodrm/linux: Add clamp_val()
François Tigeot [Fri, 11 Nov 2016 11:25:55 +0000 (12:25 +0100)]
drm/linux: Add clamp_val()

Obtained-from: FreeBSD

5 years agodrm/linux: Add ktime_get_boottime and ktime_ms_delta()
François Tigeot [Fri, 11 Nov 2016 11:09:29 +0000 (12:09 +0100)]
drm/linux: Add ktime_get_boottime and ktime_ms_delta()

5 years agogcc50: Install liblto_plugin.so as +x.
zrj [Fri, 11 Nov 2016 07:17:44 +0000 (09:17 +0200)]
gcc50: Install liblto_plugin.so as +x.

Sad but this limitation in gcc driver requires that utility be executable.
This matches how it is done on standard installations, so follow along.
Some ports rely on gcc -print-prog-name=liblto_plugin.so working.

5 years agobuild: Suppress exessive echoing.
zrj [Fri, 11 Nov 2016 07:02:07 +0000 (09:02 +0200)]
build: Suppress exessive echoing.

5 years agoLIBPRIV: Add common PRIVATELIB_LDFLAGS definitions.
zrj [Wed, 9 Nov 2016 17:14:52 +0000 (19:14 +0200)]
LIBPRIV: Add common PRIVATELIB_LDFLAGS definitions.

Simply being able to change it in two places is easier than everywhere.
Also add PRIVATELIB_BLDFLAGS that is intended for bootsrapping only.
While there, perform some cleanup for dup entries.

5 years agoLIBPRIV: Introduce PRIVATELIB knob (just like INTERNALLIB).
zrj [Wed, 9 Nov 2016 15:36:05 +0000 (17:36 +0200)]
LIBPRIV: Introduce PRIVATELIB knob (just like INTERNALLIB).

Collect common private libraries path handling bits into share/mk/bsd.lib.mk.
It is cleaner this way, prevents issues like manual paths and/or ignoring stale
.depend for /usr/obj/usr/src/world_x86_64/usr/lib/priv/priv/libprivate_ncurses.a

5 years agoflex: Break the hardlinks to fix quickworld issues.
zrj [Wed, 9 Nov 2016 10:25:23 +0000 (12:25 +0200)]
flex: Break the hardlinks to fix quickworld issues.

Upon repeated quickworld run when install -C installs the libfl.a it breaks
the previous hardlink and retrigers relink for anything that depends on -ll.

Solve this by changing logic to install compat libs for install target only.
During buildworld only main ${LIBL} should be used where needed.

Fix a single case where -lfl was used in binutils. Add missing DPADD too.

5 years agoflex: Rename and install the main libl.a as primary one.
zrj [Wed, 9 Nov 2016 10:12:41 +0000 (12:12 +0200)]
flex: Rename and install the main libl.a as primary one.

libfl and libln are only used as compat ones for external sources linkage.
Whole base makefile system uses the ${LIBL}.

5 years agosys/vfs/hammer: Add HAMMER_ZONE_LAYER2_NEXT_OFFSET()
Tomohiro Kusumi [Wed, 9 Nov 2016 13:06:18 +0000 (22:06 +0900)]
sys/vfs/hammer: Add HAMMER_ZONE_LAYER2_NEXT_OFFSET()

Note that this is different from HAMMER_BLOCKMAP_LAYER2_OFFSET().
HAMMER_BLOCKMAP_LAYER2_OFFSET() is an offset of layer2 entry within
a big-block for layer2, but not zone offset itself.

5 years agosys/vfs/hammer: Add HAMMER_ZONE_LAYER1_NEXT_OFFSET()
Tomohiro Kusumi [Wed, 9 Nov 2016 12:52:21 +0000 (21:52 +0900)]
sys/vfs/hammer: Add HAMMER_ZONE_LAYER1_NEXT_OFFSET()

Note that this is different from HAMMER_BLOCKMAP_LAYER1_OFFSET().
HAMMER_BLOCKMAP_LAYER1_OFFSET() is an offset of layer1 entry within
a big-block for layer1, but not zone offset itself.

5 years agobsd.crunchgen.mk: Sync with FreeBSD.
zrj [Mon, 7 Nov 2016 12:33:52 +0000 (14:33 +0200)]
bsd.crunchgen.mk: Sync with FreeBSD.

This finally allows not to relink rescue image if there are no changes and
have clean stage of "4d: building everything.."!
Helps a lot on LTO quick rebuilds.

While there, remove hack from crunchgen(1), it no longer should be needed.
Please report build races if any.

Taken-from: FreeBSD

5 years agobsd.crunchgen.mk: Split few monolitic targets.
zrj [Mon, 7 Nov 2016 11:32:11 +0000 (13:32 +0200)]
bsd.crunchgen.mk: Split few monolitic targets.

For easier debug.

Taken-from: FreeBSD

5 years agobsd.crunchgen.mk: Simplify mk logic a bit.
zrj [Mon, 7 Nov 2016 11:12:54 +0000 (13:12 +0200)]
bsd.crunchgen.mk: Simplify mk logic a bit.

Just provide defaults if needed.

5 years agobsd.crunchgen.mk: Remove dub handling of CANONICALOBJDIR.
zrj [Mon, 7 Nov 2016 10:40:29 +0000 (12:40 +0200)]
bsd.crunchgen.mk: Remove dub handling of CANONICALOBJDIR.

It is already handled in bsd.obj.mk.
While there, drop non functional NO_DEBUG_FILES and update bsd.README.

5 years agobsd.crunchgen.mk: No longer exclude -P option.
zrj [Mon, 7 Nov 2016 08:48:16 +0000 (10:48 +0200)]
bsd.crunchgen.mk: No longer exclude -P option.

It was used only when fmake.
While there, do not hardcode crunchgen name and add env handling.

Taken-from: FreeBSD

5 years agobsd.crunchgen.mk: Use single style for variables.
zrj [Mon, 7 Nov 2016 08:40:22 +0000 (10:40 +0200)]
bsd.crunchgen.mk: Use single style for variables.

No functional change.

5 years agoif_iwm - Advertise full-offload scan support, fixes scan while associated.
Imre Vadász [Mon, 7 Nov 2016 21:02:31 +0000 (22:02 +0100)]
if_iwm - Advertise full-offload scan support, fixes scan while associated.

* This avoids the firmware panics previously experienced when starting a
  wlan scan (e.g. with "ifconfig wlan0 scan" or "scan" command in a
  wpa_supplicant user-interface), while associated to an AP.

5 years agowlan - Import initial full-offload scan support from FreeBSD.
Imre Vadász [Mon, 7 Nov 2016 20:45:45 +0000 (21:45 +0100)]
wlan - Import initial full-offload scan support from FreeBSD.

This is a very simple addition to the net80211 scan support.

It doesn't implement a replacement scan interface - it just disables
the pieces that we should disable to make this lifecycle a bit
more managable.

There's more work to come before full scan offload support is available
but it should be good enough for driver work.

* add a flag to say "full offload"
* don't do probe requests when scanning full-offload - firmware can do that
* don't do powersave transitions and buffering - firmware can do that
* don't abort a background scan upon reception of a single packet.
  Full offload drivers don't need this behaviour - they do it in firmware.

Taken-From: FreeBSD (svn r307602, r308007 and r308008)

5 years agosys/vfs/hammer: Use HAMMER_BUFSIZE_DOALIGN() and variants
Tomohiro Kusumi [Mon, 7 Nov 2016 15:12:54 +0000 (00:12 +0900)]
sys/vfs/hammer: Use HAMMER_BUFSIZE_DOALIGN() and variants

This should have been in bbc5e78b (failed to catch these).

5 years agosys/vfs/hammer: Cleanups
Tomohiro Kusumi [Mon, 7 Nov 2016 15:06:43 +0000 (00:06 +0900)]
sys/vfs/hammer: Cleanups

5 years agosys/vfs/hammer: Add HAMMER_BIGBLOCK_DOALIGN()
Tomohiro Kusumi [Mon, 7 Nov 2016 14:53:08 +0000 (23:53 +0900)]
sys/vfs/hammer: Add HAMMER_BIGBLOCK_DOALIGN()

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment size.

5 years agokernel - Attempt to fix cluster pbuf deadlock on recursive filesystems
Matthew Dillon [Tue, 8 Nov 2016 02:56:34 +0000 (18:56 -0800)]
kernel - Attempt to fix cluster pbuf deadlock on recursive filesystems

* Change global pbuf count limits (used primarily for clustered I/O) to
  per-mount and per-device limits.  The per-mount / per-device limit
  is set to nswbuf_kva / 10, allowing 10 different entities to obtain
  pbufs concurrently without interference.

* This change goes a long way towards fixing deadlocks that could occur
  with the old global system (a global limit of nswbuf_kva / 2) when
  the I/O system recurses through a virtual block device or filesystem.
  Two examples of virtual block devices are the 'vn' device and the crypto

* We also note that even normal filesystem read and write I/O strategy calls
  will recurse at least once to dive the underlying block device.  DFly also
  had issues with pbuf hogging by one mount causing unnecessary stalls
  in other mounts.  This fix also prevents pbuf hogging.

* Remove unused internal O_MAPONREAD flag.

Reported-by: htse, multiple
Testing-by: htse, dillon
5 years agokernel - Add nvme to the default kernel build
Matthew Dillon [Sun, 6 Nov 2016 19:55:45 +0000 (11:55 -0800)]
kernel - Add nvme to the default kernel build

* Add the nvme disk driver to the default kernel build, it no longer
  needs to be loaded as a module.

5 years agosbin/hammer: Cleanup alloc_blockmap()
Tomohiro Kusumi [Mon, 7 Nov 2016 12:04:41 +0000 (21:04 +0900)]
sbin/hammer: Cleanup alloc_blockmap()

Layer1 could be assertion.
It's essentially the same as what 0d1f6085 in 2015 checks.

5 years agosbin/hammer: Add another condition to assert_volume_offset()
Tomohiro Kusumi [Sun, 6 Nov 2016 14:14:06 +0000 (23:14 +0900)]
sbin/hammer: Add another condition to assert_volume_offset()

which is kinda obvious and expected to be false on newfs time.

5 years agosbin/hammer: Split alloc_bigblock() into two functions [2/2]
Tomohiro Kusumi [Sun, 6 Nov 2016 14:29:54 +0000 (23:29 +0900)]
sbin/hammer: Split alloc_bigblock() into two functions [2/2]

This function is currently only used by zone-3, but it's actually
only usable by zone-3 from the way it's implemented, so rename it
to alloc_undo_bigblock() and get rid of zone argument.

The way blockmap offsets (in root volume) get updated for zone-3
differs from other zones like 8/9/10/11, and this function which
doesn't update blockmap offsets on allocation only works against

5 years agosbin/hammer: Split alloc_bigblock() into two functions [1/2]
Tomohiro Kusumi [Sun, 6 Nov 2016 13:51:09 +0000 (22:51 +0900)]
sbin/hammer: Split alloc_bigblock() into two functions [1/2]

For zone-4, all you can (need to) do is increment offset by 8MB,
so split alloc_bigblock() into bootstrap_bigblock() for zone-4 and
alloc_bigblock() for zone-3. It's easier to understand this way.

5 years agoAdjust various things after the removal of secure/.
Sascha Wildner [Sun, 6 Nov 2016 23:08:49 +0000 (00:08 +0100)]
Adjust various things after the removal of secure/.

* Fix etc/Makefile: This brings back installation of /etc/ssh_config
    and /etc/sshd_config to our IMG/ISO.

* Add back DES and Blowfish functions to libcrypt.

* Remove installation of CA.pl/CA.sh. They don't seem to be part of

* Remove obsolete paths from whereis(1).

* Adjust hier(7) manual page.

* Adjust openssh upgrade instructions.

* While here, fix a typo in Makefile.ssh.common.

5 years agoif_iwm - The iwm_prepare_card_hw() in iwm_attach() is only needed on 8K hw.
Imre Vadász [Sun, 6 Nov 2016 21:21:22 +0000 (22:21 +0100)]
if_iwm - The iwm_prepare_card_hw() in iwm_attach() is only needed on 8K hw.

* Doing the iwm_prepare_card_hw() call in iwm_attach() only on Family 8000
  hardware matches the code in Linux iwlwifi.

* While there remove DEFAULT_MAX_TX_POWER definition which is unused, and
  has a value different from IWL_DEFAULT_MAX_TX_POWER in iwlwifi.

5 years agoif_iwm - Use rates given in struct ieee80211_txparam for non-data transfers.
Imre Vadász [Sun, 6 Nov 2016 16:44:56 +0000 (17:44 +0100)]
if_iwm - Use rates given in struct ieee80211_txparam for non-data transfers.

* Make iwm_tx_fill_cmd() just return the uint8_t rate, to avoid looking up
  the firmware rate-index for DATA transfers.

Taken-From: FreeBSD (svn r306286)

5 years agoif_iwm - Update firmware rs table, instead of indexing the table in tx cmds.
Imre Vadász [Sun, 6 Nov 2016 15:25:54 +0000 (16:25 +0100)]
if_iwm - Update firmware rs table, instead of indexing the table in tx cmds.

* Rather than providing a non-zero index into the firmware RS table,
  we should always use index 0 and update the firmware RS table whenever
  our chosen tx rate for data-frames changes.

* Send IWM_LQ_CMD updates when the tx rate gets updated by the net80211
  rate control (which is after we tell the tx status to the net80211
  rate-control in iwm_mvm_rx_tx_cmd_single()).

* Disregard frames transferred with a different tx rate than the currently
  selected rate for the rate-control calculations. This way we avoid
  counting management frames (which are sent at a slow, and fixed rate),
  as well as frames we added to the tx queue just before a new IWM_LQ_CMD
  update took effect.

Inspired-By: Linux iwlwifi
5 years agobuild - Fix modifying operation to /usr/obj during installworld (2)
Matthew Dillon [Sun, 6 Nov 2016 19:24:00 +0000 (11:24 -0800)]
build - Fix modifying operation to /usr/obj during installworld (2)

* efi/boot1 needs the same treatment as the last commit.

Reported-by: ivadasz
5 years agobuild - Fix modifying operation to /usr/obj during installworld.
Matthew Dillon [Sun, 6 Nov 2016 18:56:35 +0000 (10:56 -0800)]
build - Fix modifying operation to /usr/obj during installworld.

* The build for /usr/src/sys/boot/efi/loader is incomplete.  The
  installworld step tries to build the last piece.  Add the piece to
  all: to properly build it during the build phase and not the
  install phase.

5 years agosys/vfs/hammer: Add HAMMER_DATA_DOALIGN() and variants
Tomohiro Kusumi [Sun, 6 Nov 2016 06:17:37 +0000 (15:17 +0900)]
sys/vfs/hammer: Add HAMMER_DATA_DOALIGN() and variants

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment size.

5 years agosys/vfs/hammer: Add HAMMER_BUFSIZE_DOALIGN() and variants
Tomohiro Kusumi [Sun, 6 Nov 2016 06:35:28 +0000 (15:35 +0900)]
sys/vfs/hammer: Add HAMMER_BUFSIZE_DOALIGN() and variants

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment size.

5 years agosys/vfs/hammer: Add HAMMER_BLOCKMAP_LAYER2_DOALIGN()
Tomohiro Kusumi [Sun, 6 Nov 2016 05:47:26 +0000 (14:47 +0900)]

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment size.

5 years agosbin/hammer: Add a TODO comment for hammer recover
Tomohiro Kusumi [Sun, 6 Nov 2016 05:20:12 +0000 (14:20 +0900)]
sbin/hammer: Add a TODO comment for hammer recover

The way hammer recover simply walks through zone-2 offset from
0 to the end of the volume is inefficient.

Since we know most big-blocks are not for zone-8 (B-Tree zone),
most of the time and I/O spent for testing B-Tree nodes is wasted.
If zone-2 offset can be reverse mapped to zone-X, it no longer
needs to always call recover_top() assuming offsets are for
B-Tree nodes when we know it's mostly wrong.

Reverse mapping can also avoid possible misinterpretation of
zone-2 buffers (i.e. wrong cast to hammer_node_ondisk_t).