dragonfly.git
4 hours agokernel/identcpu: Add string for MONITORX/MWAITX support to AMD Features2. master
Sascha Wildner [Mon, 27 Mar 2017 17:50:42 +0000 (19:50 +0200)]
kernel/identcpu: Add string for MONITORX/MWAITX support to AMD Features2.

Taken-from: FreeBSD

12 hours agodrm: Enable commented-out vga_switcheroo code
François Tigeot [Mon, 27 Mar 2017 09:41:33 +0000 (11:41 +0200)]
drm: Enable commented-out vga_switcheroo code

With-input-from: peeter0007 and ivadasz

15 hours agosound/hda: Sync device ID table with FreeBSD
Sepherosa Ziehau [Mon, 27 Mar 2017 07:17:22 +0000 (15:17 +0800)]
sound/hda: Sync device ID table with FreeBSD

Obtained-from: FreeBSD

15 hours agokernel - Add a BIOS quirks for AMD
Matthew Dillon [Mon, 27 Mar 2017 06:40:56 +0000 (23:40 -0700)]
kernel - Add a BIOS quirks for AMD

* BIOS may fail to set InitApicIdCpuIdLo.  Set it if no VMM capability.

* BIOS may configure Family 10h processors to convert WC+ to CD,
  fixup if the BIOS did this.

Taken-From: FreeBSD

15 hours agokernel - Add GD_IRESERVED access to assembly
Matthew Dillon [Mon, 27 Mar 2017 06:40:20 +0000 (23:40 -0700)]
kernel - Add GD_IRESERVED access to assembly

* Useful for debugging.  No use-cases committed.

15 hours agokernel - Spread IPIs out to more priority levels
Matthew Dillon [Mon, 27 Mar 2017 06:35:55 +0000 (23:35 -0700)]
kernel - Spread IPIs out to more priority levels

* Due to the brandamaged way the LAPIC queues received IPIs, each
  priority level (the top 4 bits of the 8 bit vector) has a 2-entry
  FIFO.  Bring in comments from FreeBSD on how this works.

* Change our IPI vectors which previously used 2 priority levels to now
  use 3 priority levels.  Each source is generally limited by an atomic
  op to avoid multi-queueing and hopefully that means the above LAPIC hw
  queue will never refuse to accept an IPI.

  IPIQ and TIMER use group 1

  INVLTLB (and INVLPG) uses group 2

  SNIFF, CPUSTOP, and SPURIOUSINT use group 3

* Reduces the number of vectors available per cpu by 16, but shouldn't
  present that big a problem.

15 hours agokernel - Enhance the sniff code, refactor interrupt disablement for IPIs
Matthew Dillon [Mon, 27 Mar 2017 06:24:09 +0000 (23:24 -0700)]
kernel - Enhance the sniff code, refactor interrupt disablement for IPIs

* Add kern.sniff_enable, default to 1.  Allows the sysop to disable the
  feature if desired.

* Add kern.sniff_target, allows sniff IPIs to be targetted to all cpus
  (-1), or to a particular cpu (0...N).  This feature allows the sysop
  to test IPI delivery to particular CPUs (typically monitoring with
  systat -pv 0.1) to determine that delivery is working properly.

* Bring in some additional AMD-specific setup from FreeBSD, beginnings
  of support for the APIC Extended space.  For now just make sure the
  extended entries are masked.

* Change interrupt disablement expectations.  The caller of apic_ipi(),
  selected_apic_ipi(), and related macros is now required to hard-disable
  interrupts rather than these functions doing so.  This allows the caller
  to run certain operational sequences atomically.

* Use the TSC to detect IPI send stalls instead of a hard-coded loop count.

* Also set the APIC_LEVEL_ASSERT bit when issuing a directed IPI, though
  the spec says this is unnecessary.  Do it anyway.

* Remove unnecessary critical section in selected_apic_ipi().  We are in
  a hard-disablement and in particular we do not want to accidently trigger
  a splz() due to the crit_exit() while in the hard-disablement.

* Enhance the IPI stall detection and recovery code.  Provide more
  inforamtion.  Also enable the LOOPMASK_IN debugging tracker by default.

* Add a testing feature to machdep.all_but_self_ipi_enable.  By setting
  this to 2, we force the smp_invltlb() to always use the ALL_BUT_SELF IPI.
  For testing only.

15 hours agokernel - Use the TSC as the cpu clock on AMD Ryzen or later
Matthew Dillon [Mon, 27 Mar 2017 06:15:35 +0000 (23:15 -0700)]
kernel - Use the TSC as the cpu clock on AMD Ryzen or later

* The TSC is usable as the cpu clock on AMD Ryzen or later, adjust
  the code for this.

* Recode hw.tsc_cputimer_force to still run the TSC test, but then
  force use of the TSC for the cpu clock whether the test succeeds
  or fails.

Suggested-by: Sephe
15 hours agokernel - Enhance machdep.cpu_idle_hlt
Matthew Dillon [Mon, 27 Mar 2017 06:08:30 +0000 (23:08 -0700)]
kernel - Enhance machdep.cpu_idle_hlt

* Enhance machdep.cpu_idle_hlt.  It was not operating as advertised for
  settings 0 or 3+.  Add mode 5.

  0 - Now spins as documented (wasn't, before)
  1 - Uses MONITOR/MWAIT if supported, HLT otherwise
  2 - Uses mode (1) up to a point, then uses mode (3)
  3 - Always use the ACPI halt code.
  4 - Always use HLT (do not use MONITOR/MWAIT even if supported)
  5 - Always spin

* Recode the default setting for AMD cpus (but no functional changes).
  Default setting is 3 for AMD.

15 hours agokernel - Enhanced reporting by process killer
Matthew Dillon [Mon, 27 Mar 2017 06:04:34 +0000 (23:04 -0700)]
kernel - Enhanced reporting by process killer

* Issue a kprintf() when trying to kill a process so we know when
  the attempt is made.  The 'killed' message we already have only
  prints when the attempt succeeds.

* Additional metrics when reporting 'low on memory+swap' now available
  with bootverbose.

15 hours agokernel - Remove if_sl, if_ppp, and if_faith from the kernel build
Matthew Dillon [Fri, 17 Mar 2017 21:10:50 +0000 (14:10 -0700)]
kernel - Remove if_sl, if_ppp, and if_faith from the kernel build

* Remove if_sl, if_ppp, and if_faith from the kernel build.  These
  interfaces may be loaded as modules.

* Add missing MODULE_VERSION for if_sl and if_ppp.  This allows these
  modules to be specified in /boot/loader.conf without crashing the
  kernel if the kernel already happens to build them in, for forwards
  and backwards run-time compatibility.

15 hours agohammer - HAMMER Version 7
Matthew Dillon [Fri, 17 Mar 2017 21:06:24 +0000 (14:06 -0700)]
hammer - HAMMER Version 7

* Add support for version 7 which changes the CRC mechanic from the
  old slow CRC code to the faster ISCSI CRC code.  We don't use the CRC
  instruction yet but ths base ISCSI CRC from FreeBSD is 6x faster than
  the CRC code we were using before.

* Change newfs_hammer default to version 7 (for master).

15 hours agohammer2 - Fix cluster synchronization bug (2+ nodes)
Matthew Dillon [Fri, 17 Mar 2017 21:04:59 +0000 (14:04 -0700)]
hammer2 - Fix cluster synchronization bug (2+ nodes)

* Fix a bug where hammer2_cluster_check() can end up in an infinite
  loop.

* Look for pfs_names[] in all PFSs associated with a cluster.

* Add missing xop retirement in pfs-delete.

* Skip the directory empty check in pfs-delete.

* Preliminary code to deallocate an element of a live PFS

15 hours agohammer2 - Stabilization for cluster code, features
Matthew Dillon [Fri, 10 Mar 2017 17:22:17 +0000 (09:22 -0800)]
hammer2 - Stabilization for cluster code, features

* Start working on stabilizing cluster operations when two or more
  nodes are present for a PFS.

* Fix a race in the strategy write code when writing out a buffer.  The
  buffer can be retired by the frontend before all cluster entities have
  a chance to use it.  This is what we actualy want to have happen (we
  don't want a dead or slow SLAVE to hold-up front-end operations, for
  example).

  Fix this by verifying that the bp is good and, at least for now, copying
  its data to a temporary buffer.

  Note that while it is expected that SLAVEs can get out of sync here,
  the synchronization thread is intended to eventually get everything
  synched up.

  (we may address this later for SLAVEs that are in good working later).

* Refactor the XOP API a bit to make access to the temporary buffer easier.

* We no longer need to pass (bp) into the strategy write support routines.
  Pass the data buffer instead.

* When reconstituting a hammer2 support thread, make sure any flags
  left-over from the previous use have been cleared.  Fixes an issue
  where support threads go missing after repeated unmount/mount
  operations.

* Add the feature where a hammer2 mount can simply specify @LABEL.  If
  LABEL is already available, the mount code will find and mount it.
  This feature will eventually be used to make it easier to access
  networked H2 PFSs.

  Note that the hammer2 user must still issue base mounts (typically
  /dev/blah@LOCAL) for hammer2 to recognize hammer2 partitions.  Ultimately
  I may auto-scan available drives but for now I am not.

* Fix missing CFLAGS->KCFLAGS conversion in Makefile.

* Fix administrative thread signaling interactions, tsleep and wakeup
  addresses were not matched up properly.

15 hours agohammer2 - Have mount assume that @LABEL refers to a hammer2 vfs
Matthew Dillon [Fri, 10 Mar 2017 17:19:50 +0000 (09:19 -0800)]
hammer2 - Have mount assume that @LABEL refers to a hammer2 vfs

* hammer2 will soon allow mount @LABEL <mountpt> for any LABEL that it
  already knows about.  Make the base mount program aware of this and
  do not require the user to specify the vfs type.

15 hours agodebug - separate out crc32.c and icrc32.c
Matthew Dillon [Fri, 10 Mar 2017 17:18:44 +0000 (09:18 -0800)]
debug - separate out crc32.c and icrc32.c

* Separate the code out into two test programs, one for the original crc
  code and one using the iscsi crc code.

24 hours agoKernel - quick workaround for Ryzen
Matthew Dillon [Sun, 26 Mar 2017 22:27:29 +0000 (15:27 -0700)]
Kernel - quick workaround for Ryzen

* Quick workaround for a Ryzen issue that we can release with.

29 hours agokernel - Stir longer in arc4random
Matthew Dillon [Sun, 26 Mar 2017 17:12:19 +0000 (10:12 -0700)]
kernel - Stir longer in arc4random

* Stir longer in arc4random

Taken-from: FreeBSD
Reported-by: jaykishan mutkawoa
4 days agoif_vtnet - Allocate struct vtnet_tx_header entries from a queue.
Imre Vadász [Mon, 20 Mar 2017 19:16:50 +0000 (20:16 +0100)]
if_vtnet - Allocate struct vtnet_tx_header entries from a queue.

* The existing code was sequentially allocating from an array of
  struct vtnet_tx_header, using an appropriately sized area.
  But this scheme turns out to be a very bad idea when we get out-of-order
  completions in the virtqueue.

* Instead allocate struct vtnet_tx_header entries from an SLIST.

* This should avoid crashes from memory-corruption or use-after-free in
  if_vtnet(9), when running in KVM on Linux, using Linux's vhost-net
  in-kernel virtqueue accelerator.

4 days agodrm/i915: Update to Linux 4.7.10
François Tigeot [Thu, 23 Mar 2017 17:45:12 +0000 (18:45 +0100)]
drm/i915: Update to Linux 4.7.10

* Various bugfixes, including GPU-specific ones on Ironlake and more
  recent hardware.
  Runtime power management and atomic modesetting have been specially
  improved.

* Fix Hardware hangs on Ironlake, Sandybridge, Ivybridge, Skylake and
  Kabylake GPUs

* Fix various display flickering issues, including PSR, Broadwell and
  Display-port specific ones

* Kabylake support is no longer considered experimental

* Color management has been added for Broadwell, Skylake, Kabylake as
  well as Cherryview and Broxton GPUs. The intent is to obtain more
  accurate color representation on various types of panel.

4 days agokernel: Add a port of the Linux 4.8 vga_switcheroo module
François Tigeot [Thu, 23 Mar 2017 09:04:44 +0000 (10:04 +0100)]
kernel: Add a port of the Linux 4.8 vga_switcheroo module

Submitted-by: Peeter Must <karu.pruun@gmail.com>
4 days ago<sys/unistd.h>: Add missing _PC_TIMESTAMP_RESOLUTION.
Sascha Wildner [Thu, 23 Mar 2017 09:18:12 +0000 (10:18 +0100)]
<sys/unistd.h>: Add missing _PC_TIMESTAMP_RESOLUTION.

We don't handle it yet though.

4 days agobuild - Add the 'efisetup' script
Matthew Dillon [Thu, 23 Mar 2017 02:06:57 +0000 (19:06 -0700)]
build - Add the 'efisetup' script

* Add the 'efisetup' script to /usr/sbin.  This script is capable of
  creating a pristine UEFI bootable DragonFlyBSD installation on the
  target drive.  The target drive will be wiped.

  Note that this script does only a basic installation... literally once
  it sets up the partitions it just does an installworld, make distribution,
  and installkernel, and then some minor adjustments to create the initial
  /etc/rc.conf, /etc/fstab, and /boot/loader.conf.

* Requires that you previously did a buildworld and buildkernel
  before running the script.

4 days agokernel - Fix panic in zget() during heavy paging
Matthew Dillon [Thu, 23 Mar 2017 01:43:08 +0000 (18:43 -0700)]
kernel - Fix panic in zget() during heavy paging

* Fix a panic that can occur in zget() when a large number of swap info
  blocks are needed from the swap_zone.

  Fix by reformulation how new items are added to the zone.  This is a
  non-critical code path, but we make it a bit more SMP friendly anyway.

* Use the opportunity to get rid of the VM object ZONE_INTERRUPT uses.
  The two that are left are never destroyed, so there's no need to track
  the pages in an object.

Reported-by: tkusumi
5 days ago<time.h>: Shuffle some prototypes around (no functional change).
Sascha Wildner [Wed, 22 Mar 2017 20:42:31 +0000 (21:42 +0100)]
<time.h>: Shuffle some prototypes around (no functional change).

5 days agoUpdate the pciconf(8) database.
Sascha Wildner [Wed, 22 Mar 2017 19:59:33 +0000 (20:59 +0100)]
Update the pciconf(8) database.

March 16, 2017 snapshot from http://pciids.sourceforge.net/

5 days agobsd-family-tree: Sync with FreeBSD.
Sascha Wildner [Wed, 22 Mar 2017 19:50:10 +0000 (20:50 +0100)]
bsd-family-tree: Sync with FreeBSD.

5 days agoSync zoneinfo database with tzdata2017b from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Wed, 22 Mar 2017 08:18:30 +0000 (09:18 +0100)]
Sync zoneinfo database with tzdata2017b from ftp://ftp.iana.org/tz/releases

Haiti resumed observance of DST in 2017.  (Thanks to Steffen Thorsen.)

6 days agotest - Flesh out randread statistics reporting
Matthew Dillon [Tue, 21 Mar 2017 01:27:34 +0000 (18:27 -0700)]
test - Flesh out randread statistics reporting

* Cleanup the output.  Report the aggregate IOPS, average latency,
  aggregate bandwidth, low and high latencies, and the standard
  deviation for the test on a per-second basis.

* Standard deviation notes:

  68%     Of the samples are within 1 standard deviation, so if the
    reported stddev is 7uS, then 68% of the samples are +/- 7uS
    of the average reported value.

  95.45%    Of the samples are within 2 standard deviations.  +/- 14uS
    in the example.

  99.73%    Of the samples are within 3 standard deviations.  +/- 21uS
    in the example.

8 days agoBring in uefisign(8) example script.
Sascha Wildner [Sun, 19 Mar 2017 20:42:51 +0000 (21:42 +0100)]
Bring in uefisign(8) example script.

It was forgotten in bb7548fd68273597588b57868a739b2d3a8a8d94.

Taken-from: FreeBSD

8 days agoinstaller: Fix the "missing /var/run/sem" issues better.
Sascha Wildner [Sun, 19 Mar 2017 15:34:37 +0000 (16:34 +0100)]
installer: Fix the "missing /var/run/sem" issues better.

* Add -C to the tmpfs mount of /var/run on the USB image. This
  ensures that the USB image itself keeps the ppp/, sem/, and
  wpa_supplicant/ dirs under /var/run.

* Since we do not cpdup /var/run explicitly during installation
  it ends up empty on the installed system. Ensure that it has
  the subdirectories it needs by running mtree on /var.

* It looks like the 1e5a476188185cf1161f4fe3ffc060465562ef0d
  change could be reverted because the issue never was that
  /var/run/sem wasn't existing _after_ make upgrade. The mtree
  in the preceding installworld takes care of it. It doesn't
  hurt either, so just shuffle the commands a bit downwards.

9 days agokernel/mmcsd: Add some dummy values for d_nheads and d_secpertrack.
Sascha Wildner [Sat, 18 Mar 2017 19:51:32 +0000 (20:51 +0100)]
kernel/mmcsd: Add some dummy values for d_nheads and d_secpertrack.

Values taken from nvme(4). newfs_msdos(8) uses these, and the way
we call it from the installer (not specifying them explicitly) broke
installing to an SD card.

Reported-by: Pontus Lundkvist <p@article.se>
9 days agobuild - Validate sshd_config
Matthew Dillon [Fri, 17 Mar 2017 23:59:45 +0000 (16:59 -0700)]
build - Validate sshd_config

* Make sure the default sshd_config contains certain lines
  that we require.  At the moment, this adjustment makes sure
  that the sshd_config file has the correct PasswordAuthentication
  directive.

* Intended to catch snafus when openssh is updated from the vendor.

9 days agosshd - Fix default password authentication (2)
Matthew Dillon [Fri, 17 Mar 2017 22:58:23 +0000 (15:58 -0700)]
sshd - Fix default password authentication (2)

* Oops, last commit had to change it in servconf.c, not readconf.c

9 days agosshd - Fix default password authentication
Matthew Dillon [Fri, 17 Mar 2017 22:47:52 +0000 (15:47 -0700)]
sshd - Fix default password authentication

* The default for PasswordAuthentication somehow got reverted to
  being enabled.

* Disable PasswordAuthentication by default.

* Uncomment PasswordAuthentication in the default sshd_config,
  defaulting to 'no', and always overriding sshd's own defaults.

10 days agokernel/options: EFIRT can go to opt_dontuse.h. No need for opt_efirt.h.
Sascha Wildner [Fri, 17 Mar 2017 21:16:01 +0000 (22:16 +0100)]
kernel/options: EFIRT can go to opt_dontuse.h. No need for opt_efirt.h.

The EFIRT option only enables compilation of whole files.

10 days agodf.1: Fix example for -t. It's null, not nullfs.
Sascha Wildner [Fri, 17 Mar 2017 20:32:57 +0000 (21:32 +0100)]
df.1: Fix example for -t. It's null, not nullfs.

Reported-by: marino
10 days agodrm/linux: Improve vmap/vunmap API, add is_vmalloc_addr()
François Tigeot [Fri, 17 Mar 2017 07:48:29 +0000 (08:48 +0100)]
drm/linux: Improve vmap/vunmap API, add is_vmalloc_addr()

* vmap() and vunmap() only take a single argument

10 days agodrm/linux: Add smp_store_mb()
François Tigeot [Fri, 17 Mar 2017 07:13:38 +0000 (08:13 +0100)]
drm/linux: Add smp_store_mb()

11 days agodrm/linux: Add linux/vga_switcheroo.h
François Tigeot [Thu, 16 Mar 2017 11:32:42 +0000 (12:32 +0100)]
drm/linux: Add linux/vga_switcheroo.h

Submitted-by: Peeter Must <karu.pruun@gmail.com>
11 days agosched_setaffinity.2: Small markup fix.
Sascha Wildner [Thu, 16 Mar 2017 10:37:09 +0000 (11:37 +0100)]
sched_setaffinity.2: Small markup fix.

11 days agoRemove some more duplicate includes in our tree.
Sascha Wildner [Thu, 16 Mar 2017 10:17:36 +0000 (11:17 +0100)]
Remove some more duplicate includes in our tree.

11 days ago<sys/globaldata.h>: Remove duplicate include.
Sascha Wildner [Thu, 16 Mar 2017 09:43:49 +0000 (10:43 +0100)]
<sys/globaldata.h>: Remove duplicate include.

11 days agoUPDATING: Add note for OpenSSH HPN removal
Thomas Nikolajsen [Thu, 16 Mar 2017 06:28:40 +0000 (07:28 +0100)]
UPDATING: Add note for OpenSSH HPN removal

11 days agoCorrect param.h entry for this version.
Justin C. Sherrill [Thu, 16 Mar 2017 01:29:08 +0000 (21:29 -0400)]
Correct param.h entry for this version.

Noticed-by: Thomas Nikolajsen
12 days agodrm/linux: Add linux/hardirq.h
François Tigeot [Wed, 15 Mar 2017 08:36:18 +0000 (09:36 +0100)]
drm/linux: Add linux/hardirq.h

12 days agodrm/linux: Implement hrtimers
François Tigeot [Wed, 15 Mar 2017 07:33:02 +0000 (08:33 +0100)]
drm/linux: Implement hrtimers

This initial implementation is based on callouts and not
highly precise.

It nevertheless works fine with the drm/i915 driver from
Linux 4.7 and will be enough for now.

13 days agokernel: Remove broken DRM_LINUX option
François Tigeot [Tue, 14 Mar 2017 16:23:20 +0000 (17:23 +0100)]
kernel: Remove broken DRM_LINUX option

13 days agodrm/linux: Add READ_ONCE and WRITE_ONCE
François Tigeot [Tue, 14 Mar 2017 09:21:51 +0000 (10:21 +0100)]
drm/linux: Add READ_ONCE and WRITE_ONCE

Obtained-from: FreeBSD

13 days agodrm/linux: Improve linux/workqueue.h
François Tigeot [Tue, 14 Mar 2017 08:18:21 +0000 (09:18 +0100)]
drm/linux: Improve linux/workqueue.h

13 days agodrm/linux: Add u64_to_user_ptr
François Tigeot [Tue, 14 Mar 2017 07:01:06 +0000 (08:01 +0100)]
drm/linux: Add u64_to_user_ptr

2 weeks agodrm/linux: Add asm/shmparam.h
François Tigeot [Mon, 13 Mar 2017 22:01:51 +0000 (23:01 +0100)]
drm/linux: Add asm/shmparam.h

2 weeks agodrm/linux: Add pci_bus_read_config_byte and pci_bus_read_config_word
François Tigeot [Mon, 13 Mar 2017 21:28:05 +0000 (22:28 +0100)]
drm/linux: Add pci_bus_read_config_byte and pci_bus_read_config_word

2 weeks agodrm/linux: Add atomic_andnot()
François Tigeot [Mon, 13 Mar 2017 17:30:17 +0000 (18:30 +0100)]
drm/linux: Add atomic_andnot()

2 weeks agozone.9: Adjust prototypes for some recent changes.
Sascha Wildner [Mon, 13 Mar 2017 11:21:46 +0000 (12:21 +0100)]
zone.9: Adjust prototypes for some recent changes.

2 weeks agodrm/linux: Expand linux/kobject.h scope
François Tigeot [Mon, 13 Mar 2017 08:18:15 +0000 (09:18 +0100)]
drm/linux: Expand linux/kobject.h scope

2 weeks agodrm/linux: Add asm/cpufeatures.h
François Tigeot [Mon, 13 Mar 2017 07:57:47 +0000 (08:57 +0100)]
drm/linux: Add asm/cpufeatures.h

2 weeks agosbin/hammer: Have consistent naming for volume variables
Tomohiro Kusumi [Thu, 9 Mar 2017 19:32:40 +0000 (21:32 +0200)]
sbin/hammer: Have consistent naming for volume variables

Use *volume.
Userspace is mix of *vol and *volume for no reason.
sys/vfs/hammer is always *volume.

2 weeks agosbin/hammer: Have consistent naming for buffer variables
Tomohiro Kusumi [Thu, 9 Mar 2017 19:31:51 +0000 (21:31 +0200)]
sbin/hammer: Have consistent naming for buffer variables

Use *buffer.
Userspace is mix of *buf and *buffer for no reason.
sys/vfs/hammer is always *buffer.

2 weeks agodrm/linux: Add linux/console.h
François Tigeot [Sun, 12 Mar 2017 21:15:16 +0000 (22:15 +0100)]
drm/linux: Add linux/console.h

2 weeks agodrm/linux: Add cacheflushopt()
François Tigeot [Sun, 12 Mar 2017 20:53:26 +0000 (21:53 +0100)]
drm/linux: Add cacheflushopt()

2 weeks agoNumbering changes for master -> 4.9. v4.9.0
Justin C. Sherrill [Sun, 12 Mar 2017 01:43:50 +0000 (20:43 -0500)]
Numbering changes for master -> 4.9.

2 weeks agodrm/linux: fix tasklets
François Tigeot [Thu, 9 Mar 2017 09:20:27 +0000 (10:20 +0100)]
drm/linux: fix tasklets

The set_bit() and clear_bit() macros expect pointers as arguments.

2 weeks agosys/vfs/hammer: Cleanup hammer_modify_node()
Tomohiro Kusumi [Wed, 8 Mar 2017 19:10:12 +0000 (21:10 +0200)]
sys/vfs/hammer: Cleanup hammer_modify_node()

The only purpose of crcptr was to avoid split into multiple lines
(according to dillon@), but we could do with the same two lines..

3 weeks agore: Only limited versions of this chip require explicit padding.
Sepherosa Ziehau [Mon, 27 Feb 2017 18:01:21 +0000 (02:01 +0800)]
re: Only limited versions of this chip require explicit padding.

Certain versions of this chip fail to generate correct UDP checksum
on explicitly padded UDP datagrams.

Reported-and-Tested-by: Daniel Bilik
2 weeks agokernel - Fix cluster_write() inefficiency
Matthew Dillon [Tue, 7 Mar 2017 01:36:48 +0000 (17:36 -0800)]
kernel - Fix cluster_write() inefficiency

* A bug in the cluster code was causing HAMMER to write out 64KB buffers in
  32KB overlapping segments, resulting in data being written to the media
  twice.

* This fix just about doubles HAMMER's sequential write bandwidth.

3 weeks agoAlways use unix line endings
Eitan Adler [Sun, 5 Mar 2017 18:27:43 +0000 (10:27 -0800)]
Always use unix line endings

3 weeks agovkernel: Prevent clang optimizing out the traps.
zrj [Thu, 2 Mar 2017 17:44:23 +0000 (19:44 +0200)]
vkernel: Prevent clang optimizing out the traps.

Turns out clang removes non volatile null-pointers. Prevent that.

3 weeks agowlan: Remove duplicate typedef.
zrj [Thu, 2 Mar 2017 16:14:51 +0000 (18:14 +0200)]
wlan: Remove duplicate typedef.

3 weeks agoUnbreak VKERNEL64 for clang compatibility.
zrj [Thu, 2 Mar 2017 15:46:09 +0000 (17:46 +0200)]
Unbreak VKERNEL64 for clang compatibility.

3 weeks agolibc/getnameinfo: Whitespace fix to my last commit.
Sascha Wildner [Sat, 4 Mar 2017 12:08:14 +0000 (13:08 +0100)]
libc/getnameinfo: Whitespace fix to my last commit.

3 weeks agolibc/getnameinfo: Clean up the comments in getnameinfo_link() a bit.
Sascha Wildner [Sat, 4 Mar 2017 12:00:43 +0000 (13:00 +0100)]
libc/getnameinfo: Clean up the comments in getnameinfo_link() a bit.

3 weeks agoSync ACPICA with Intel's version 20170303.
Sascha Wildner [Fri, 3 Mar 2017 21:15:04 +0000 (22:15 +0100)]
Sync ACPICA with Intel's version 20170303.

Nothing big, really:

* The licensing information at the start of each source code module has
  been updated. In addition to the Intel license, the dual GPLv2/BSD
  license has been added for completeness. Now, a single version of the
  source code should be suitable for all ACPICA customers. This is the
  major change for this release since it affects all source code modules.

* Fixed two issues with the common asltypes.h header that could cause
  problems in some environments (Kim Jung-uk).

* Disassembler: fixed a regression introduced in 20170224. A fix for a
  memory leak related to resource descriptor tags (names) could fault
  when the disassembler was generated with 64-bit compilers.

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

3 weeks agoRemove old timezone Pacific/Johnston via 'make upgrade'.
Sascha Wildner [Fri, 3 Mar 2017 15:41:37 +0000 (16:41 +0100)]
Remove old timezone Pacific/Johnston via 'make upgrade'.

3 weeks agoSync zoneinfo database with tzdata2017a from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Thu, 2 Mar 2017 13:43:55 +0000 (14:43 +0100)]
Sync zoneinfo database with tzdata2017a from ftp://ftp.iana.org/tz/releases

* Mongolia no longer observes DST.  (Thanks to Ganbold Tsagaankhuu.)

* Chile's Region of Magallanes moves from -04/-03 to -03 year-round.
    Its clocks diverge from America/Santiago starting 2017-05-13 at
    23:00, hiving off a new zone America/Punta_Arenas.  Although the
    Chilean government says this change expires in May 2019, for now
    assume it's permanent.  (Thanks to Juan Correa and Deborah
    Goldsmith.)  This also affects Antarctica/Palmer.

* Fix many entries for historical time stamps for Europe/Madrid
    before 1979, to agree with tables compiled by Pere Planesas of the
    National Astronomical Observatory of Spain.  As a side effect,
    this changes some time stamps for Africa/Ceuta before 1929, which
    are probably guesswork anyway.  (Thanks to Steve Allen and
    Pierpaolo Bernardi for the heads-ups, and to Michael Deckers for
    correcting the 1901 transition.)

* Ecuador observed DST from 1992-11-28 to 1993-02-05.
    (Thanks to Alois Treindl.)

* Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21.
    (Thanks to Stepan Golosunov.)

* Switch to numeric time zone abbreviations for South America, as
    part of the ongoing project of removing invented abbreviations.
    This avoids the need to invent an abbreviation for the new Chilean
    zone.  Similarly, switch from invented to numeric time zone
    abbreviations for a number of other zones.

* For Alaska time from 1900 through 1967, instead of "CAT" use the
    abbreviation "AST", the abbreviation commonly used at the time
    (Atlantic Standard Time had not been standardized yet).  Use "AWT"
    and "APT" instead of the invented abbreviations "CAWT" and "CAPT".

* Use "CST" and "CDT" instead of invented abbreviations for Macau
    before 1999 and Taiwan before 1938, and use "JST" instead of the
    invented abbreviation "JCST" for Japan and Korea before 1938.

* Move the Pacific/Johnston link from 'australasia' to 'backward',
    since Johnston is now uninhabited.

* africa (Africa/Monrovia): The 1972 transition was on January 7,
    not May 1.  (Shanks was wrong again! and Howse was right.)

* The 'Theory' file now better documents choice of historical time
    zone abbreviations.  (Problems reported by Michael Deckers.)

3 weeks agodrm/i915: Fix compilation with clang
François Tigeot [Thu, 2 Mar 2017 08:33:57 +0000 (09:33 +0100)]
drm/i915: Fix compilation with clang

* Add back a lost pointer initialization line

* With this change, a clang-built drm/i915 module now works as expected

Submitted-by: zrj
3 weeks agorc.d - Add option to load kernel modules from rc.conf(5)
Johannes Hofmann [Thu, 2 Mar 2017 06:46:41 +0000 (07:46 +0100)]
rc.d - Add option to load kernel modules from rc.conf(5)

Due to memory limitations in the early boot phase it is not
advisable to load kernel modules that are not strictly necessary
to mount the root file system via loader.conf(5).
Therefore a new rc script "modules" is added that allows loading of
kernel modules from rc.conf(5).

3 weeks agoxargs.1: Add some words about -r (taken from FreeBSD).
Sascha Wildner [Wed, 1 Mar 2017 21:05:27 +0000 (22:05 +0100)]
xargs.1: Add some words about -r (taken from FreeBSD).

3 weeks agorc.conf.5: Adjust the memimg documentation a bit.
Sascha Wildner [Wed, 1 Mar 2017 20:06:48 +0000 (21:06 +0100)]
rc.conf.5: Adjust the memimg documentation a bit.

3 weeks agoClean up the namespace in a number of standard headers.
Sascha Wildner [Wed, 1 Mar 2017 19:36:39 +0000 (20:36 +0100)]
Clean up the namespace in a number of standard headers.

* In most cases, instead of the full load of <sys/types.h>,
  include <machine/stdint.h> which defines the __-types that
  <monetary.h>, <pwd.h>, <search.h>, <strings.h> and <wordexp.h>
  only need.

* Additionally, extend the visibility of the size_t definition
  and adjust WRDE_NOSYS's visibility because it was only in the
  standard up to Issue 6.

* In <time.h>, include <sys/stdint.h> to get at __pid_t too.

* Likewise, include <sys/stdint.h> in <sys/wait.h> and provide
  a definition of pid_t as required.

3 weeks agoAdjust whitespace in a couple of standard headers (no functional change).
Sascha Wildner [Wed, 1 Mar 2017 19:24:01 +0000 (20:24 +0100)]
Adjust whitespace in a couple of standard headers (no functional change).

In preparation for another round of namespace cleanup.

3 weeks agorc.conf.5 - Adjust manpage to the last changes.
Antonio Huete Jimenez [Wed, 1 Mar 2017 19:11:15 +0000 (20:11 +0100)]
rc.conf.5 - Adjust manpage to the last changes.

3 weeks agoxargs - Add dummy -r option
Matthew Dillon [Wed, 1 Mar 2017 18:01:14 +0000 (10:01 -0800)]
xargs - Add dummy -r option

* Add the -r option for GNU compatbility.  This option is the short form
  for the --no-run-if-empty GNU option, which is our default behavior, so
  we do nothing with it other than allow it.

Taken-from: FreeBSD.

3 weeks agokernel: Remove unused DIRECTIO option (see 12b70cea73eef6a67).
Sascha Wildner [Wed, 1 Mar 2017 12:53:16 +0000 (13:53 +0100)]
kernel: Remove unused DIRECTIO option (see 12b70cea73eef6a67).

3 weeks agorc.d - Add an option to specify memimg file for vkernels
Antonio Huete Jimenez [Wed, 1 Mar 2017 01:04:30 +0000 (02:04 +0100)]
rc.d - Add an option to specify memimg file for vkernels

- This option defaults to /var/vkernel/memimg.xxxxxx when not specified
  and it tries to provide a memimg file automatically even when non-privileged
  users run vkernels.

- The default directory for memimg files (/var/vkernel) is created if it doesn't
  exist and set to 1777 mode.

3 weeks agorc.d - Allow vkernel to run as non-root
Antonio Huete Jimenez [Fri, 24 Feb 2017 20:52:39 +0000 (21:52 +0100)]
rc.d - Allow vkernel to run as non-root

3 weeks agorc.d - Follow up previous commit
Antonio Huete Jimenez [Fri, 24 Feb 2017 15:42:41 +0000 (16:42 +0100)]
rc.d - Follow up previous commit

- unset all variables that could be potentially reused
- Use lowercase in a warn message

4 weeks agoinstaller: Turn off soft updates for /boot in the UFS install.
Sascha Wildner [Sun, 26 Feb 2017 03:51:04 +0000 (04:51 +0100)]
installer: Turn off soft updates for /boot in the UFS install.

This was missed when we gave the UFS install a separate /boot partition.

Reported-by: ozmage
4 weeks agoSync ACPICA with Intel's version 20170224.
Sascha Wildner [Sun, 26 Feb 2017 01:28:55 +0000 (02:28 +0100)]
Sync ACPICA with Intel's version 20170224.

* Fixed two issues with the control method return value auto-repair
  feature in the interpreter.

* Fixed an AML interpreter mutex issue during the single stepping
  of control methods in the debugger.

* New iasl(8) -ca option to convert ASL to ASL+.

* Various other fixes in iasl(8).

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

4 weeks agovmbus.4: It can be compiled into the kernel as well.
Sascha Wildner [Fri, 24 Feb 2017 15:36:57 +0000 (16:36 +0100)]
vmbus.4: It can be compiled into the kernel as well.

4 weeks agorc.d - Make sure rootimgs are empty for every vkernel
Antonio Huete Jimenez [Fri, 24 Feb 2017 13:38:29 +0000 (14:38 +0100)]
rc.d - Make sure rootimgs are empty for every vkernel

4 weeks agore: Fix typo for disabling txcsum.
Sepherosa Ziehau [Fri, 24 Feb 2017 01:35:49 +0000 (09:35 +0800)]
re: Fix typo for disabling txcsum.

Submitted-by: Daniel Bilik
4 weeks ago<sys/procctl.h>: Include <sys/types.h> explicitly for userland.
Sascha Wildner [Thu, 23 Feb 2017 22:18:59 +0000 (23:18 +0100)]
<sys/procctl.h>: Include <sys/types.h> explicitly for userland.

This prepares for more namespace cleanup in standard headers.

4 weeks agoClean up a bit after the recent ahc/ahd/aic removal.
Sascha Wildner [Wed, 22 Feb 2017 20:10:00 +0000 (21:10 +0100)]
Clean up a bit after the recent ahc/ahd/aic removal.

4 weeks agomrsas - release devq before freeing the sim.
Matthew Dillon [Wed, 22 Feb 2017 18:49:57 +0000 (10:49 -0800)]
mrsas - release devq before freeing the sim.

* Release the devq before freeing the sim.

4 weeks agokernel - Add missing bus lock to CAM
Matthew Dillon [Wed, 22 Feb 2017 18:48:48 +0000 (10:48 -0800)]
kernel - Add missing bus lock to CAM

* cam_periph_alloc() was missing a bus lock / unlock sequence around
  a list operation.

4 weeks agokernel - Improve exec performance
Matthew Dillon [Wed, 22 Feb 2017 18:43:00 +0000 (10:43 -0800)]
kernel - Improve exec performance

* Improves non-shared 32-way-concurrent exec performance for a small
  static binary on the xeon from 92KE/s (92000 execs/sec) to 136KE/s.

* Improves single-threaded test performance from ~4.5KE/s to ~6.5KE/s.
  And for reasons I don't entirely understand, sometimes up to ~8KE/s.

* Several changes here, but the only one that matters for the test is
  that the pv_placemarker_wakeup() code removes a spin_lock/spin_unlock
  pair on the pmap.  I adjusted the code so the pmap spinlock is not
  required for placemarker wakeup operations.

  What I think might have happened here is that this removal also got
  rid of a spin-lock shared/exclusive ping-pong.  Still, the huge
  improvement in performance was not expected.  Even with the removal
  there is still an atomic_swap_long() in the code path.

  My guess is that multiple atomic ops degrade the instruction pipeline
  more than one would otherwise expect due to the multiple memory
  fences.

4 weeks agokernel - Slightly reduce extra spinlock ops in _pv_alloc()
Matthew Dillon [Wed, 22 Feb 2017 07:55:09 +0000 (23:55 -0800)]
kernel - Slightly reduce extra spinlock ops in _pv_alloc()

* Pre-stage pnew (new pv_entry) using a pcpu cache, avoiding an
  unnecessary spin_unlock/spin_lock sequence in _pv_alloc().

* No real performance improvement measured, but the code is cleaner so
  use it.

4 weeks agokernel - Add atomic ops features
Matthew Dillon [Wed, 22 Feb 2017 07:51:59 +0000 (23:51 -0800)]
kernel - Add atomic ops features

* Add <atomicop>_xacquire() and <atomicop>_xrelease() to a bunch of
  atomic ops.  Using this API will elide the operation using Intel's
  TSX extensions (the elides are backwards compatible to cpus that do
  not support TSX).

* Note however that preliminary testing using this API in the spin_lock*()
  and pv_*() interfaces has only led to a reduction of performance and not
  to any improvement, so at the moment we do not intend to use it.  But I
  did the work to add the API calls and I don't want to lose it.

4 weeks agore: Update to Realtek 1.93
Sepherosa Ziehau [Wed, 22 Feb 2017 14:57:08 +0000 (22:57 +0800)]
re: Update to Realtek 1.93

Tested-by: me, Tim Darby