kernel/802_11: Put a couple more ethstr[] under IEEE80211_DEBUG.
kernel/nexus: Remove some unneeded includes.
tcp/tso: Add per-device TSO aggregation size limit

- Prevent possible TSO large burst, when it is inappropriate (plenty of
  >24 segements bursts were observered, even when 32 parallel sending TCP
  streams are running on the same GigE NIC).
  TSO large burst has following drawbacks on a single TX queue, even on
  the devices that are multiple TX queues capable:
  o  Delay other senders' packet transmission quite a lot.
  o  Has negative effect on TCP receivers, which sends ACKs.
  o  Cause buffer bloat in software sending queues, whose upper limit is
     based on "packet count".
  o  Packet scheduler's decision could be less effective.
  On the other hand, TSO large burst could improve CPU usage.
- Improve fairness between multiple TX queues on the devices that are
  multiple TX queues capable but only fetch data on TSO large packet
  boundary instead of TCP segment boundary.

Drivers could supply their own TSO aggregation size limit.  If driver
does not set it, the default value is 6000 (4 segments if MTU is 1500).
The default value increases CPU usage a little bit: on i7-2600 w/ HT
enabled, single TCP sending stream, CPU usage increases from 14%~17%
to 17%~20%.

User could configure TSO aggregation size limit by using ifconfig(8):
ifconfig ifaceX tsolen _n_
tcp: Improve sender-sender and sender-receiver fairness on the same netisr

Yield to other senders or receivers on the same netisr if the current TCP
stream has sent certain amount of segments (currently 4) and is going to
burst more segments.  sysctl net.inet.tcp.fairsend could be used to tune
how many segements are allowed to burst.  For TSO capable devices, their
TSO aggregate size limit could also affect the number of segments allowed
to burst.  Set net.inet.tcp.fairsend to 0 will allow single TCP stream to
burst as much as it wants (the old TCP sender's behaviour).

"Fairsend" is performed at the places that do not affect segment sending
during congestion control:
- User requested output path
- ACK input path

Measured improvement in the following setup:

+---+            +---+
|   |<-----------| B |
|   |            +---+
| A |
|   |            +---+
|   |----------->| C |
+---+            +---+

A (i7-2600, w/ HT enabled), 82571EB
B (e3-1230, w/ HT enabled), 82574L
C (e3-1230, w/ HT enabled), 82574L
The performance stats are gathered from 'systat -if 1'

When A runs 8 TCP senders to C and 8 TCP receivers from B, sending
performance are same ~975Mbps, however, the receiving performance before
this commit stumbles between 670Mbps and 850Mbps; w/ "fairsend" receiving
performance stays at 981Mbps.

When A runs 16 TCP senders to C and 16 TCP receivers from B, sending
performance are same ~975Mbps, however, the receiving performance before
this commit goes from 960Mbps to 980Mbps; w/ "fairsend" receiving
performance stays at 981Mbps stably.

When there are more senders and receivers running on A, there is no
noticable performance difference on either sending or receiving between
non-"fairsend" and "fairsend", because senders are no longer being able
to do continuous large burst.

"Fairsend" also improves Jain's fairness index between various amount of
senders (8 ~ 128) a little bit (sending only tests).
Replace few more cases where %D format string is used.

Also remove a reference to %D in kvcprintf's comment.
kernel/amr: Extend the visibility of AMR_DEBUG.

Half the code was missing the setting of AMR_DEBUG in the config file
because its visibility was reduced to amr.c only.

Reported-by: tuxillo
kernel - Fix improper tmpfs resource limit check

* Fix an improper check that was causing tmpfs to blow up when used as
  backing store for a VN device.

Reported-by: tuxillo
udp6: Remove pcb from wildcard table before calling in_pcbconnect

DragonFly-bug: http://bugs.dragonflybsd.org/issues/2485
if: Update comment about polling cpuid ioctl variables, which is deprecated
sockio: Sort SIOC into numerical order

While im here, add comment about used SIOC in non-continuous SIOC block
ifconfig: IFF_OACTIVE and IFF_POLLING are gone
tcp: Add comment about "fairsend"
TOP wasn't reporting correctly CPU states without -M

Adding code to get averages and updating man page.

This commit fixes issue #2447
tcp: Limit new segements burst to 4 during extended limited transmit
Remove some more %D remains here and there.
m4.1: Remove some unneeded arguments to .Nm
Merge branch 'master' into gsocdrm_jfree
buildworld - Attempt to fix m4 bootstrapping issue

* Set the M4 environment variable to force the buildworld to use the
  bootstrap version of M4 in all passes.  This removes the need to
  manually build/install the m4 binary due to the recent major tools
  refresh.

* Force build ordering for some of the bootstrap utilities, particularly
  the m4 binary, so the binary is available to help build other bootstrap
  tools later on.
kernel - Do not allow (devfs) devices to be force-unmounted

* Do not force-unmount devfs devices.  Even more importantly, don't
  force-unmount devfs devices and then try to force-vflush them.

  Filesystems have always been responsible for flushing their underlying
  block devices.

  These situations occur during halt/reboot.

* Fixes at least one issue when hammer's volume-add is used to specify
  a block device in /dev which is then added to the root mount.  This
  created a situation where the /dev vs / unmount order breaks.

* Should also prevent e.g. the console or other vty hangers-on from being
  destroyed out from under active descriptors during a halt or reboot.
buildworld - Attempt to fix m4 bootstrapping issue (2)

* m4 depends on flex which exec's (depends on) m4.

* Change m4 to not depend on flex and reorder the [b]yacc build to run
  before m4.  M4's lex file is now manually generated and made part of
  the source archive, and the Makefile simply compiles the .c version
  instead of trying to run flex.

  Any future update to m4 will require it's lex file to be manually
  lex'd.  Too bad, that's the way it goes.  M4 is a piece of crap and
  flex is an even bigger piece of crap for needing to exec M4.  I'm not
  going to play with this stuff more than I need to to make things compile.

* Remove conditionals from m4 .y and .l files.  They were wrong because
  they weren't necessarily reflective of which lexer was being run,
  and now they aren't needed at all.