dragonfly.git
7 years agoAdjust share/examples/etc/README.examples for autofs.
Sascha Wildner [Sun, 5 Jun 2016 16:21:55 +0000 (18:21 +0200)]
Adjust share/examples/etc/README.examples for autofs.

7 years agoAdd some assignments to etc/defaults/rc.conf for autofs.
Sascha Wildner [Sun, 5 Jun 2016 16:15:37 +0000 (18:15 +0200)]
Add some assignments to etc/defaults/rc.conf for autofs.

7 years agoAdd autofs to LINT64.
Sascha Wildner [Sun, 5 Jun 2016 16:14:56 +0000 (18:14 +0200)]
Add autofs to LINT64.

7 years agosys/vfs/autofs: Remove .vfs_sync = vfs_stdsync,
Tomohiro Kusumi [Sun, 5 Jun 2016 17:18:57 +0000 (02:18 +0900)]
sys/vfs/autofs: Remove .vfs_sync = vfs_stdsync,

This should have been removed by ef560bee along with other fs.

7 years agoif_iwm - Fix m_defrag() usage. Copy-pasto when copying code from OpenBSD.
Imre Vadász [Sun, 5 Jun 2016 14:58:53 +0000 (16:58 +0200)]
if_iwm - Fix m_defrag() usage. Copy-pasto when copying code from OpenBSD.

7 years agoif_iwm - Add and use iwm_is_valid_ether_addr() function.
Imre Vadász [Sun, 5 Jun 2016 12:31:01 +0000 (14:31 +0200)]
if_iwm - Add and use iwm_is_valid_ether_addr() function.

* While there use IEEE80211_ADDR_EQ and IEEE80211_ADDR_COPY macros where
  appropriate.

7 years agoif_iwm - Avoid leaking memory, and fix error handling in iwm_rx_addbuf().
Imre Vadász [Sun, 5 Jun 2016 11:40:31 +0000 (13:40 +0200)]
if_iwm - Avoid leaking memory, and fix error handling in iwm_rx_addbuf().

7 years agoif_iwm - When transitioning to INIT, vap->iv_newstate will just ignore arg.
Imre Vadász [Sat, 4 Jun 2016 12:49:12 +0000 (14:49 +0200)]
if_iwm - When transitioning to INIT, vap->iv_newstate will just ignore arg.

* Just fix the comment to be more helpful here.

7 years agosbin/hammer: Cleanup on aac2051d
Tomohiro Kusumi [Sun, 5 Jun 2016 11:25:02 +0000 (20:25 +0900)]
sbin/hammer: Cleanup on aac2051d

The if conditional wasn't necessary after aac2051d.

7 years agokstrdup.9: Mention kstrndup().
Sascha Wildner [Sun, 5 Jun 2016 10:35:54 +0000 (12:35 +0200)]
kstrdup.9: Mention kstrndup().

7 years agokernel - Flesh out nvme interrupts (non-msi for now)
Matthew Dillon [Sun, 5 Jun 2016 06:45:59 +0000 (23:45 -0700)]
kernel - Flesh out nvme interrupts (non-msi for now)

* MSI/MSIX not working currently so just turn it off for the moment.

* Normal interrupt now operational.  Implement a real nvme_intr() and
  Cleanup some of our polling hacks now that interrupts work.

* Rearrange shutdown so admin polling continues to work while the devfs
  disk infrastructure is being torn down.

* Tests with this little samsung mini-pcie nvme card:

  120,000 IOPS (concurrent 512 byte dd)
  1.5 GBytes/sec (sequential read uncompressable file through filesystem)
  1.5 GBytes/sec reading via tar.

  test40# ls -la /mnt2/test.dat
  -rw-r--r--  1 root  wheel  7516192768 Jun  4 23:50 /mnt2/test.dat
  test40# time tar cf /dev/null /mnt2/test.dat
  0.062u 3.937s 0:04.84 82.4%     28+69k 28642+0io 0pf+0w  (from media)
  0.164u 1.367s 0:01.81 83.9%     29+71k 978+0io 0pf+0w    (from buffer cache)

7 years agokernel - Initial native DragonFly NVME driver commit
Matthew Dillon [Sun, 5 Jun 2016 02:35:29 +0000 (19:35 -0700)]
kernel - Initial native DragonFly NVME driver commit

* Initial from-scratch NVME implementation using the NVM Express 1.2a
  chipset specification pdf.  Nothing ported from anywhere else.

  Basic implementation.

* Not yet connected to the build, interrupts are not yet functional
  (it currently just polls at 100hz for testing), some additional error
  handling is needed, and we will need ioctl support and a userland utility
  to do various administrative tasks like formatting.

* Near full header spec keyed in including the bits we don't use (yet).

* Full SMP BIO interface and four different queue topologies implemented
  depending on how many queues the chipset lets us create.  The best is
  ncpus * 4 queues, i.e. (low, high priority) x (read, write) per cpu.
  The second best is just (low, high priority) x (read, write) shared between
  all cpus.

  Extremely low BIO overhead.  Full strategy support and beginnings of
  optimizations for low-latency I/Os (currently a hack).

* Initial testing with multiple concurrent sequential dd's on a little
  samsung nvme mini-pcie card:

1.2 GBytes/sec 16KB
2.0 GBytes/sec 32KB
2.5 GBytes/sec 64KB

7 years agoif_iwm - Fix iwm_mvm_lmac_scan_fill_channels(), only add 11b and 11a chans.
Imre Vadász [Sat, 4 Jun 2016 21:12:11 +0000 (23:12 +0200)]
if_iwm - Fix iwm_mvm_lmac_scan_fill_channels(), only add 11b and 11a chans.

Fixes breakage introduced in edfc8a0769eef4f5d883c22ee95a6ec79a1d85c6,
after which only channels 36,40,44,48,52,56 from the 5GHz band were
scanned, since all the 11b channels were added twice.

7 years agoif_iwm - Make some functions static in if_iwm_led.c, no functional change.
Imre Vadász [Sat, 4 Jun 2016 10:52:08 +0000 (12:52 +0200)]
if_iwm - Make some functions static in if_iwm_led.c, no functional change.

* While there clean up two more cases of
   if (ret)
           return ret;
   return 0;

7 years agosbin/hammer: Fix used bytes for zone15
Tomohiro Kusumi [Sat, 4 Jun 2016 16:23:27 +0000 (01:23 +0900)]
sbin/hammer: Fix used bytes for zone15

zone15 (physically not available zone) is always 100% used,
so bytes_used for zone15 big-block should be 8MB istead of 0.

Has nothing to do with
http://lists.dragonflybsd.org/pipermail/users/2016-June/thread.html#249681

7 years agosbin/hammer: Make hammer blockmap check offset/space
Tomohiro Kusumi [Sat, 4 Jun 2016 15:27:25 +0000 (00:27 +0900)]
sbin/hammer: Make hammer blockmap check offset/space

Based on this report, which may not be a filesystem issue.
http://lists.dragonflybsd.org/pipermail/users/2016-June/thread.html#249681

7 years agosbin/hammer: Remove debug printfs
Tomohiro Kusumi [Sat, 4 Jun 2016 10:36:36 +0000 (19:36 +0900)]
sbin/hammer: Remove debug printfs

These debug printfs are no longer really used for anything and
probably by anyone as /sbin/hammer is stable enough.

These printfs generate tons of output to stderr, so it would be
more convenient to just add some printfs to wherever necessary
or use gdb for whatever issues found, rather than using these.

7 years agosbin/hammer: Cleanup zone statistics functions
Tomohiro Kusumi [Fri, 3 Jun 2016 11:15:14 +0000 (20:15 +0900)]
sbin/hammer: Cleanup zone statistics functions

Also remove a debug function hammer_dump_layer1_bits().

7 years agoif_run - Add missing RUN_LOCK/RUN_UNLOCK around a run_get_tsf() call.
Imre Vadász [Fri, 3 Jun 2016 21:08:15 +0000 (23:08 +0200)]
if_run - Add missing RUN_LOCK/RUN_UNLOCK around a run_get_tsf() call.

* The RUN_LOCK_ASSERT in run_do_request() got triggered when running
  e.g. "tcpdump -i wlan0 -y IEEE802_11_RADIO" on the interface.

7 years agoCreate the /etc/autofs directory via mtree.
Sascha Wildner [Fri, 3 Jun 2016 17:34:24 +0000 (19:34 +0200)]
Create the /etc/autofs directory via mtree.

7 years agokernel/autofs: Add some missing files to the Makefile.
Sascha Wildner [Fri, 3 Jun 2016 08:51:29 +0000 (10:51 +0200)]
kernel/autofs: Add some missing files to the Makefile.

7 years agousr.sbin/autofs: Workaround namecache bug after unmount
Tomohiro Kusumi [Sun, 29 May 2016 04:59:24 +0000 (13:59 +0900)]
usr.sbin/autofs: Workaround namecache bug after unmount

autounmountd gets affected by the namecache bug mentioned in
https://bugs.dragonflybsd.org/issues/2908.

This can be worked around by stat(2) (or any syscall that resolves
the name once again) after unmount failed with EBUSY.

Without this workaround, a process at automounted filesystem will
see ENOTCONN after autounmountd's attempt to unmount. This must
not be removed until the namecache bug is fixed.

7 years agosys/kern: Don't implement .vfs_sync unless sync is supported
Tomohiro Kusumi [Tue, 24 May 2016 15:09:48 +0000 (00:09 +0900)]
sys/kern: Don't implement .vfs_sync unless sync is supported

The only reason filesystems without requirement of syncing
(e.g. no backing storage) need to implement .vfs_sync is because
those fs need a sync with a return value of 0 on unmount.

If unmount allows sync with return value of EOPNOTSUPP for fs
that do not support sync, those fs no longer have to implement
.vfs_sync with vfs_stdsync() only to pass dounmount().

The drawback is when there is a sync (other than vfs_stdnosync)
that returns EOPNOTSUPP for real errors. The existing fs in
DragonFly don't do this (and shouldn't either).

Also see https://bugs.dragonflybsd.org/issues/2912.

 # grep "\.vfs_sync" sys/vfs sys/gnu/vfs -rI | grep vfs_stdsync
 sys/vfs/udf/udf_vfsops.c:       .vfs_sync =             vfs_stdsync,
 sys/vfs/portal/portal_vfsops.c: .vfs_sync =             vfs_stdsync
 sys/vfs/devfs/devfs_vfsops.c:   .vfs_sync       = vfs_stdsync,
 sys/vfs/isofs/cd9660/cd9660_vfsops.c:   .vfs_sync =             vfs_stdsync,
 sys/vfs/autofs/autofs_vfsops.c: .vfs_sync =             vfs_stdsync,    /* for unmount(2) */
 sys/vfs/tmpfs/tmpfs_vfsops.c:   .vfs_sync =                     vfs_stdsync,
 sys/vfs/dirfs/dirfs_vfsops.c:   .vfs_sync =                     vfs_stdsync,
 sys/vfs/ntfs/ntfs_vfsops.c:     .vfs_sync =             vfs_stdsync,
 sys/vfs/procfs/procfs_vfsops.c: .vfs_sync =             vfs_stdsync
 sys/vfs/hpfs/hpfs_vfsops.c:     .vfs_sync =             vfs_stdsync,
 sys/vfs/nullfs/null_vfsops.c:   .vfs_sync =             vfs_stdsync,

7 years agoautofs: Port autofs from FreeBSD
Tomohiro Kusumi [Wed, 18 May 2016 08:01:32 +0000 (17:01 +0900)]
autofs: Port autofs from FreeBSD

Brought in basically from
FreeBSD@GitHub cac9beab7d53f0c37ce2a2a1b893be59028928f4
with lots of changes.
Note that this commit isn't necessarily 1:1 with above commit.

Kernel code is basically a rewrite based on the FreeBSD code.
Userspace is basically 1:1 with FreeBSD except that lots of small
changes (including related commits listed below) were necessary.
This is due to autofs being dependent on FreeBSD specific interface,
command options and such.

For userspace, note that non-functional stuff (e.g. whitespace
warnings via git am) are intentionally left to be 1:1 with FreeBSD.
Userspace is basically portable, so don't try to obfuscate the real
changes made for DragonFly by fixing these for now till things are
considered stable unless it's a bug from FreeBSD.

Summary of newly added or modified files.
- sys/vfs/autofs - autofs filesystem
- usr.sbin/autofs - autofs userspace command and daemons
- etc/ - configuration files and manpages
- others - changes in misc subsystems (not independent of autofs)

Related DragonFly commits.
- usr.sbin/autofs: Workaround namecache bug after unmount
- sys/kern: Don't implement .vfs_sync unless sync is supported
- user.sbin/fstyp: Port fstyp from FreeBSD
- sys/kern: Retry nlookup if nresolve returned ESTALE
- sys/sys: Fix IOCPARM_MAX
- sys/sys: Extend IOCPARM_MAX
- usr.bin/showmount: Add -E option
- sbin/mount_nfs: Add -o retrycnt= option
- sys/kern: Add kqueue EVFILT_FS
- sys/kern: Add kstrndup()

Related DragonFly PRs.
- https://bugs.dragonflybsd.org/issues/2900
- https://bugs.dragonflybsd.org/issues/2901
- https://bugs.dragonflybsd.org/issues/2905
- https://bugs.dragonflybsd.org/issues/2907
- https://bugs.dragonflybsd.org/issues/2908
- https://bugs.dragonflybsd.org/issues/2909
- https://bugs.dragonflybsd.org/issues/2912
- https://bugs.dragonflybsd.org/issues/2913
- https://bugs.dragonflybsd.org/issues/2914

Other related resource.
- http://lists.dragonflybsd.org/pipermail/users/2016-May/thread.html#249556
- http://lists.dragonflybsd.org/pipermail/users/2016-June/thread.html#249680
- https://www.dragonflydigest.com/2016/05/06/18066.html

7 years agousr.sbin/fstyp: Port fstyp from FreeBSD
Tomohiro Kusumi [Wed, 18 May 2016 07:58:01 +0000 (16:58 +0900)]
usr.sbin/fstyp: Port fstyp from FreeBSD

Brought in from FreeBSD@GitHub 3e3c248f832f796881ac2ce0d45049552e8d9a9b.
Needed by autofs.

Removed ZFS and GEOM support.
Added HAMMER support.

Note that fstyp has been changed to test a filesystem type vector
fsvtypes[] in addition to the existing fstypes[]. This is a bit
ad-hoc, but was necessary to support partial volume(s) for HAMMER
without a major code rewrite.

7 years agosys/kern: Retry nlookup if nresolve returned ESTALE
Tomohiro Kusumi [Wed, 18 May 2016 18:07:27 +0000 (03:07 +0900)]
sys/kern: Retry nlookup if nresolve returned ESTALE

Make nlookup retry the whole thing if nresolve VOP returned ESTALE.

This will be used by autofs (in the next few commits).
This doesn't affect other filesystems, because no other filesystem
returns ESTALE.

Autofs needs this because a target filesystem may get mounted under
the root directory of autofs while running nresolve VOP of autofs.
Autofs tells nlookup the topology has changed by returning ESTALE.
Unless nlookup retries the lookup, the result is obsolete.

7 years agosys/sys: Fix IOCPARM_MAX
Tomohiro Kusumi [Sun, 29 May 2016 02:23:29 +0000 (11:23 +0900)]
sys/sys: Fix IOCPARM_MAX

Fix the previous commit brought in from from FreeBSD@GitHub
598dc07f1ee077b425c2f447aeb3dfb632a1f2a3.

The max possible size for ioctl structure is ((1<<13)-1).
(1<<13) bit overlaps IOC_VOID, so it gets cut by _IOC().
Also see L672 of sys/kern/sys_generic.c.

7 years agosys/sys: Extend IOCPARM_MAX
Tomohiro Kusumi [Sun, 8 May 2016 17:39:43 +0000 (02:39 +0900)]
sys/sys: Extend IOCPARM_MAX

Brought in from FreeBSD@GitHub 598dc07f1ee077b425c2f447aeb3dfb632a1f2a3.
Needed by autofs (and possibly other ioctls in the future).

It was originally for ZFS on FreeBSD, but autofs needed this as well.

Also see https://bugs.dragonflybsd.org/issues/2907.

7 years agousr.bin/showmount: Add -E option
Tomohiro Kusumi [Sun, 15 May 2016 13:05:15 +0000 (22:05 +0900)]
usr.bin/showmount: Add -E option

Brought in from FreeBSD@GitHub 6fee958d289745f0f52dcc0df16858cf7e093d5c.
Needed by autofs.

Also see https://bugs.dragonflybsd.org/issues/2914.

7 years agosbin/mount_nfs: Add -o retrycnt= option
Tomohiro Kusumi [Thu, 12 May 2016 09:38:07 +0000 (18:38 +0900)]
sbin/mount_nfs: Add -o retrycnt= option

Brought in from FreeBSD@GitHub 4f094ed2b2fd36f47b04c08e320d4d006a416874.
Needed by autofs.

Also see https://bugs.dragonflybsd.org/issues/2913.

7 years agosys/kern: Add kqueue EVFILT_FS
Tomohiro Kusumi [Fri, 29 Apr 2016 01:08:11 +0000 (10:08 +0900)]
sys/kern: Add kqueue EVFILT_FS

Brought in from FreeBSD@GitHub bbaa6c3ec045b7de225f726d3c9367510b287184.
Needed by autofs.

Triggers an event on mount(2) and unmount(2).

Also see https://bugs.dragonflybsd.org/issues/2905.
Reviewed-by: sephe
7 years agosys/kern: Add kstrndup()
Tomohiro Kusumi [Fri, 22 Apr 2016 04:18:47 +0000 (13:18 +0900)]
sys/kern: Add kstrndup()

Needed by autofs.

Also see https://bugs.dragonflybsd.org/issues/2901.

7 years agorescue image: Strip lvm(8).
Sascha Wildner [Thu, 2 Jun 2016 20:38:33 +0000 (22:38 +0200)]
rescue image: Strip lvm(8).

It's built separately outside of the crunchgen'd stuff, for reasons
I'm yet not sure of.

So of course it also needs to be stripped separately because if -g is
added to the user's buildworld flags, it will go into the initrd with
debug symbols (filling it to 95%, opposed to the (currently) 73% when
not stripped).

7 years agorescue image: Add undo(1).
Sascha Wildner [Thu, 2 Jun 2016 20:16:52 +0000 (22:16 +0200)]
rescue image: Add undo(1).

It's useful to have in there.

Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/2798> (suggestion)

7 years agoif_iwm - Workaround, which fixes beacon and statistic notification issue.
Imre Vadász [Fri, 27 May 2016 22:50:31 +0000 (00:50 +0200)]
if_iwm - Workaround, which fixes beacon and statistic notification issue.

7 years agoif_iwm - Add 3165 chipset ids.
Imre Vadász [Wed, 25 May 2016 17:53:15 +0000 (19:53 +0200)]
if_iwm - Add 3165 chipset ids.

* The 3165 chipset currently uses the 7265 firmware, because of issues
  with the 7265D firmware.

7 years agoif_iwm - Update to support version 16 firmware.
Imre Vadász [Mon, 23 May 2016 21:43:03 +0000 (23:43 +0200)]
if_iwm - Update to support version 16 firmware.

* XXX The firmware always signals missed beacons, and doesn't give us
      statistics notifications.

Taken-From: OpenBSD

7 years agoiwmfw - Update to version 16 firmware.
Imre Vadász [Sat, 21 May 2016 21:02:28 +0000 (23:02 +0200)]
iwmfw - Update to version 16 firmware.

7 years agokern: Remove debug print
Sepherosa Ziehau [Thu, 2 Jun 2016 16:25:21 +0000 (00:25 +0800)]
kern: Remove debug print

7 years agokern: Use objcache for file
Sepherosa Ziehau [Thu, 2 Jun 2016 16:15:59 +0000 (00:15 +0800)]
kern: Use objcache for file

This improves connect/accept rate bit (450Kconns/s -> 485Kconns/s).

7 years agosmbacpi.4: Add a manpage for smbacpi(4).
Imre Vadász [Wed, 1 Jun 2016 22:01:37 +0000 (00:01 +0200)]
smbacpi.4: Add a manpage for smbacpi(4).

7 years agorc.conf.5: Document powerd_flags.
Sascha Wildner [Wed, 1 Jun 2016 18:20:55 +0000 (20:20 +0200)]
rc.conf.5: Document powerd_flags.

7 years agokernel/inet6: Fix two wrong comparisons.
Sascha Wildner [Wed, 1 Jun 2016 08:54:06 +0000 (10:54 +0200)]
kernel/inet6: Fix two wrong comparisons.

Submitted-by: fenyo
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/2810>
Approved-by: sephe
7 years agoinstaller: Use ioctl(DIOCGPART) for getting a disk's size.
Sascha Wildner [Tue, 31 May 2016 21:27:35 +0000 (23:27 +0200)]
installer: Use ioctl(DIOCGPART) for getting a disk's size.

Before this commit, the installer was grepping in /var/run/dmesg.boot.
This approach has one problem in particular, which is that it was
used with CAM attached disks in mind, which will always print their
size in MiBs. However, some drivers, such as mmcsd(4), roll their own
disk, so they are free to choose what they print in their *_attach()
function. Yet we still want to offer these disks from the installer.
For example, mmcsd(4) starts printing the size in gigabytes if the
disk is >= 10GiB.

This commit changes the installer's survey function to read the
disk's size using ioctl(DIOCGPART) to have consistent results.

Reported-by: Dmitry Postolov <dpostolov@yandex.ru>
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/2899>

7 years ago/etc/defaults/rc.conf: Add a powerd_flags definition.
Sascha Wildner [Tue, 31 May 2016 18:42:18 +0000 (20:42 +0200)]
/etc/defaults/rc.conf: Add a powerd_flags definition.

7 years agosmbacpi: Implement I2cSerialBus ACPI support module. For use by ig4(4).
Imre Vadász [Sat, 2 Apr 2016 20:52:18 +0000 (22:52 +0200)]
smbacpi: Implement I2cSerialBus ACPI support module. For use by ig4(4).

* Registers just the ACPI operation region handler, no ACPI resource
  handling yet.

7 years agoig4: Add ig4_acpi.c for attaching on ACPI (needed for Bay-/Cherry- Trail).
Imre Vadász [Thu, 17 Mar 2016 13:20:15 +0000 (14:20 +0100)]
ig4: Add ig4_acpi.c for attaching on ACPI (needed for Bay-/Cherry- Trail).

7 years agotcp: Don't prematurely drop receiving-only connections.
Sepherosa Ziehau [Mon, 30 May 2016 12:38:40 +0000 (20:38 +0800)]
tcp: Don't prematurely drop receiving-only connections.

If the connection was persistent and receiving-only, several (12)
sporadic device insufficient buffers would cause the connection be
dropped prematurely:
Upon ENOBUFS in tcp_output() for an ACK, retransmission timer is
started.  No one will stop this retransmission timer for receiving-
only connection, so the retransmission timer promises to expire and
t_rxtshift is promised to be increased.  And t_rxtshift will not be
reset to 0, since no RTT measurement will be done for receiving-only
connection.  If this receiving-only connection lived long enough,
and it suffered 12 sporadic device insufficient buffers, i.e.
t_rxtshift >= 12, this receiving-only connection would be dropped
prematurely by the retransmission timer.

We now assert that for data segments, SYNs or FINs either rexmit or
persist timer was wired upon ENOBUFS.  And don't set rexmit timer
for other cases, i.e. ENOBUFS upon ACKs.

And we no longer penalize send window upon ENOBUFS.

Obtained-from: FreeBSD r300981

7 years agoieee80211.9: Fix .Nm
Sascha Wildner [Sun, 29 May 2016 19:42:55 +0000 (21:42 +0200)]
ieee80211.9: Fix .Nm

7 years agoRemove an unused manual page.
Sascha Wildner [Sun, 29 May 2016 19:41:20 +0000 (21:41 +0200)]
Remove an unused manual page.

7 years agogpio_acpi: Turn this into a child device of gpio_intel.
Imre Vadász [Wed, 11 May 2016 20:11:05 +0000 (22:11 +0200)]
gpio_acpi: Turn this into a child device of gpio_intel.

* This makes gpio_intel much more independent from gpio_acpi.

* Less adjustments needed in gpio drivers for using gpio_acpi.

* Some slight cleanup, and refactoring turning device_t args to
  struct gpio_acpi_softc * args.

7 years agogpio_acpi: Add allocate/release functions for GpioIo pins.
Imre Vadász [Sat, 30 Apr 2016 16:46:11 +0000 (18:46 +0200)]
gpio_acpi: Add allocate/release functions for GpioIo pins.

* This slightly simplifies the read_pin and write_pin functions, and
  configuration errors should now be found when allocating the pin,
  instead of causing a panic in read_pin() or write_pin().

7 years agogpio_acpi: Factor out gpio_acpi_check_gpioint().
Imre Vadász [Sat, 28 May 2016 21:26:37 +0000 (23:26 +0200)]
gpio_acpi: Factor out gpio_acpi_check_gpioint().

* gpio_acpi_check_gpioint() can be reused for the device-driver facing
  interface for dealing with gpio acpi-resources.

7 years agokernel - Align virtual_start, workaround possible HW VM bugs
Matthew Dillon [Sat, 28 May 2016 22:56:13 +0000 (15:56 -0700)]
kernel - Align virtual_start, workaround possible HW VM bugs

* virtual_start is 2MB-aligned at the kernel load's end address.
  The page table mappings prior to this address are 2MB mappings.

  Additional SYSMAP()d space is reserved in early boot, such as
  the CMAP entries and the dmesg buffer.  The page table mappings
  in this area should all be 4K pages.

* Kernel virtual memory beyond the SYSMAP()d space is available for
  general allocation, but positioned such that only kldload modules will
  try to use it specifically.  Sascha (swildner) found that any initial
  kldload done after boot in vmware player 7.1.4 build-3848939 running
  on a i7-4770K based host would panic.

  A kernel core of this panic appears to show a corrupt pte in a location
  where the pte should have been read as 0.

* Doing an additional 2MB alignment of virtual_start after the SYSMAP()s
  appears to work around this corruption, which is this commit.  This
  means that the first general allocation in the kernel load portion of
  the kernel_map will be shifted to the next 2MB boundary past the SYSMAP()s.

* I can only speculate that the hardware is somehow getting confused, but
  I can't really fathon how it is getting confused because the SYSMAP
  reservations should all be using 4KB pages.

7 years agoSome more cleanup in comments etc. after the an(4) removal.
Sascha Wildner [Sat, 28 May 2016 11:09:15 +0000 (13:09 +0200)]
Some more cleanup in comments etc. after the an(4) removal.

7 years agoieee80211_vap.9: Fix date.
Sascha Wildner [Sat, 28 May 2016 09:42:11 +0000 (11:42 +0200)]
ieee80211_vap.9: Fix date.

7 years agoVarious typo and wording fixes.
Sascha Wildner [Sat, 28 May 2016 01:15:50 +0000 (03:15 +0200)]
Various typo and wording fixes.

7 years agovirtio - fix contigmalloc muff last commit
Matthew Dillon [Sat, 28 May 2016 00:51:57 +0000 (17:51 -0700)]
virtio - fix contigmalloc muff last commit

* Have to use M_WAITOK for contigmalloc, not M_INTWAIT.

Reported-by: tuxillo
7 years agoSync ACPICA with Intel's version 20160527.
Sascha Wildner [Sat, 28 May 2016 00:31:27 +0000 (02:31 +0200)]
Sync ACPICA with Intel's version 20160527.

* Temporarily reverted the new arbitrary bit length/alignment support
  in AcpiHwRead/AcpiHwWrite for the Generic Address Structure. There
  have been a number of regressions with the new code that need to be
  fully resolved and tested before this support can be finally
  integrated into ACPICA. Apologies for any inconveniences these
  issues may have caused.

* The ACPI message macros are not configurable (ACPI_MSG_ERROR,
  ACPI_MSG_EXCEPTION, ACPI_MSG_WARNING, ACPI_MSG_INFO,
  ACPI_MSG_BIOS_ERROR, and ACPI_MSG_BIOS_WARNING). Lv Zheng.

* Fixed a couple of GCC warnings associated with the use of the
  -Wcast-qual option. Adds a new return macro, return_STR.
  Jung-uk Kim.

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

7 years agovirtio - vtblk_finish_bio() called with serializer held
Matthew Dillon [Sat, 28 May 2016 00:33:18 +0000 (17:33 -0700)]
virtio - vtblk_finish_bio() called with serializer held

* vtblk_finish_bio() was being improperly called with the
  serializer held in the strategy error path.

* Note that biodone() is properly called without the
  serializer held in the normal completion path.

7 years agovirtio - Fix a few porting issues and bugs
Matthew Dillon [Sat, 28 May 2016 00:14:24 +0000 (17:14 -0700)]
virtio - Fix a few porting issues and bugs

* vtblk_maximum_segments() was really buggy.  It was
  adding the base min segments to blkcfg->seg_max,
  miscalculating values for the case where the F_SEG_MAX
  feature is not in the feature list.

  This could result in virtio imploding on a too-small
  sglist.

* Fix situations where M_NOWAIT is improperly used.

* At least use 16-byte alignment for contigmalloc()'s.

7 years agovirtio_blk: Add support for indirect buffers.
Imre Vadász [Sat, 31 Oct 2015 15:48:18 +0000 (16:48 +0100)]
virtio_blk: Add support for indirect buffers.

Taken-From: FreeBSD

7 years agowlan.4: Comment out reference to bwi(4) which we do not have.
Sascha Wildner [Fri, 27 May 2016 08:32:47 +0000 (10:32 +0200)]
wlan.4: Comment out reference to bwi(4) which we do not have.

7 years agoVarious tiny updates in wlan*.4 manual pages and other related areas.
Sascha Wildner [Thu, 26 May 2016 21:45:48 +0000 (23:45 +0200)]
Various tiny updates in wlan*.4 manual pages and other related areas.

7 years agoieee80211*.9: Fix some prototypes in the manual pages.
Sascha Wildner [Thu, 26 May 2016 20:43:20 +0000 (22:43 +0200)]
ieee80211*.9: Fix some prototypes in the manual pages.

7 years agokernel - Augment pte assertion with additional info
Matthew Dillon [Thu, 26 May 2016 18:22:50 +0000 (11:22 -0700)]
kernel - Augment pte assertion with additional info

* Augment the invalid PTE assertion to print additional info.  This bug was
  thought to have been squashed but we received a recent report of it still
  occurring (on an older cpu).

7 years agoSync wlan driver manual pages with FreeBSD.
Sascha Wildner [Thu, 26 May 2016 15:01:50 +0000 (17:01 +0200)]
Sync wlan driver manual pages with FreeBSD.

7 years agoif_iwm - valid_{tx,rx}_ant from radio_cfg is only needed for 8000 family.
Imre Vadász [Wed, 25 May 2016 19:03:22 +0000 (21:03 +0200)]
if_iwm - valid_{tx,rx}_ant from radio_cfg is only needed for 8000 family.

* The "if (!data->valid_tx_ant || !data->valid_rx_ant) {" check was getting
  triggered with a 3165 chipset.

7 years agotcp: Make setsockopt(2) TCP_{NODELAY,NOPUSH,NOOPT,FASTKEEP} asynchronous
Sepherosa Ziehau [Thu, 26 May 2016 13:22:58 +0000 (21:22 +0800)]
tcp: Make setsockopt(2) TCP_{NODELAY,NOPUSH,NOOPT,FASTKEEP} asynchronous

This makes all network system calls used by nginx asynchronous and greatly
improves nginx performance.

For 1 requests/connection (30K concurrent connections), this commit gives
12% improvement for 16KB web object (was 16.8Gbps, now 19.2Gbps, which
maxes out 2x10Ge).  And it gives 19% improvement for 1KB web object (was
156Kreqs/s, now 186Kreqs/s).

7 years agoRegenerate devd's usb.conf for accumulated usb driver updates.
Sascha Wildner [Thu, 26 May 2016 10:01:26 +0000 (12:01 +0200)]
Regenerate devd's usb.conf for accumulated usb driver updates.

7 years agoSync our ieee80211* manpages with FreeBSD (plus some adjustments by me).
Sascha Wildner [Wed, 25 May 2016 18:45:17 +0000 (20:45 +0200)]
Sync our ieee80211* manpages with FreeBSD (plus some adjustments by me).

7 years agoral - Add missing BUS_DMA_NOWAIT to bus_dmamap_load_mbuf_segment() calls
Matthew Dillon [Wed, 25 May 2016 18:11:13 +0000 (11:11 -0700)]
ral - Add missing BUS_DMA_NOWAIT to bus_dmamap_load_mbuf_segment() calls

* Add missing BUS_DMA_NOWAIT to bus_dmamap_load_mbuf_segment() calls.

* NOTE: FreeBSD original code in #else not modified, but probably needs
  the same change (to bus_dmamap_load_mbuf_sg()).

7 years agoRemove an(4)/ancontrol(8) references from several manual pages.
Sascha Wildner [Wed, 25 May 2016 17:00:51 +0000 (19:00 +0200)]
Remove an(4)/ancontrol(8) references from several manual pages.

7 years agoAdd missing LINT64 options ({IWN,WPI}_DEBUG, URTWN_WITHOUT_UCODE).
Sascha Wildner [Wed, 25 May 2016 14:17:21 +0000 (16:17 +0200)]
Add missing LINT64 options ({IWN,WPI}_DEBUG, URTWN_WITHOUT_UCODE).

7 years agokernel/wpi: Fix build with WPI_DEBUG.
Sascha Wildner [Wed, 25 May 2016 14:16:08 +0000 (16:16 +0200)]
kernel/wpi: Fix build with WPI_DEBUG.

7 years agokernel: Remove two unused options, AH_REGOPS_FUNC, IEEE80211_AMPDU_AGE.
Sascha Wildner [Wed, 25 May 2016 13:00:31 +0000 (15:00 +0200)]
kernel: Remove two unused options, AH_REGOPS_FUNC, IEEE80211_AMPDU_AGE.

7 years agokernel/ath_hal: Add missing __printflike().
Sascha Wildner [Wed, 25 May 2016 14:13:47 +0000 (16:13 +0200)]
kernel/ath_hal: Add missing __printflike().

7 years agosys/vfs/hammer: Remove unnecessary =NULL;
Tomohiro Kusumi [Wed, 25 May 2016 10:05:32 +0000 (19:05 +0900)]
sys/vfs/hammer: Remove unnecessary =NULL;

resx is only used (or should be declared) in else{} scope.

7 years agosys/vfs/hammer: Don't store negative free/avail for statfs/statvfs
Tomohiro Kusumi [Wed, 25 May 2016 06:11:13 +0000 (15:11 +0900)]
sys/vfs/hammer: Don't store negative free/avail for statfs/statvfs

f_bfree and f_bavail (these two equal on HAMMER) are likely to
be negative when the filesystem usage has reached its limit or
almost reaches limit.

There is no point in having negative values by using internally
reserved size (means not physically finalized with actual data),
so force 0 instead of -.

Note that this doesn't fix ENOSPC issues.

-- before this commit
 # df -T /HAMMER
 Filesystem  Type   1K-blocks      Used Avail Capacity  Mounted on
 TEST        hammer 116359168 116363168 -4000   100%    /HAMMER

-- with this commit
 # df -T /HAMMER
 Filesystem  Type   1K-blocks      Used Avail Capacity  Mounted on
 TEST        hammer 116359168 116359168     0   100%    /HAMMER

7 years agosys/vfs/hammer: Add warning messages on ENOSPC
Tomohiro Kusumi [Wed, 25 May 2016 03:28:42 +0000 (12:28 +0900)]
sys/vfs/hammer: Add warning messages on ENOSPC

Add warning messages if the blockmap allocator finds ENOSPC.

B-Tree functions may also return ENOSPC, but those are results
of failure in blockmap allocation on node split.

_hammer_checkspace() doesn't have this warning for now.
This gets called by many of the syscalls before inmemory/ondisk
file operations start, so it's pretty obvious without bunch of
"No space left" in dmesg.

7 years agosys/vfs/hammer: Remove vfs.hammer.count_extra_space_used
Tomohiro Kusumi [Wed, 25 May 2016 03:15:32 +0000 (12:15 +0900)]
sys/vfs/hammer: Remove vfs.hammer.count_extra_space_used

This was added in a7e9bef1 in 2008 for debugging.
Exposing this to userspace isn't useful for users anyway considering
this is a sum of several internal parameters on resource usage.

7 years agokernel/acpi: Merge some fixes from ACPICA current to fix dfly bug #2916.
Sascha Wildner [Tue, 24 May 2016 20:25:25 +0000 (22:25 +0200)]
kernel/acpi: Merge some fixes from ACPICA current to fix dfly bug #2916.

Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/2916>

Intel's commits:

https://github.com/acpica/acpica/commit/6c4ef17e5150de60609a9fa56f5024ebd69b5f39
https://github.com/acpica/acpica/commit/4be46f600f370eb115bffcde149d3c5d0ab72517
https://github.com/acpica/acpica/commit/742ba81ff4eed44f11ba91c42d0dc55fc521a6f0

7 years agomake upgrade: Remove the if_an.ko module too (while here, sort a bit).
Sascha Wildner [Tue, 24 May 2016 19:22:46 +0000 (21:22 +0200)]
make upgrade: Remove the if_an.ko module too (while here, sort a bit).

7 years agoMention that an(4) has been removed in UPDATING.
Sascha Wildner [Tue, 24 May 2016 19:00:52 +0000 (21:00 +0200)]
Mention that an(4) has been removed in UPDATING.

7 years agokernel/ieee80211: Remove an unused malloc type.
Sascha Wildner [Tue, 24 May 2016 18:44:29 +0000 (20:44 +0200)]
kernel/ieee80211: Remove an unused malloc type.

7 years agokernel/iwn: Fix building with IWN_DEBUG.
Sascha Wildner [Tue, 24 May 2016 18:11:57 +0000 (20:11 +0200)]
kernel/iwn: Fix building with IWN_DEBUG.

7 years agokernel/bwn: Remove an unnecessary #define and add siba_debug.
Sascha Wildner [Tue, 24 May 2016 18:11:17 +0000 (20:11 +0200)]
kernel/bwn: Remove an unnecessary #define and add siba_debug.

7 years agokernel/bwn/siba: Fix a struct member name.
Sascha Wildner [Tue, 24 May 2016 18:10:20 +0000 (20:10 +0200)]
kernel/bwn/siba: Fix a struct member name.

7 years agokernel/urtwn: Fix building with USB_DEBUG.
Sascha Wildner [Tue, 24 May 2016 18:09:11 +0000 (20:09 +0200)]
kernel/urtwn: Fix building with USB_DEBUG.

7 years agokernel/ath: Fix a misplaced #endif
Sascha Wildner [Tue, 24 May 2016 18:08:33 +0000 (20:08 +0200)]
kernel/ath: Fix a misplaced #endif

7 years agokernel/ath: Fix building with ATH_DIAGAPI.
Sascha Wildner [Tue, 24 May 2016 18:08:07 +0000 (20:08 +0200)]
kernel/ath: Fix building with ATH_DIAGAPI.

7 years agokernel/ath: Fix building with AH_DEBUG.
Sascha Wildner [Tue, 24 May 2016 18:06:16 +0000 (20:06 +0200)]
kernel/ath: Fix building with AH_DEBUG.

7 years agowlan - Add missing kernel config files for ath.
Matthew Dillon [Tue, 24 May 2016 05:01:12 +0000 (22:01 -0700)]
wlan - Add missing kernel config files for ath.

* Add missing files for 'ath' to the kernel build (for building
  ath into the kernel).

7 years agowlan - Fix lockstatus debugging
Matthew Dillon [Tue, 24 May 2016 04:48:02 +0000 (21:48 -0700)]
wlan - Fix lockstatus debugging

* Fix lockstatus debugging (was missing 'curthread' arg).

7 years agowlan - Add missing options conf
Matthew Dillon [Tue, 24 May 2016 04:44:54 +0000 (21:44 -0700)]
wlan - Add missing options conf

* Add missing options conf for opt_wpi.h.  Also add opt_iwn.h in case we
  need it in the future (FreeBSD also had it).  We already had opt_iwm.h.

7 years agoiwn - Use pci_alloc_1intr()
Matthew Dillon [Mon, 23 May 2016 21:49:27 +0000 (14:49 -0700)]
iwn - Use pci_alloc_1intr()

* Use pci_alloc_1intr() in DragonFly for conditionalizing MSI interrupt
  installation.

7 years agowifi - Restore kernel build
Matthew Dillon [Mon, 23 May 2016 21:01:11 +0000 (14:01 -0700)]
wifi - Restore kernel build

* Restore wpi in netif Makefile and restore X86_64_CONFIG for all
  drivers originally in the kerne build, except 'an'.

7 years agowlan - Sync dev/netif/wpi from FreeBSD
Matthew Dillon [Mon, 23 May 2016 20:57:50 +0000 (13:57 -0700)]
wlan - Sync dev/netif/wpi from FreeBSD

* Sync dev/netif/wpi from FreeBSD, fbsd git dd885b9a0a0e, May 11 2016.

* Straight re-port from FreeBSD using new infrastructure, with DragonFly
  mods.

7 years agoif_iwm - Fix several nitpicks in iwm(4).
Imre Vadász [Sat, 21 May 2016 15:27:11 +0000 (17:27 +0200)]
if_iwm - Fix several nitpicks in iwm(4).

Move some declarations to if_iwmreg.h.
Remove iwm_fw_alive(); just call iwm_post_alive() directly.
Simplify iwm_mvm_add_sta().
Return timeout error from iwm_apm_init().
Print a message when init (i.e. boot) firmware fails to load.
Remove some commented-out code which wouldn't compile anyway.
Move iwm_mvm_tx_fifo to if_iwmreg.h to match better where Linux puts it.

Taken-From: OpenBSD (if_iwm.c r1.80 and if_iwmreg.h r1.11)

7 years agoif_iwm - Fix a few typos.
Imre Vadász [Sat, 21 May 2016 15:25:42 +0000 (17:25 +0200)]
if_iwm - Fix a few typos.