- Provide igb_get_counter() to return counters that are not collected,
  but taken from hardware.
- Mechanically convert to if_inc_counter() the rest of counters.
- Provide vte_get_counter() to return counters that are not collected,
  but taken from hardware.
- Mechanically convert to if_inc_counter() the rest of counters.
Mechanically convert to if_inc_counter().
- Provide txp_get_counter() to return counters that are not collected,
  but taken from hardware.
- Mechanically convert to if_inc_counter() the rest of counters.
- Provide wi_get_counter() to return counters that are not collected,
  but taken from hardware.
- Mechanically convert to if_inc_counter() the rest of counters.
Switch the defaults to not split the RLIMIT_STACK-sized initial thread
stack into the stacks of the created threads.  Add knob
LIBPTHREAD_SPLITSTACK_MAIN to restore the older behaviour.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 weeks
Expand the libthr(3) manpage to document knobs accepted by libthr.so
and explain some internal working of the library, neccessary to
understand the knobs effects.

Reviewed by:	bjk, pluknet
Sponsored by:	The FreeBSD Foundation
MFC after:	3 weeks
HBSD: more generic tunable validation

Signed-off-by: Oliver Pinter <oliver.pntr@gmail.com>
Fix ticks wrap issue of lowmem test in vm_pageout_scan

Reviewed by:	jhb (D818)
MFC after:	3 days
Sponsored by:	Multiplay
Fix the creation of the L2 cluster table for version 1. The blkofs
variable was assigned the image offset in bytes and not in blocks
(i.e. sectors). This had image_data() return FALSE, which meant that
we didn't assign a cluster when we needed and also meant that we
didn't write parts of the L2 table when we should have. The result
being that the actual data clusters were written at the wrong offset.

Improve support for QCOW version 2. We're having the right layout
and even know how many refcnt blocks we need. All we need to do is
populate the refcnt blocks for every cluster we write and allocate
a cluster when we need a new refcnt block. The allocation part is
tricky in that it'll interleave with the assignment of clusters to
L2 tables and data. Since version 2 is not quite done, keep it
compiled out for now.
Update the baseline for QCOW version 1. A bug was found that rendered
the baseline invalid.
Merge remote-tracking branch 'freebsd/master' into hardened/current/master
Merge remote-tracking branch 'freebsd/master' into hardened/current/hardening
Merge remote-tracking branch 'freebsd/master' into hardened/current/segvguard
Merge remote-tracking branch 'freebsd/master' into hardened/current/ptrace
Merge remote-tracking branch 'freebsd/master' into hardened/current/log
Merge remote-tracking branch 'freebsd/master' into hardened/current/userlandenhanced
Merge branch 'hardened/current/master' into hardened/current/unstable
Merge branch 'hardened/current/hardening' into hardened/current/unstable
Merge branch 'hardened/current/segvguard' into hardened/current/unstable