dragonfly.git
5 hours agoaltq: Fix typo master
Sepherosa Ziehau [Mon, 24 Jul 2017 03:38:43 +0000 (11:38 +0800)]
altq: Fix typo

7 hours agoipflow: Use per-cpu callout, instead of pr_slowtimo.
Sepherosa Ziehau [Fri, 21 Jul 2017 12:21:17 +0000 (20:21 +0800)]
ipflow: Use per-cpu callout, instead of pr_slowtimo.

The dynamically allocated per-cpu data structure may race the
ip_flowtimo, which calls ipflow_slowtimo.

Reported-by: zrj
15 hours agosys: Add size directives to assembly functions.
zrj [Sun, 23 Jul 2017 14:21:09 +0000 (17:21 +0300)]
sys: Add size directives to assembly functions.

No functional change intended.

17 hours agosys: Some whitespace cleanup.
zrj [Sun, 23 Jul 2017 14:20:04 +0000 (17:20 +0300)]
sys: Some whitespace cleanup.

While there, fix indentation and few typos a bit.
No functional change.

17 hours agoFix few typos.
zrj [Sun, 23 Jul 2017 13:54:50 +0000 (16:54 +0300)]
Fix few typos.

While there, make few whitespace adjustments.

17 hours agohack(6): Allow to play without setgid.
zrj [Sun, 23 Jul 2017 07:21:45 +0000 (10:21 +0300)]
hack(6): Allow to play without setgid.

Lockfile hardlinking requires that user should own the perm file.

27 hours agoRemove kernbb(8).
Sascha Wildner [Sun, 23 Jul 2017 05:40:46 +0000 (07:40 +0200)]
Remove kernbb(8).

It likely never worked in DragonFly (or until some early compiler
upgrade). FreeBSD stopped building it in 2004 (r132787).

Reported-by: zrj
47 hours agoRemove scsi_low.ko via 'make upgrade' (leftover from 075c6d38244abd0b0).
Sascha Wildner [Sat, 22 Jul 2017 09:30:55 +0000 (11:30 +0200)]
Remove scsi_low.ko via 'make upgrade' (leftover from 075c6d38244abd0b0).

2 days agolibstdcxx5: Add profiled library support.
zrj [Sun, 2 Jul 2017 14:17:21 +0000 (17:17 +0300)]
libstdcxx5: Add profiled library support.

2 days agolib/libexecinfo: Fix static and profiled archives.
zrj [Sun, 2 Jul 2017 14:12:41 +0000 (17:12 +0300)]
lib/libexecinfo: Fix static and profiled archives.

Previously archives were embedded within archives.

Reported-by: tuxillo
2 days agocpu/asm.h: Use optimal alignment for assembly functions on x86_64.
zrj [Sun, 2 Jul 2017 10:46:11 +0000 (13:46 +0300)]
cpu/asm.h: Use optimal alignment for assembly functions on x86_64.

Entry point at 16 byte boundary is better for x86_64.
Preserve previous alignment for sys/boot/ 32bit loader.

2 days agopg: Add missing dummy stack frames for mcount for x86_64.
zrj [Sun, 2 Jul 2017 10:41:19 +0000 (13:41 +0300)]
pg: Add missing dummy stack frames for mcount for x86_64.

Safer to do it in a single place than miss one in assembly function.
Fixes segfaults for c++ runtime library with profiled libc(strcmp.S).

Affects only -pg compilations.

2 days agopg: Use long for fptrdiff_t type.
zrj [Sun, 2 Jul 2017 10:39:47 +0000 (13:39 +0300)]
pg: Use long for fptrdiff_t type.

On x86_64 it can easily overflow and very hard to detect.

2 days agolibstdcxx5: Fix profiled library creation.
zrj [Sun, 2 Jul 2017 10:33:49 +0000 (13:33 +0300)]
libstdcxx5: Fix profiled library creation.

It was embedding archives within archives. Do not do it.
For now created library is still partially profiled, some expansion
to INTERNALLIB (like new INTERNALLIBPROF) handling will be needed.

This is a partial fix to have c++ -pg working.

While there, throw in ranlib for good measure.

Reported-by: tuxillo
2 days agobsd.lib.mk: Add INTERNALLIBPROF knob.
zrj [Sun, 2 Jul 2017 10:30:05 +0000 (13:30 +0300)]
bsd.lib.mk: Add INTERNALLIBPROF knob.

Allow to build profiled versions of internal libs without installing them.
Will be useful for the corner cases, spec. to build modern compilers or
libraries containing internal libraries like libexecinfo.a(libelf.a).

2 days ago<glob.h>/<sys/time.h>: Clean up the namespace a bit better.
Sascha Wildner [Fri, 21 Jul 2017 18:59:32 +0000 (20:59 +0200)]
<glob.h>/<sys/time.h>: Clean up the namespace a bit better.

These headers don't need the full weight of <sys/types.h>.

While here, sync glob()'s prototype with the standard and fix a typo
in a comment.

2 days ago<glob.h>/<sys/time.h>: Some minimal whitespace cleanup.
Sascha Wildner [Fri, 21 Jul 2017 18:52:35 +0000 (20:52 +0200)]
<glob.h>/<sys/time.h>: Some minimal whitespace cleanup.

3 days agovlan: It should only run in netisr_cpus netisrs
Sepherosa Ziehau [Fri, 21 Jul 2017 08:44:29 +0000 (16:44 +0800)]
vlan: It should only run in netisr_cpus netisrs

3 days agoipflow: Regroup percpu data.
Sepherosa Ziehau [Fri, 21 Jul 2017 08:23:29 +0000 (16:23 +0800)]
ipflow: Regroup percpu data.

3 days agoipflow: It can only run in first netisr_ncpus netisrs
Sepherosa Ziehau [Fri, 21 Jul 2017 07:41:04 +0000 (15:41 +0800)]
ipflow: It can only run in first netisr_ncpus netisrs

3 days agoipfw: ipfw only runs on netisr_ncpus
Sepherosa Ziehau [Fri, 21 Jul 2017 06:23:06 +0000 (14:23 +0800)]
ipfw: ipfw only runs on netisr_ncpus

3 days agonetisr: Add add support for netisr_ncpus
Sepherosa Ziehau [Fri, 21 Jul 2017 06:21:41 +0000 (14:21 +0800)]
netisr: Add add support for netisr_ncpus

- netisr_forwardmsg(), which only forwards netmsg to netisr_ncpus.
- ASSERT_NETISR_NCPUS, which asserts the thread is one of the netisrs
  on netisr_ncpus.

3 days agoIn <signal.h> and <sys/devicestat.h>, include <sys/types.h> explicitly.
Sascha Wildner [Thu, 20 Jul 2017 17:21:20 +0000 (19:21 +0200)]
In <signal.h> and <sys/devicestat.h>, include <sys/types.h> explicitly.

This is in preparation for cleaning up <sys/time.h>'s namespace, which
<signal.h> and <sys/devicestat.h> relied on previously for bringing in
<sys/types.h>, but which does not actually need it for its own stuff.

4 days ago<sys/posix4.h>: Clean up a bit.
Sascha Wildner [Wed, 19 Jul 2017 20:10:11 +0000 (22:10 +0200)]
<sys/posix4.h>: Clean up a bit.

* This is only supposed to be included by the kernel. Error if _KERNEL
  isn't defined.

* Adjust #endif comments.

* Move include guard down.

5 days agonetisr: netisr_forwardmsg -> netisr_forwardmsg_all
Sepherosa Ziehau [Tue, 18 Jul 2017 08:58:38 +0000 (16:58 +0800)]
netisr: netisr_forwardmsg -> netisr_forwardmsg_all

This function actually forwards netmsg to all available netisrs,
instead of netisr_ncpus netisrs.

For some modules, this is obviously not necessary; they will be
fixed one-by-one later.

7 days agoSync time(1)'s manual page a bit with FreeBSD, too.
Sascha Wildner [Sun, 16 Jul 2017 09:50:30 +0000 (11:50 +0200)]
Sync time(1)'s manual page a bit with FreeBSD, too.

8 days agoUpdate the pciconf(8) database.
Sascha Wildner [Sun, 16 Jul 2017 00:30:50 +0000 (02:30 +0200)]
Update the pciconf(8) database.

July 13, 2017 snapshot from http://pciids.sourceforge.net/

8 days agotime: Use clock_gettime
Markus Pfeiffer [Sat, 15 Jul 2017 22:16:12 +0000 (23:16 +0100)]
time: Use clock_gettime

gettimeofday is not suitable for measuring runtimes, as it is
not guaranteed to be monotonic.

8 days agotime: Handle SIGINFO in time(1)
Markus Pfeiffer [Sat, 15 Jul 2017 22:52:23 +0000 (23:52 +0100)]
time: Handle SIGINFO in time(1)

If the process receives SIGINFO print the elapsed time.

Taken-From: FreeBSD r158560 and r283073

8 days agotime: Handle SIGINFO in time(1)
Markus Pfeiffer [Sat, 15 Jul 2017 22:51:35 +0000 (23:51 +0100)]
time: Handle SIGINFO in time(1)

SIGINFO printing the time the given command is running.

Taken-From: FreeBSD r158560

8 days agotime: Use close-on-exec instead of fclose() in the child process.
Markus Pfeiffer [Sat, 15 Jul 2017 21:58:07 +0000 (22:58 +0100)]
time: Use close-on-exec instead of fclose() in the child process.

Taken-From: FreeBSD r244034

8 days agotime: FreeBSD r169346
Markus Pfeiffer [Sat, 15 Jul 2017 22:49:39 +0000 (23:49 +0100)]
time: FreeBSD r169346

- Cast to intmax_t to print tv_sec in struct timeval.
- Avoid shadowing a global variable with a function argument.

8 days agotime: Close an output file -o flag opened before execvp(3) in a child.
Markus Pfeiffer [Sat, 15 Jul 2017 21:38:44 +0000 (22:38 +0100)]
time: Close an output file -o flag opened before execvp(3) in a child.

Taken-From: FreeBSD r157796

8 days agopthread: Add pthread_getthreadid_np() function, bump __DragonFly_version.
Imre Vadász [Sat, 15 Jul 2017 09:13:36 +0000 (11:13 +0200)]
pthread: Add pthread_getthreadid_np() function, bump __DragonFly_version.

Using pthread_getthreadid_np() can directly use the thread-ID value that is
already cached in the pthread_t struct.

Partly Taken-From: FreeBSD

9 days agoifnet: Fix typo.
Sascha Wildner [Sat, 15 Jul 2017 08:31:29 +0000 (10:31 +0200)]
ifnet: Fix typo.

11 days agoDefine __* symbols for the malloc(3) functions to make wrapping easier.
Imre Vadász [Sun, 9 Jul 2017 12:08:38 +0000 (14:08 +0200)]
Define __* symbols for the malloc(3) functions to make wrapping easier.

This should match what FreeBSD and other systems do. Where the __* variants
always refer to the libc function, but the actual malloc(), free() etc.
symbols can be overrided by a malloc wrapper.

11 days agoResolve issue with libusb C++ header file inclusion.
Imre Vadász [Sat, 1 Jul 2017 20:42:48 +0000 (22:42 +0200)]
Resolve issue with libusb C++ header file inclusion.

Taken-From: FreeBSD (svn r302171)

11 days agoImplement libusb_hotplug_register_callback() and _deregister_callback().
Imre Vadász [Sat, 1 Jul 2017 20:37:03 +0000 (22:37 +0200)]
Implement libusb_hotplug_register_callback() and _deregister_callback().

  Implement libusb_hotplug_register_callback() and
  libusb_hotplug_deregister_callback() for the LibUSB v1.0 API and
  update the libusb(3) manual page.

Taken-From: FreeBSD (svn r302080)

13 days agoifnet: Log rarely used ifnet address destruction.
Sepherosa Ziehau [Tue, 11 Jul 2017 02:15:45 +0000 (10:15 +0800)]
ifnet: Log rarely used ifnet address destruction.

13 days agoifnet: Break long lines.
Sepherosa Ziehau [Tue, 11 Jul 2017 02:11:54 +0000 (10:11 +0800)]
ifnet: Break long lines.

13 days agoifnet: ifa_addr should always be configured.
Sepherosa Ziehau [Tue, 11 Jul 2017 02:06:29 +0000 (10:06 +0800)]
ifnet: ifa_addr should always be configured.

13 days agoifnet: Delete INET address should not fail; panic upon failure.
Sepherosa Ziehau [Tue, 11 Jul 2017 02:03:57 +0000 (10:03 +0800)]
ifnet: Delete INET address should not fail; panic upon failure.

This helps catch the root cause of a tun(4) related crash.

Reported-by: dillon
13 days agolibthread_xu: Some small fixes.
Sascha Wildner [Mon, 10 Jul 2017 17:56:19 +0000 (19:56 +0200)]
libthread_xu: Some small fixes.

* Add some parentheses for readability.

* 'count' is already unsigned, so remove useless <0 check.

2 weeks agoipflow: Unroll the first iteration of the hash generation loop.
Sepherosa Ziehau [Mon, 10 Jul 2017 06:27:06 +0000 (14:27 +0800)]
ipflow: Unroll the first iteration of the hash generation loop.

Right shifting 32 bits w/ 32 bits is undefined behaviour.

Reported-by: swildner
2 weeks agokernel: Remove old unused #defines in kern_lock.c
Sascha Wildner [Sun, 9 Jul 2017 19:35:51 +0000 (21:35 +0200)]
kernel: Remove old unused #defines in kern_lock.c

The code using them was removed in 2003 (8a8d5d85f4fb81fc5b1dd4).

Repoted-by: Mateusz Guzik (mjg_)
2 weeks agokernel/acpi: Untangle the wakecode generation during buildkernel.
Sascha Wildner [Sat, 8 Jul 2017 21:18:23 +0000 (23:18 +0200)]
kernel/acpi: Untangle the wakecode generation during buildkernel.

* Use file2c instead of hexdump and remove hexdump from the bootstrap
  tools.

* Remove the nested make invocation and the genwakecode.sh script
  too. Instead, do all the steps from acpica's Makefile and
  sys/conf/files.

* Finally, comment it all out because right now all of this isn't
  used.

* This commit also silences a "Object directory not changed from
  original" make warning.

Reported-by: zrj
Based-on:    FreeBSD

2 weeks agosshlockout - Also lockout on max authentication attempts
Matthew Dillon [Sat, 8 Jul 2017 17:38:26 +0000 (10:38 -0700)]
sshlockout - Also lockout on max authentication attempts

* Also lockout on max authentication attempts, because its really annoying
  to have log files filled with them.

2 weeks agoUnbreak VKERNEL64 after apple_gmux module addition.
zrj [Sat, 8 Jul 2017 12:12:04 +0000 (15:12 +0300)]
Unbreak VKERNEL64 after apple_gmux module addition.

Better and more flexible DEV_SUPPORT checking logic is needed.
For now just fix the build.

2 weeks agokernel: Let thread IDs start at 1 instead of 0.
Sascha Wildner [Sat, 8 Jul 2017 09:19:19 +0000 (11:19 +0200)]
kernel: Let thread IDs start at 1 instead of 0.

This is helpful in various places, for example Chromium.

Reported-by: ivadasz
Submitted-by: sephe
Approved-by: dillon
2 weeks agosbin/hammer: Drop rerundant ()
Tomohiro Kusumi [Sun, 2 Jul 2017 20:01:40 +0000 (23:01 +0300)]
sbin/hammer: Drop rerundant ()

2 weeks agosbin/hammer: Fix get_buffer_data()'s wrong xor for undo buffer caching
Tomohiro Kusumi [Sat, 24 Jun 2017 23:17:09 +0000 (02:17 +0300)]
sbin/hammer: Fix get_buffer_data()'s wrong xor for undo buffer caching

As mentioned in 830ab40e
"sbin/hammer: Redo e4323571 partly (after reverted by 03d5db37)",
830ab40e (originally by e4323571) fixed a bug for get_buffer_data()
wrongly taking xor of zone-X offset and zone-2 offset, where X is
one of the direct zones other than zone-2.

This commit fixes it for indirect zone which is zone-3 (and only
zone-3 in this case). The reason zone-3 being different is because
zone-3 to zone-2 translation isn't direct mapped, but instead the
volume header has a pointer to big-blocks that belong to zone-3.

Also see 0942cbbc which made this xor bug clear.

2 weeks agosbin/hammer: Move cache to tailq end when get_buffer_data() has a valid cache
Tomohiro Kusumi [Sun, 2 Jul 2017 18:30:08 +0000 (21:30 +0300)]
sbin/hammer: Move cache to tailq end when get_buffer_data() has a valid cache

This is the same as what get_buffer() does when new allocation
is not needed. This hasn't been done in get_buffer_data() when
the given non NULL buffer is the one to look for.

This seems to make newfs_hammer a bit faster, as the i/o size is
normally large enough to invoke eviction of HAMMER userspace buffer
cache while running, starting from the head of the tailq.

-- before this commit
 # for x in 1 2 3 4 5; do
 > (time newfs_hammer -L TEST /dev/da1 /dev/da2 /dev/da3 > /dev/null) 2>&1 | grep real
 > done
 real    0m20.291s
 real    0m20.574s
 real    0m22.347s
 real    0m21.562s
 real    0m20.991s

-- with this commit
 # for x in 1 2 3 4 5; do
 > (time newfs_hammer -L TEST /dev/da1 /dev/da2 /dev/da3 > /dev/null) 2>&1 | grep real
 > done
 real    0m18.023s
 real    0m18.064s
 real    0m18.104s
 real    0m17.646s
 real    0m18.310s

2 weeks agosys/vfs/hammer: Fix a comment on nresolving PFS
Tomohiro Kusumi [Sat, 24 Jun 2017 21:56:58 +0000 (00:56 +0300)]
sys/vfs/hammer: Fix a comment on nresolving PFS

On nresolving a PFS, the entry name to be resolved is the PFS itself,
whether it's pointed to by a symlink or not.

Also note that a PFS doesn't necessarily require a symlink to point
to itself. A symlink is used only because the PFS itself isn't visible
to userspace via readdir(2) (i.e can't see with ls without a symlink...).

2 weeks agosys/vfs/hammer: Drop wrong info on inode# from hammer(5)
Tomohiro Kusumi [Sat, 24 Jun 2017 19:38:42 +0000 (22:38 +0300)]
sys/vfs/hammer: Drop wrong info on inode# from hammer(5)

PFS has nothing to do with namespace of inode#.

The only exception is the root inode# for PFS including PFS#0, which
are all 1. Another exceptional case is a master PFS and its slave PFS,
where corresponding files/dirs have the same inode#.

2 weeks agoipfw: Increate FIN states life time.
Sepherosa Ziehau [Thu, 6 Jul 2017 01:14:03 +0000 (09:14 +0800)]
ipfw: Increate FIN states life time.

So they will not be ripped prematurely, which may prevent FIN
retransmission from working.

2 weeks agoipfw: Don't allow state allocation to fail and use M_INTWAIT for states
Sepherosa Ziehau [Thu, 6 Jul 2017 00:39:57 +0000 (08:39 +0800)]
ipfw: Don't allow state allocation to fail and use M_INTWAIT for states

2 weeks agokernel - Automatically downscasle NPROC resource limit
Matthew Dillon [Wed, 5 Jul 2017 16:07:06 +0000 (09:07 -0700)]
kernel - Automatically downscasle NPROC resource limit

* Downscale the NPROC resource limit based on fork and chroot depth, up
  to 50%, and also make the limit apply to root processes.  This is intended
  to be a poor-man's safety, preventing run-away (root or other) process
  creation from completely imploding a system.

* Each level of fork() downscales the NPROC resource limit by 1/3%,
  capped at 32 levels (~10%)

* Each chroot (including that made by a jail) downscales the NPROC
  resource limit by 10%, up to 40%.

2 weeks agoRevert "Always use unix line endings"
zrj [Wed, 5 Jul 2017 10:05:19 +0000 (13:05 +0300)]
Revert "Always use unix line endings"

This reverts commit 74d54042dbade9a0b2e5830b9645fd12ebc978f4.

While Eitan Adler intension is understandable, it was done without normalizing
line endings in the repo first nor checking for contrib/ sources.
Global rule applied even for the binary files.

Discussed-with: swildner

2 weeks agosocket: Allow root to pass large buffer to getsockopt.
Sepherosa Ziehau [Wed, 5 Jul 2017 00:27:36 +0000 (08:27 +0800)]
socket: Allow root to pass large buffer to getsockopt.

This fixes IP_FW_GET with large amount of states; e.g. 30K~60K states.

2 weeks agoBump __DragonFly_version after PTHREAD_STACK_MIN increase
John Marino [Tue, 4 Jul 2017 17:20:06 +0000 (12:20 -0500)]
Bump __DragonFly_version after PTHREAD_STACK_MIN increase

2 weeks agoFix mixed line endings.
zrj [Tue, 4 Jul 2017 07:43:14 +0000 (10:43 +0300)]
Fix mixed line endings.

2 weeks agopthreads - Change PTHREAD_STACK_MIN
Matthew Dillon [Tue, 4 Jul 2017 02:58:19 +0000 (19:58 -0700)]
pthreads - Change PTHREAD_STACK_MIN

* Change PTHREAD_STACK_MIN from 1024 to 16384.  Most other platforms
  seems to use 16384.  Even 4096 can cause rtld failures.

* Fixes 'node', which defaults to configuring the pthreads stacksize to
  PTHREAD_STACK_MIN and then proceeded to implode.

Reported-by: tautology
2 weeks agokernel/acpica: Better check AcpiOsPredefinedOverride()'s InitVal argument.
Sascha Wildner [Mon, 3 Jul 2017 21:20:04 +0000 (23:20 +0200)]
kernel/acpica: Better check AcpiOsPredefinedOverride()'s InitVal argument.

Taken-from: FreeBSD

2 weeks agokernel/acpica: ACPI_THREAD_ID is unsigned.
Sascha Wildner [Mon, 3 Jul 2017 21:06:44 +0000 (23:06 +0200)]
kernel/acpica: ACPI_THREAD_ID is unsigned.

2 weeks agokernel/acpica: Remove no longer needed #include.
Sascha Wildner [Mon, 3 Jul 2017 19:09:46 +0000 (21:09 +0200)]
kernel/acpica: Remove no longer needed #include.

2 weeks agokernel/acpica: Return curthread as thread id from AcpiOsGetThreadId().
Sascha Wildner [Mon, 3 Jul 2017 18:53:23 +0000 (20:53 +0200)]
kernel/acpica: Return curthread as thread id from AcpiOsGetThreadId().

Discussed-with: ivadasz

3 weeks agoipfw: Remove context generation; the race it tries to fix no longer exists
Sepherosa Ziehau [Sun, 2 Jul 2017 18:40:20 +0000 (02:40 +0800)]
ipfw: Remove context generation; the race it tries to fix no longer exists

It was intend to fix the race when the configuration was running in the
deleted ifnet threads; now the configuration is running in the netisrs.

3 weeks agoSync ACPICA with Intel's version 20170629.
Sascha Wildner [Sat, 1 Jul 2017 10:08:04 +0000 (12:08 +0200)]
Sync ACPICA with Intel's version 20170629.

We skipped 20170531 due to a regression in the processing of resource
descriptors (see https://bugs.acpica.org/show_bug.cgi?id=1391) which
is fixed in 20170629.

* Support added for ACPI 6.2. Specification available at uefi.org.

* Fixes in ACPI table verification, signature validation, mutexes.

* Numerous other fixes and additions.

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

3 weeks agokernel/acpi: Call AcpiInitializeSubsystem() before AcpiInitializeTables().
Sascha Wildner [Sat, 1 Jul 2017 09:46:29 +0000 (11:46 +0200)]
kernel/acpi: Call AcpiInitializeSubsystem() before AcpiInitializeTables().

Per chapter "Required ACPICA Initialization Sequence" of the ACPICA
Programmer Reference.

Uncovered by recent table handling changes in ACPICA 20170629.

3 weeks agoroute: Cache align statistics.
Sepherosa Ziehau [Fri, 30 Jun 2017 01:23:57 +0000 (09:23 +0800)]
route: Cache align statistics.

Though these statistics are rarely updated; better safe the sorry.

Since it changes userland visible structure size, bump
__DragonFly_version.

3 weeks agoispfw.4: Remove extra .Pp
Sascha Wildner [Fri, 30 Jun 2017 08:44:23 +0000 (10:44 +0200)]
ispfw.4: Remove extra .Pp

3 weeks agonetinet: Static assert TCP/UDP/IP stats are cache line aligned.
Sepherosa Ziehau [Fri, 30 Jun 2017 00:37:25 +0000 (08:37 +0800)]
netinet: Static assert TCP/UDP/IP stats are cache line aligned.

3 weeks agokmalloc: Reduce ks_loosememuse update frequency.
Sepherosa Ziehau [Thu, 29 Jun 2017 19:39:32 +0000 (03:39 +0800)]
kmalloc: Reduce ks_loosememuse update frequency.

ks_loosememuse is shared by all CPUs, so this commit is intended to
reduce negative effect of cache pollution due to high ks_loosememuse
update frequency.

3 weeks agokernel/hptrr: Oops, fix some whitespace.
Sascha Wildner [Thu, 29 Jun 2017 19:34:53 +0000 (21:34 +0200)]
kernel/hptrr: Oops, fix some whitespace.

3 weeks agokernel: Sync hptrr(4) with FreeBSD.
Sascha Wildner [Thu, 29 Jun 2017 19:31:42 +0000 (21:31 +0200)]
kernel: Sync hptrr(4) with FreeBSD.

* A number of locking fixes, no longer grabs Giant in the ioctl() method
  (not relevant to us) and when scanning the bus. Also set D_MPSAFE and
  INTR_MPSAFE.

* Use bus_dmamap_load_ccb(). Thanks, sephe!

* Additional fixes supplied by HighPoint.

* Fix some typos in comments.

3 weeks agokernel/isp: Unify firmware handling with the rest of the system.
Jan Sucan [Sun, 25 Jun 2017 10:27:24 +0000 (10:27 +0000)]
kernel/isp: Unify firmware handling with the rest of the system.

* Convert firmware binary data from C arrays in a header files to
  uuencode .uu files. Byte order of the firmware image is
  little-endian. As far as DragonFly BSD supports only little-endian
  architectures it's ok. But in case of a big-endian architecture the
  byte order must be changed before firmware is processed by the isp
  driver.

* Move the .uu images to a sys/contrib/dev/isp.

* Add a script for conversion of firmware stored in arrays in the C
  header files to .uu files. This is for getting the firmware changes
  from the other BSD systems more easily.

* Remove use of ispfw module that contains firmwares for all of the
  isp.4 driver devices. User can pick a module for a particular device
  instead of having firmwares for all of the devices loaded.

* Document that the kitchen sink ispfw.ko module with all firmware is
  gone.

Submitted-by: Jan Sucan
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/3044>

3 weeks agokmalloc: Avoid code duplication.
Sepherosa Ziehau [Thu, 29 Jun 2017 01:37:26 +0000 (09:37 +0800)]
kmalloc: Avoid code duplication.

3 weeks agokmalloc: Minor style changes; no functional changes.
Sepherosa Ziehau [Thu, 29 Jun 2017 01:14:41 +0000 (09:14 +0800)]
kmalloc: Minor style changes; no functional changes.

3 weeks agobusdma: Add bus_dmamap_load_ccb; ease driver porting from FreeBSD.
Sepherosa Ziehau [Thu, 29 Jun 2017 00:20:22 +0000 (08:20 +0800)]
busdma: Add bus_dmamap_load_ccb; ease driver porting from FreeBSD.

3 weeks agokmalloc: Minor style changes; no functional changes.
Sepherosa Ziehau [Thu, 29 Jun 2017 00:02:44 +0000 (08:02 +0800)]
kmalloc: Minor style changes; no functional changes.

3 weeks agokmalloc: Update comment
Sepherosa Ziehau [Wed, 28 Jun 2017 23:39:50 +0000 (07:39 +0800)]
kmalloc: Update comment

3 weeks agomalloc: Make # of calls statistic per-cpu.
Sepherosa Ziehau [Tue, 27 Jun 2017 23:13:22 +0000 (07:13 +0800)]
malloc: Make # of calls statistic per-cpu.

While I'm here, remove unused fields from malloc_type.

Bump __DragonFly_version.

3 weeks agoipfw3_nat: move housekeeping into callout func
Bill Yuan [Mon, 26 Jun 2017 15:41:26 +0000 (23:41 +0800)]
ipfw3_nat: move housekeeping into callout func

3 weeks agolibalias: pointer for house keeping func
Bill Yuan [Mon, 26 Jun 2017 15:31:59 +0000 (23:31 +0800)]
libalias: pointer for house keeping func

3 weeks agoipfw3_nat: callout func for nat record cleaning
Bill Yuan [Mon, 26 Jun 2017 15:18:38 +0000 (23:18 +0800)]
ipfw3_nat: callout func for nat record cleaning

3 weeks agoipfw3_nat: new sysctl node 'cleanup_interval'
Bill Yuan [Mon, 26 Jun 2017 15:08:48 +0000 (23:08 +0800)]
ipfw3_nat: new sysctl node 'cleanup_interval'

3 weeks agoipfw3_nat: move func prototype into header
Bill Yuan [Mon, 26 Jun 2017 15:03:36 +0000 (23:03 +0800)]
ipfw3_nat: move func prototype into header

3 weeks agolibalias: cleanup
Bill Yuan [Mon, 26 Jun 2017 14:56:16 +0000 (22:56 +0800)]
libalias: cleanup

4 weeks agoif: Implement classq_concat()
Sepherosa Ziehau [Sun, 25 Jun 2017 20:13:03 +0000 (04:13 +0800)]
if: Implement classq_concat()

4 weeks agotcp: Disable NCR on link local network by default.
Sepherosa Ziehau [Sun, 25 Jun 2017 19:07:41 +0000 (03:07 +0800)]
tcp: Disable NCR on link local network by default.

4 weeks agotcp: Move rmx based RTT setup out of tcp_mss().
Sepherosa Ziehau [Sun, 25 Jun 2017 18:37:57 +0000 (02:37 +0800)]
tcp: Move rmx based RTT setup out of tcp_mss().

And rename tcp_mss() to tcp_rmx_init().

4 weeks agokernel: Don't include <sys/mutex.h> in some drivers that don't need it.
Sascha Wildner [Sat, 24 Jun 2017 20:45:53 +0000 (22:45 +0200)]
kernel: Don't include <sys/mutex.h> in some drivers that don't need it.

4 weeks agotcp: Reindent a bit.
Sepherosa Ziehau [Fri, 23 Jun 2017 01:16:56 +0000 (09:16 +0800)]
tcp: Reindent a bit.

4 weeks agoRevert "tcp: Fix comment, while I'm here."
Sepherosa Ziehau [Fri, 23 Jun 2017 08:40:05 +0000 (16:40 +0800)]
Revert "tcp: Fix comment, while I'm here."

This reverts commit 0358cc7b162d3691aa84a06d67472c3947a7157d.

The "feasible timer" is 2 ticks; so it will not expire too earlier:

      X    Y
 +....+....+
     A
     |
     set timer

If tick is 1, timer will expire too earlier (1/5 tick later), 2 ticks
obviously are better choice and safe here.

4 weeks agotcp: Fix comment, while I'm here.
Sepherosa Ziehau [Thu, 22 Jun 2017 23:13:17 +0000 (07:13 +0800)]
tcp: Fix comment, while I'm here.

4 weeks agotcp: Fix comment, which I'm here.
Sepherosa Ziehau [Thu, 22 Jun 2017 22:55:28 +0000 (06:55 +0800)]
tcp: Fix comment, which I'm here.

4 weeks agotcp: Reduce minimum retransmit timeout to 190ms.
Sepherosa Ziehau [Thu, 22 Jun 2017 22:06:31 +0000 (06:06 +0800)]
tcp: Reduce minimum retransmit timeout to 190ms.

Increase retransmit timeout slop to ~160ms and reduce TCPTV_MIN
to ~30ms.  Bring in dillon's comment about TCPTV_MIN reduction
and retransmit timeout slop from FreeBSD.  And make sure that
tcp_rexmit_min is valid for a low kern.hz setting.

4 weeks agotcp: Don't depend on PR_FASTHZ.
Sepherosa Ziehau [Thu, 22 Jun 2017 20:25:58 +0000 (04:25 +0800)]
tcp: Don't depend on PR_FASTHZ.

TCP timers are callout based for more than one decade.

4 weeks agoem/emx: Disable flow control by default.
Sepherosa Ziehau [Thu, 22 Jun 2017 19:11:45 +0000 (03:11 +0800)]
em/emx: Disable flow control by default.

4 weeks agoigb: Disable flow control by default.
Sepherosa Ziehau [Thu, 22 Jun 2017 19:09:27 +0000 (03:09 +0800)]
igb: Disable flow control by default.