kernel/tmpfs: Make compiling tmpfs into the kernel optional.

If the user wants to build a kernel without tmpfs built in,
allow it to him.

Our GENERIC configs have 'options TMPFS', but even if it
isn't loaded or built into the kernel, it will be kldloaded
upon mount_tmpfs(8) via vfsload(3).

This behavior is the same with our other file systems: the
module will be autoloaded at the first mount -t <type> if
it isn't either in-kernel or already loaded.
ether: Don't manually packing up input mbufs

Since we use spin ports for netisrs now, we no longer need to explicitly
avoid IPI storm on input path.
tcp/sack: Move empty scoreboard updating into insert_block()
tcp/sack: Move scoreboard block start/end setup into alloc function

This paves way for further SACK scoreboard block allocation optimization
tcp/sack: Optimize scoreboard block allocation

Allocate SACK scoreboard block only if we can't extend the existing
one's right edge (end).

This commit could avoid ~70% SACK scoreboard block allocation on
leaf.dragonflybsd.org (11528032 updating, 8353353 reused) according
to the "netstat -s -f inet -p tcp" output as of today.  On my testing
sites, this commit could avoid 30%~50% SACK scoreboard block allocation.
tcp/sack: Further optimize scoreboard block allocation

Use one slot freed SACK scoreboard cache.

30minutes tests are conducted on a heavy congested real-life network path;
the new statistics:

  31254 SACK scoreboard updates
      2 overflows
      0 failures
      13392 records reused
      12703 records fast allocated

Before this commit, ~42% allocations are avoided (reused); after this commit,
~83% allocations are avoided (reused + fast allocated).
pci: Add definition for PCI express Link capabilities/control
em/emx: Update to Intel em-7.2.4

- Fix the max frame length settings for 82583 chips
- Workaround 82574 specification update errata #20.

Local changes:
- For 82574 specification update errata #20 workaround, we don't
  disable ASPM L1.  Disabling ASPM L1 is said to be unnecessary
  in the specification update.
em/emx: Add a note about why MSI-X should be not enable on 82574
cxm(4): Remove an unused file (opt_cxm.h) from the Makefile.
kernel: Clean up some module Makefiles.

Remove unneeded .PATHs and variables. Use ${.TARGET}.
Merge branch 'master' into gsocdrm_merger
kernel -- Per-mount threaded syncer infrastructure.

Do not shut down syncer thread when unmount fails.

Reminded-by: dillon@
kernel -- Enable threaded syncer for NFS mounts.

NFS mounts will now use a per-mount thread to complete periodic syncs on its
vnodes rather than using the system's syncer0.

Also remove a change that snuck in mistakenly to unmark syncer threads
as verbose.
Remove some unnecessary inclusions of <sys/cdefs.h> across the tree.
Merge branch 'master' into gsocdrm_alter
make.conf: Remove the unused LOADER_TFTP_SUPPORT variable.

We offer both the NFS and TFTP versions of pxeboot and loader since
2005 (see 423d6aa030d43ea1d66b0572688d0964c641c1b5) and since this
commit, the LOADER_TFTP_SUPPORT make.conf variable has been without
any effect.
if: Remove experimental ifnet.if_start related sysctls
VFS quota: add per mount-point global, uid and gid limit fields.
VFS accounting: fix vfs_register()

* Do not register per mount-point initialization and destruction
  functions if VFS accounting is not globally enabled.