dragonfly.git
4 hours agoMakefile.inc1: Add libelf to _prebuilt_libs. master
zrj [Thu, 24 May 2018 12:33:03 +0000 (15:33 +0300)]
Makefile.inc1: Add libelf to _prebuilt_libs.

Even if it is internallib for libexecinfo it is very close to race in
_generic_libs.

While there, add ordering for liblzma against libpthread.

19 hours agotools/make_libdeps.sh: Use sys.mk from src/.
zrj [Thu, 24 May 2018 12:16:00 +0000 (15:16 +0300)]
tools/make_libdeps.sh: Use sys.mk from src/.

While there, remove not needed /bin from PATH.

Suggested-by: swildner
24 hours agoRemove some duplicated includes.
Sascha Wildner [Thu, 24 May 2018 12:23:51 +0000 (14:23 +0200)]
Remove some duplicated includes.

26 hours agotools/make_libdeps.sh: Add needed mangling rules.
zrj [Thu, 24 May 2018 09:21:09 +0000 (12:21 +0300)]
tools/make_libdeps.sh: Add needed mangling rules.

For tool to work properly:
 * suppess all of the -Wl,--foo (yes, we have those unfortunately);
 * mangle all of pthread references;
 * ignore libstdc++'s ../components/blah/libfoo_pic.a (used as int libs);
 * remangle internallib libelf_pic.a for libexecinfo;
 * mangle all of the privatelibs to get correct lib location.

26 hours agotools/make_libdeps.sh: Adjust invocation.
zrj [Thu, 24 May 2018 09:16:49 +0000 (12:16 +0300)]
tools/make_libdeps.sh: Adjust invocation.

Small changes:
 * add /sbin to the patch for `sysctl hw.platform` in sys.mk;
 * use tr(1) from /bin instead of rs(1) that might truncate;
 * enforce C collate;
 * explicitly sort find(1) results.

26 hours agotools/make_libdeps.sh: Update directory list.
zrj [Thu, 24 May 2018 09:13:53 +0000 (12:13 +0300)]
tools/make_libdeps.sh: Update directory list.

36 hours agohammer2 - Fix kmalloc pool blowout on low-memory machines
Matthew Dillon [Thu, 24 May 2018 00:25:44 +0000 (17:25 -0700)]
hammer2 - Fix kmalloc pool blowout on low-memory machines

* Fix a kmalloc pool blown that can occur on low-memory machines due
  to too many disconnected hammer2_inode structures building up.

* Was previously fixed for things like rm -rf and bulk renames,
  but not for setattr (aka chown/chmod -R ops).

Reported-by: gjs278
40 hours agodrm/linux/timer.h: No need to protect a callout struct from MP accesses
François Tigeot [Wed, 23 May 2018 20:33:36 +0000 (22:33 +0200)]
drm/linux/timer.h: No need to protect a callout struct from MP accesses

Spotted-by: Imre Vadász <imre@vdsz.com>
42 hours agodrm - No need to protect a callout struct from MP accesses.
Imre Vadász [Wed, 23 May 2018 18:21:10 +0000 (20:21 +0200)]
drm - No need to protect a callout struct from MP accesses.

2 days agobsd-family-tree: Fix SVN tag.
Sascha Wildner [Wed, 23 May 2018 12:24:41 +0000 (14:24 +0200)]
bsd-family-tree: Fix SVN tag.

2 days agoAnnounce DragonFly 5.2.1
Eitan Adler [Wed, 23 May 2018 04:57:54 +0000 (04:57 +0000)]
Announce DragonFly 5.2.1

2 days agobsd.kern.mk: Remove gcc80 workaround.
zrj [Wed, 23 May 2018 05:50:36 +0000 (08:50 +0300)]
bsd.kern.mk: Remove gcc80 workaround.

No longer needed.

2 days agodrm/i915: Disable few unused const structs and functions.
zrj [Wed, 23 May 2018 05:30:46 +0000 (08:30 +0300)]
drm/i915: Disable few unused const structs and functions.

No functional change.

2 days agobtxld(8): Convert to hostprog.
zrj [Mon, 21 May 2018 16:52:20 +0000 (19:52 +0300)]
btxld(8): Convert to hostprog.

There is no point to provide this utility in base. We are not planing to
bring back i386 support. Move it into sys/boot/pc32/ for easier handling.

This way the AOUT_H_FORCE32 now is confined to the same pc32/ directory.
The <sys/imgact_aout.h> has override for it to create proper btx header.

For future we should make btxld endian neutral.

4 days agobtools: Obsolete pre hostprog era cc_tools.
zrj [Mon, 21 May 2018 09:38:00 +0000 (12:38 +0300)]
btools: Obsolete pre hostprog era cc_tools.

We no longer depend on them so this shaves about 1 min from buildworld.

Verified by comparing intermediates and final products.

4 days agohammer2(8): Clean up the Makefile a bit.
Sascha Wildner [Mon, 21 May 2018 08:46:20 +0000 (10:46 +0200)]
hammer2(8): Clean up the Makefile a bit.

Reported-by: zrj
4 days agoacpi: Add SUBDIR_ORDERED for the ACPICA tools for better parallelism.
Sascha Wildner [Mon, 21 May 2018 08:17:44 +0000 (10:17 +0200)]
acpi: Add SUBDIR_ORDERED for the ACPICA tools for better parallelism.

Reported-by: zrj
4 days agohammer2 - Beef up bulkfree buffering
Matthew Dillon [Mon, 21 May 2018 05:59:37 +0000 (22:59 -0700)]
hammer2 - Beef up bulkfree buffering

* Beef up the bulkfree buffering to allow a lot more memory
  to be used for the in-memory freemap copy.

* Add a -m mem[k,m,g] override option for hammer2 bulkfree.

* Reduce console spam.

4 days agoi386 removal, part 68/x: Remove a number of obsolete Makefiles from gnu/.
Sascha Wildner [Sun, 20 May 2018 11:19:17 +0000 (13:19 +0200)]
i386 removal, part 68/x: Remove a number of obsolete Makefiles from gnu/.

Reported-by: zrj
4 days agokbdcontrol(1): Remove not needed defines.
zrj [Sun, 20 May 2018 14:28:36 +0000 (17:28 +0300)]
kbdcontrol(1): Remove not needed defines.

While there, do the same for vidcontrol(1).

4 days agoshare/syscons: Separate hostprog and remove it from btools.
zrj [Sun, 20 May 2018 14:22:51 +0000 (17:22 +0300)]
share/syscons: Separate hostprog and remove it from btools.

The scrnmaps are not needed for buildworld.

4 days agoboot/pc32: Separate hostprog.
zrj [Sun, 20 May 2018 14:19:55 +0000 (17:19 +0300)]
boot/pc32: Separate hostprog.

Add guard in common sys/boot/pc32/Makefile.inc.
Hostprog shall not take any of those definitions.

4 days agoboot/pc32: Fix typo in mbr.
zrj [Sun, 20 May 2018 14:14:18 +0000 (17:14 +0300)]
boot/pc32: Fix typo in mbr.

Wrong patch in faa6f4d7da5ad6ef2d3e68dd2671b6d6f8161a9b,
the generated mbr was still OK (bmake warning).

While there, only extract XREADORG constant from boot1*.out and not
from bootasmdef.nx in case it ever get one.

5 days ago{un,}vis.3: Bring back some small fixes we had earlier.
Sascha Wildner [Sun, 20 May 2018 09:09:38 +0000 (11:09 +0200)]
{un,}vis.3: Bring back some small fixes we had earlier.

5 days agovm_page_alloc.9: Adjust for the removal of PG_BUSY.
Sascha Wildner [Sun, 20 May 2018 08:42:09 +0000 (10:42 +0200)]
vm_page_alloc.9: Adjust for the removal of PG_BUSY.

5 days agoip6.4: Clean up a bit.
Sascha Wildner [Sun, 20 May 2018 08:34:47 +0000 (10:34 +0200)]
ip6.4: Clean up a bit.

* Remove info about IPV6_IPCOMP_LEVEL which was removed along with IPsec.

* Fix a typo.

5 days agomtree/BSD.root.dist: Use spaces.
Sascha Wildner [Sun, 20 May 2018 08:09:09 +0000 (10:09 +0200)]
mtree/BSD.root.dist: Use spaces.

5 days agokernel - Change closefrom() EINTR behavior
Matthew Dillon [Sun, 20 May 2018 05:58:58 +0000 (22:58 -0700)]
kernel - Change closefrom() EINTR behavior

* closefrom() no longer breaks out of its loop if it gets an
  EINTR from a close().  EINTR can only occur from NFS in this
  situation, and the descriptor is still closed.  Any EINTR's
  which occur will be rolled up and returned after the loop
  completes.

* Callers usually ignore closefrom()'s return value anyway.

Suggested-by: mjg
5 days agobuild - Change default /root directory perms
Matthew Dillon [Sun, 20 May 2018 02:26:01 +0000 (19:26 -0700)]
build - Change default /root directory perms

* Change from 755 to 700.  700 is a more suitable default for
  ~root's home directory.

Reported-by: aly
5 days ago/usr/include/netinet6: Remove three unused IPsec related headers.
Sascha Wildner [Sat, 19 May 2018 22:47:05 +0000 (00:47 +0200)]
/usr/include/netinet6: Remove three unused IPsec related headers.

5 days agokgdb(1): Add missing "
Sascha Wildner [Sat, 19 May 2018 17:54:14 +0000 (19:54 +0200)]
kgdb(1): Add missing "

Reported-by: zrj
5 days agobsd.dep.mk: Split logic for CC and CXX handling.
zrj [Sat, 19 May 2018 07:39:24 +0000 (10:39 +0300)]
bsd.dep.mk: Split logic for CC and CXX handling.

Previously it assumed that cc(1) will be able to handle c++ sources.
That is not the case for compilers other than gcc or clang.

While there:
  * add MKDEPCC that could be used to override CC in certain
    more convoluted scenarios;
  * finally add a fix for hostprog deps, note that PATH skip from
    NXENV is intentional, we prefer not to use host's mkdep(1).

5 days agogcc50: Plug in WARNS framework for tools.
zrj [Sat, 19 May 2018 07:36:19 +0000 (10:36 +0300)]
gcc50: Plug in WARNS framework for tools.

At this point should be no-op change.

While there, do the same for gcc50 and gcc47.

5 days agogcc80: Create headers before depend in libbacktrace.
zrj [Sat, 19 May 2018 07:33:06 +0000 (10:33 +0300)]
gcc80: Create headers before depend in libbacktrace.

Avoids the situation where (if make depend fails for some reason)
build stops in a strange state.

While there, do the same for gcc50.

5 days agoboot/pc32: Filter out global LDFLAGS.
zrj [Sat, 19 May 2018 07:30:59 +0000 (10:30 +0300)]
boot/pc32: Filter out global LDFLAGS.

For cases when we need to set global LDFLAGS for compiler frontends.

6 days agokernel: Declare the enum for the guest type before using it.
Sascha Wildner [Sat, 19 May 2018 11:31:16 +0000 (13:31 +0200)]
kernel: Declare the enum for the guest type before using it.

Found-by: zrj
6 days agohammer(8): Add inline keywords in two prototypes of inline functions.
Sascha Wildner [Sat, 19 May 2018 11:30:36 +0000 (13:30 +0200)]
hammer(8): Add inline keywords in two prototypes of inline functions.

Found-by: zrj
6 days agokernel - Fix swapcache cleaning issue
Matthew Dillon [Sat, 19 May 2018 06:41:14 +0000 (23:41 -0700)]
kernel - Fix swapcache cleaning issue

* Fix a bug when a single object has swapcached pages.  In this
  situation, when swapcache exhausts its scan of the object it
  will fail to cycle back to the beginning.  This prevents it
  from cycling any further pages for the object.

* Does not corrupt the system or anything like that, but causes
  swapcache to behave in a way that can sometimes make it less
  useful.

Reported-by: tuxillo (java on monster)
6 days agoexamples/rconfig: Fix typos.
Sascha Wildner [Sat, 19 May 2018 01:18:23 +0000 (03:18 +0200)]
examples/rconfig: Fix typos.

7 days agortld-elf: -e is an ld(1) option.
Sascha Wildner [Fri, 18 May 2018 12:15:29 +0000 (14:15 +0200)]
rtld-elf: -e is an ld(1) option.

7 days agoerrno.9: Fix reference.
Sascha Wildner [Fri, 18 May 2018 05:23:38 +0000 (07:23 +0200)]
errno.9: Fix reference.

7 days agotop(1): Remove an unused file from the Makefile. We do pass HAVE_GETOPT.
Sascha Wildner [Thu, 17 May 2018 20:06:21 +0000 (22:06 +0200)]
top(1): Remove an unused file from the Makefile. We do pass HAVE_GETOPT.

Based-on-a-patch-by: zrj
7 days agoMerge branch 'vendor/TOP'
Sascha Wildner [Thu, 17 May 2018 20:04:54 +0000 (22:04 +0200)]
Merge branch 'vendor/TOP'

7 days agotop(1): Remove an unused file on the vendor branch. vendor/TOP
Sascha Wildner [Thu, 17 May 2018 20:03:39 +0000 (22:03 +0200)]
top(1): Remove an unused file on the vendor branch.

7 days agotcsh: Remove MINIX specific file from the build.
Sascha Wildner [Thu, 17 May 2018 12:58:22 +0000 (14:58 +0200)]
tcsh: Remove MINIX specific file from the build.

8 days agoMerge branch 'vendor/TCSH'
Sascha Wildner [Thu, 17 May 2018 12:56:13 +0000 (14:56 +0200)]
Merge branch 'vendor/TCSH'

8 days agotcsh: Remove MINIX specific file. vendor/TCSH
Sascha Wildner [Thu, 17 May 2018 12:54:54 +0000 (14:54 +0200)]
tcsh: Remove MINIX specific file.

Reported-by: zrj
8 days agogcc80: Add missing atomic variants in libgcov.
zrj [Thu, 17 May 2018 09:33:36 +0000 (12:33 +0300)]
gcc80: Add missing atomic variants in libgcov.

Use correct config (currently unused).

8 days agogcc80: Partially implement TOOLCHAIN_CHECKING.
zrj [Thu, 17 May 2018 08:30:16 +0000 (11:30 +0300)]
gcc80: Partially implement TOOLCHAIN_CHECKING.

Will be needed for special feature testing in newer binutils.

8 days agocollect2(1): Trim sources that create empty objects.
zrj [Thu, 17 May 2018 07:20:55 +0000 (10:20 +0300)]
collect2(1): Trim sources that create empty objects.

8 days agoas(1): Trim sources that create empty objects.
zrj [Thu, 17 May 2018 07:17:27 +0000 (10:17 +0300)]
as(1): Trim sources that create empty objects.

8 days agoSync ACPICA with Intel's version 20180508 (from previously 20170831).
Sascha Wildner [Wed, 16 May 2018 16:50:43 +0000 (18:50 +0200)]
Sync ACPICA with Intel's version 20180508 (from previously 20170831).

Tons of fixes and improvements.

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

9 days agoBring in an errno.9 manual page (based on NetBSD's).
Sascha Wildner [Wed, 16 May 2018 07:18:38 +0000 (09:18 +0200)]
Bring in an errno.9 manual page (based on NetBSD's).

10 days agoUpdate the pciconf(8) database.
Sascha Wildner [Tue, 15 May 2018 06:31:39 +0000 (08:31 +0200)]
Update the pciconf(8) database.

April 28, 2018 snapshot from https://pci-ids.ucw.cz

10 days agokernel/ipfw3: Remove unused malloc type.
Sascha Wildner [Tue, 15 May 2018 06:29:47 +0000 (08:29 +0200)]
kernel/ipfw3: Remove unused malloc type.

10 days agoRemove some headers via 'make upgrade'.
Sascha Wildner [Tue, 15 May 2018 06:28:25 +0000 (08:28 +0200)]
Remove some headers via 'make upgrade'.

10 days agoLTO: Few workarounds for gcc80 -flto.
zrj [Tue, 8 May 2018 15:20:05 +0000 (18:20 +0300)]
LTO: Few workarounds for gcc80 -flto.

10 days agobsd.sys.mk: Add handling for gcc80.
zrj [Wed, 2 May 2018 15:34:06 +0000 (18:34 +0300)]
bsd.sys.mk: Add handling for gcc80.

  * Turn off -Wformat-* family of warnings, the -Wformat-truncation and
    -Wformat-overflow is just too noisy for not much benefit.
    Do the same for -Wstringop-* family for now.
    Move these warnings (at their default settings) to WARNS_AUDIT.
  * Disable -Wimplicit-fallthough at WARNS=3, most of contrib is there.

10 days agoworld: Lower WARNS for bmake/tcsh contrib.
zrj [Wed, 2 May 2018 14:26:29 +0000 (17:26 +0300)]
world: Lower WARNS for bmake/tcsh contrib.

Revert this once issues have been solved upstream.

10 days agogcc80: Mark few sources as special for narrowing.
zrj [Wed, 2 May 2018 13:50:54 +0000 (16:50 +0300)]
gcc80: Mark few sources as special for narrowing.

While there, add -Wpragmas suppression for gcc47.

10 days agogcc80: Activate workaround for libgcc_pic.a.
zrj [Wed, 2 May 2018 13:43:22 +0000 (16:43 +0300)]
gcc80: Activate workaround for libgcc_pic.a.

Port 082b455eab27fdd982397abd20137b57c063d594 from gcc50.

10 days agogcc80: Hook into the buildworld as optional compiler.
zrj [Wed, 2 May 2018 13:42:24 +0000 (16:42 +0300)]
gcc80: Hook into the buildworld as optional compiler.

This alternative compiler can be activated by WORLD_ALTCOMPILER variable.
It will not be built by default.

10 days agogcc80: Add pregenerated manpages.
zrj [Wed, 2 May 2018 13:40:58 +0000 (16:40 +0300)]
gcc80: Add pregenerated manpages.

10 days agogcc80: Add pregenerated headers.
zrj [Wed, 2 May 2018 13:36:10 +0000 (16:36 +0300)]
gcc80: Add pregenerated headers.

10 days agogcc80: Bring in makefiles but leave them unhooked.
zrj [Wed, 2 May 2018 13:35:59 +0000 (16:35 +0300)]
gcc80: Bring in makefiles but leave them unhooked.

Makefile infrastructure was reused from gcc50 one writen by John Marino.

10 days agogcc80: Handle TZ specific "%+" format in strftime.
zrj [Wed, 2 May 2018 13:34:50 +0000 (16:34 +0300)]
gcc80: Handle TZ specific "%+" format in strftime.

After removal of %b and %r formats from kernel,
only one extra format remains.

Requested-by: swildner
10 days agogcc80: Remove throw() from protos in libstdc++ headers.
zrj [Wed, 2 May 2018 13:32:23 +0000 (16:32 +0300)]
gcc80: Remove throw() from protos in libstdc++ headers.

The throw() as dynamic exception specificators was deprecated in c++11
and removed in c++17 (empty was made as an alias to noexcept(true)).

Our libc headers does not have the __attribute__(__nothrow__) markups.
To make libstdc++ fully usable for clangs on DragonFly it makes sense
to just remove the throw() additions in c++ language binding headers.
Previously in gcc50 we were excluding them just for __clang__ case as in:
838772be3c028f0cfd9fae5da181858e4199863a

10 days agogcc80: Include <stdlib.h> for alloca() prototype.
zrj [Wed, 2 May 2018 13:19:51 +0000 (16:19 +0300)]
gcc80: Include <stdlib.h> for alloca() prototype.

10 days agogcc80: Add alternative variant of pthread presence checking.
zrj [Wed, 2 May 2018 13:18:32 +0000 (16:18 +0300)]
gcc80: Add alternative variant of pthread presence checking.

Port the 5f76495ba37ea12fb60cf57228cc78b83d889fb from gcc50.

10 days agogcc80: Adjust search paths for base compiler layout.
zrj [Wed, 2 May 2018 13:17:46 +0000 (16:17 +0300)]
gcc80: Adjust search paths for base compiler layout.

All tools are located in a common /usr/libexec/gcc80/ directory.

10 days agogcc80: Adjust default dynamic linker search location.
zrj [Wed, 2 May 2018 13:14:32 +0000 (16:14 +0300)]
gcc80: Adjust default dynamic linker search location.

Needed for split root setups.

10 days agogcc80: Document changes in contrib sources.
zrj [Wed, 2 May 2018 13:13:52 +0000 (16:13 +0300)]
gcc80: Document changes in contrib sources.

10 days agoAdd READMEs for new vendor/GCC80 branch.
zrj [Wed, 2 May 2018 13:08:23 +0000 (16:08 +0300)]
Add READMEs for new vendor/GCC80 branch.

Next planned major gcc version update is gcc-11.0 in next three years.
Roadmap: gcc34 -> gcc41 -> gcc44 -> gcc47 -> gcc50 -> gcc80 [-> gcc11]

10 days agox86_64/lapic: Use function pointer for EOI.
Sepherosa Ziehau [Mon, 14 May 2018 14:35:04 +0000 (22:35 +0800)]
x86_64/lapic: Use function pointer for EOI.

This helps upcoming X2APIC support and virtualization EOI optmization,
e.g. Hyper-V can be configured to do auto-EOI.

Discussed-with: Imre Vadasz

11 days agolibc/termios: #undef TTYDEFCHARS after including <termios.h>.
Sascha Wildner [Mon, 14 May 2018 09:36:05 +0000 (11:36 +0200)]
libc/termios: #undef TTYDEFCHARS after including <termios.h>.

11 days agokernel: Include <sys/ttydefaults.h> where appropriate.
Sascha Wildner [Mon, 14 May 2018 09:35:08 +0000 (11:35 +0200)]
kernel: Include <sys/ttydefaults.h> where appropriate.

This is in preparation for moving <sys/termios.h> to <termios.h>.

11 days agohammer2(8)/svc(8): Include <sys/ttycom.h> for ioctls.
Sascha Wildner [Mon, 14 May 2018 07:04:37 +0000 (09:04 +0200)]
hammer2(8)/svc(8): Include <sys/ttycom.h> for ioctls.

11 days agoMerge remote-tracking branch 'origin/vendor/GCC80'
zrj [Mon, 14 May 2018 04:36:02 +0000 (07:36 +0300)]
Merge remote-tracking branch 'origin/vendor/GCC80'

12 days agoipfw3: Fix kernel building without DEBUG in the config as well.
Sascha Wildner [Sun, 13 May 2018 09:25:54 +0000 (11:25 +0200)]
ipfw3: Fix kernel building without DEBUG in the config as well.

12 days agoFix LINT64 for the recent ipfw3 changes.
Sascha Wildner [Sun, 13 May 2018 08:08:02 +0000 (10:08 +0200)]
Fix LINT64 for the recent ipfw3 changes.

Reported-by: ftigeot
12 days agokernel: Remove vm_zeroidle.c
François Tigeot [Sun, 13 May 2018 07:41:31 +0000 (09:41 +0200)]
kernel: Remove vm_zeroidle.c

Background page zeroing doesn't bring any performance benefit
on modern hardware.

12 days agodrm/linux: Add cond_resched()
François Tigeot [Sun, 13 May 2018 07:13:59 +0000 (09:13 +0200)]
drm/linux: Add cond_resched()

12 days agokernel - pack struct fid
Matthew Dillon [Sat, 12 May 2018 03:50:07 +0000 (20:50 -0700)]
kernel - pack struct fid

* Use __packed for struct fid for correctness.  Does not change generated
  code.

12 days agotmpfs - Fix tmpfs_fid, fix NFS exports
Matthew Dillon [Sat, 12 May 2018 03:48:39 +0000 (20:48 -0700)]
tmpfs - Fix tmpfs_fid, fix NFS exports

* Fix the tmpfs_fid structure, the 64-bit elements made it incompatible
  with the system fid mapping.

  This fixes NFS exports of a tmpfs filesystem.

* Fix tmpfs_fhtovp, the inode number can exceed tmp->tm_nodes_max,
  do not error-out in that case.

12 days agoipfw3_nat: highspeed lockless in-kernel NAT
Bill Yuan [Sat, 12 May 2018 15:26:07 +0000 (15:26 +0000)]
ipfw3_nat: highspeed lockless in-kernel NAT

RB-Tree to stored the state for the outgoing packets, and multidimentional
array of pointers to keep the state for the incoming packets.

2 weeks agomtree(8): Fix crc() prototype.
Sascha Wildner [Fri, 11 May 2018 10:06:50 +0000 (12:06 +0200)]
mtree(8): Fix crc() prototype.

It is taken from usr.bin/cksum/crc.c. This fixes a -Wlto-type-mismatch
warning reported by zrj. Similar to the fix for ckdist(1) as pushed in
e69bb3d9c4c6d6073c9c9c4a54753458fae55c7e.

2 weeks agorpc.yppasswdd(8): Fix ok_shell() prototype.
Sascha Wildner [Fri, 11 May 2018 09:46:03 +0000 (11:46 +0200)]
rpc.yppasswdd(8): Fix ok_shell() prototype.

It is taken from usr.bin/chpass/util.c. This fixes a -Wlto-type-mismatch
warning reported by zrj.

2 weeks agotcp_wrappers: Remove mystdarg.h and simplify code.
Sascha Wildner [Thu, 10 May 2018 17:51:34 +0000 (19:51 +0200)]
tcp_wrappers: Remove mystdarg.h and simplify code.

This fixes an -Wlto-type-mismatch warning (reported by zrj) because
syslog()'s prototype was wrongly setup (using VARARGS but it has to
take 2 arguments).

2 weeks agomount{,_ufs}(8): Remove unnecessary code to prevent warnings.
Sascha Wildner [Thu, 10 May 2018 07:21:13 +0000 (09:21 +0200)]
mount{,_ufs}(8): Remove unnecessary code to prevent warnings.

2 weeks agovkernel - Adjust to fix buildkernel
Matthew Dillon [Wed, 9 May 2018 23:51:44 +0000 (16:51 -0700)]
vkernel - Adjust to fix buildkernel

* Adjust to fix buildkernel

2 weeks agockdist(1): Sync with FreeBSD.
Sascha Wildner [Tue, 8 May 2018 19:22:18 +0000 (21:22 +0200)]
ckdist(1): Sync with FreeBSD.

Not much to see, but it allows us to raise WARNS to 6, and the crc()
prototype adjustment part also fixes a -Wlto-type-mismatch warning
that was..

Reported-by: zrj
2 weeks agoImport GCC-8 to a new vendor branch vendor/GCC80
zrj [Wed, 2 May 2018 13:07:02 +0000 (16:07 +0300)]
Import GCC-8 to a new vendor branch

2 weeks agokernel - Refactor copyin, copyout
Matthew Dillon [Tue, 8 May 2018 16:33:19 +0000 (09:33 -0700)]
kernel - Refactor copyin, copyout

* Conditionalize movsq/movsb sequences to improve performance.

2 weeks agokernel - Rearrange struct vm_zone slightly
Matthew Dillon [Sun, 6 May 2018 05:47:07 +0000 (22:47 -0700)]
kernel - Rearrange struct vm_zone slightly

* Rearrange struct vm_zone to group cache lines together a bit better.

2 weeks agokernel - Refactor bcmp, bcopy, bzero, memset
Matthew Dillon [Sun, 6 May 2018 04:52:37 +0000 (21:52 -0700)]
kernel - Refactor bcmp, bcopy, bzero, memset

* For now continue to use stosq/stosb, movsq/movsb, cmpsq/cmpsb sequences
  which are well optimized on AMD and Intel.  Do not just use the '*b'
  string op.  While this is optimized on Intel it is not optimized on
  AMD.

* Note that two string ops in a row result in a serious pessimization.
  To fix this, for now, conditionalize the movsb, stosb, or cmpsb op so
  it is only executed when the remaining count is non-zero.  That is,
  assume nominal 8-byte alignment.

* Refactor pagezero() to use a movq/addq/jne sequence.  This is
  significantly faster than movsq on AMD and only just very slightly
  slower than movsq on Intel.

* Also use the above adjusted kernel code in libc for these functions,
  with minor modifications.  Since we are copying the code wholesale,
  replace the copyright for the related files in libc.

* Refactor libc's memset() to replicate the data to all 64 bits code and
  then use code similar to bzero().

Reported-by: mjg_ (info on pessimizations)
2 weeks agokernel - Optimize syscall path, remove old unused compat code
Matthew Dillon [Fri, 4 May 2018 17:48:29 +0000 (10:48 -0700)]
kernel - Optimize syscall path, remove old unused compat code

* Use the built-in memcpy with a constant length for the register arg
  copy instead of calling bcopy().  This saves us 25ns.

* Remove several system call compatibility support features that are
  no longer used (as we no longer have a linux compat module).  We
  remove sv_mask and sv_prepsyscall.  Saves 1ns (woo woo!).

* Do some minor rearrangement of code to remove additional unnecessary
  conditionals.

2 weeks agokernel - Adjust pv caching a little
Matthew Dillon [Fri, 4 May 2018 04:58:40 +0000 (21:58 -0700)]
kernel - Adjust pv caching a little

* Rearrange pv_cache() usage to remove a conditional.

* Use atomic_fcmpset_*() to improve performance a little.

2 weeks agokernel - Flesh out Spectre mitigation support
Matthew Dillon [Tue, 1 May 2018 03:50:13 +0000 (20:50 -0700)]
kernel - Flesh out Spectre mitigation support

* Add handling for all modes for AMD CPUs, including support for
  IBRS_AUTO and STIBP_AUTO (always-on) bits which will be added
  to future cpus.

* Add STIBP handling to Intel CPUs.  I can't find definitions for
  AUTO (always-on) modes for Intel, so those are still not supported
  (no current CPU has AUTO support yet anyway).

* Current DragonFlyBSD defaults: Will enable IBRS_AUTO and STIBP_AUTO
  (always on) support by default if the cpu has it.  Will NOT enable IBRS
  or STIBP (non-auto) toggling by default.  Will not enable IBPB by default.

  IBPB is currently not enabled by default.  The overhead is an enormous
  ~2uS.  We will follow Linux in this regard.

* Change the machdep.spectre_mitigation sysctl to take a string of
  features to enable.  Change machdep.spectre_support to display a
  string of features supported.  Possible features are:

  IBRS          Indirect Branch Restricted Speculation (U->K and K->U)
  STIBP         Single Thread Indirect Branch Prediction (U->K and K->U)
  IBPB          Branch Prediction Barrier (U->K)
  IBRS_AUTO     IBRS always-on (set once and forget)
  STIBP_AUTO    STIBP always-on (set once and forget)

  The machdep.spectre_support sysctl tells you whats available.

* Refactor tr_pcb_gflags into tr_pcb_spec_ctrl[2] to make it easier
  for the assembly code to program the SPEC_CTRL MSR.

* Note that some of the above bits will never be supported by current
  hardware and exist to allow future hardware to support these features
  in a less expensive manner.

* Also note that for Meltdown, AMD is immune and the meltdown mitigation
  will not be enabled.  Intel is vulnerable and the mitigation will be
  enabled by default.  See sysctl machdep.meltdown_mitigation.

2 weeks agokernel - Fix CVE-2018-8897, debug register issue
Matthew Dillon [Tue, 1 May 2018 03:47:20 +0000 (20:47 -0700)]
kernel - Fix CVE-2018-8897, debug register issue

* #DB can be delayed in a way that causes it to occur on the first
  instruction of the int $3 or syscall handlers.  These handlers must
  be able to detect and handle the condition.  This is a historical
  artifact of cpu operation that has existed for a very long time on
  both AMD and Intel CPUs.

* Fix by giving #DB its own trampoline stack and a way to load a
  deterministic %gs and %cr3 independent of the normal CS check.
  This is CVE-2018-8897.

* Also fix the NMI trampoline while I'm here.

* Also fix an old issue with debug register trace traps which can
  occur when the kernel is accessing the user's address space.
  This fix was lost years ago, now recovered.

Credits: Nick Peterson of Everdox Tech, LLC (original reporter)
Credits: Thanks to Microsoft for coordinating the OS vendor response

2 weeks agoRaise WARNS to 1 in gnu/usr.bin/cvs.
Sascha Wildner [Tue, 8 May 2018 09:22:50 +0000 (11:22 +0200)]
Raise WARNS to 1 in gnu/usr.bin/cvs.