hammer - Add scoreboard file option

* Add -e <scoreboardfile> option for mirror-stream, so one can see the
  progress of mirror-streams running in the background.
hammer - Add ssh-remote directive

* Adds a feature that allows you to set up a command="..." prefix for a
  ssh key in your ~/.ssh/authorized_keys file that only runs the hammer
  utility and only with specific commands and filesystem paths.

  For example:

  command="/sbin/hammer ssh-remote mirror-read,mirror-write /path/" ssh-rsa...

  Currently requires a trailing '/' if you want to restrict the path to
  a subdirectory.  Multiple commands can be listed but the filesystem path
  restriction is only currently tested for mirror-read and mirror-write.

* This allows ssh to be used for mirroring without having to give shell
  access to the remote.
hammer(8): add HAMMER_RSH environment variable support.

Add support for a HAMMER_RSH environment variable which can be used
to select an alternate remote shell to be used for hammer remote operations,
change remote shell invocation to rsh(1) style '-l user host' instead of
ssh-style user@host to permit usage of rsh(1) as an alternate HAMMER_RSH
without the need for a wrapper script. Also change exec call of subshell
to use execvp instead of a hardcoded path to facillitate this change.

Update hammer.8 docs, along with minor formatting fix to environment
variable summary header sentence.
kernel: Remove some unused variables.
kernel: Remove unused headers.
kernel - Segment-align mmap and sysv_shm when possible

* Segment align mmap and sysv_shm mappings which are large enough
  and whos size is a multiple of the segment-size.

  NOTE: MAP_FIXED mappings will not be segment-aligned, but the
	optimization will sitll work if the passed address is already
	segment-aligned.

* This will allow them to be optimized automatically by
  machdep.pmap_mmu_optimize.
kernel - Implement segment pmap optimizations for x86-64

* Implement 2MB segment optimizations for x86-64.  Any shared read-only
  or read-write VM object mapped into memory, including physical objects
  (so both sysv_shm and mmap), which is a multiple of the segment size
  and segment-aligned can be optimized.

* Enable with sysctl machdep.pmap_mmu_optimize=1

  Default is off for now.  This is an experimental feature.

* It works as follows:  A VM object which is large enough will, when VM
  faults are generated, store a truncated pmap (PD, PT, and PTEs) in the
  VM object itself.

  VM faults whos vm_map_entry's can be optimized will cause the PTE, PT,
  and also the PD (for now) to be stored in a pmap embedded in the VM_OBJECT,
  instead of in the process pmap.

  The process pmap then creates PT entry in the PD page table that points
  to the PT page table page stored in the VM_OBJECT's pmap.

* This removes nearly all page table overhead from fork()'d processes or
  even unrelated process which massively share data via mmap() or sysv_shm.
  We still recommend using sysctl kern.ipc.shm_use_phys=1 (which is now
  the default), which also removes the PV entries associated with the
  shared pmap.  However, with this optimization PV entries are no longer
  a big issue since they will not be replicated in each process, only in
  the common pmap stored in the VM_OBJECT.

* Features of this optimization:

  * Number of PV entries is reduced to approximately the number of live
    pages and no longer multiplied by the number of processes separately
    mapping the shared memory.

  * One process faulting in a page naturally makes the PTE available to
    all other processes mapping the same shared memory.  The other processes
    do not have to fault that same page in.

  * Page tables survive process exit and restart.

  * Once page tables are populated and cached, any new process that maps
    the shared memory will take far fewer faults because each fault will
    bring in an ENTIRE page table.  Postgres w/ 64-clients, VM fault rate
    was observed to drop from 1M faults/sec to less than 500 at startup,
    and during the run the fault rates dropped from a steady decline into
    the hundreds of thousands into an instant decline to virtually zero
    VM faults.

  * We no longer have to depend on sysv_shm to optimize the MMU.

  * CPU caches will do a better job caching page tables since most of
    them are now themselves shared.  Even when we invltlb, more of the
    page tables will be in the L1, L2, and L3 caches.

* EXPERIMENTAL!!!!!
kernel - Implement segment pmap optimizations for x86-64 (1)

* Relax the mmap() size requirement when auto-aligning the address.
  Also auto-align to a segment boundary if the size is > 16 * SEG_SIZE.
  It previously only allowed size to be an exact multiple of SEG_SIZE.

* Some pages at the end won't be optimized, but the bulk of the mmap()
  will be.
kernel - Add sysctls and tunables for [ALT_]BREAK_TO_DEBUGGER, change
	 serial console

* Add kern.break_to_debugger and kern.alt_break_to_debugger sysctls and
  /boot/loader.conf tunables.

* Allows enabling of these features without having to specify the
  related options in the kernel config.

* Do not override current sio settings when checking, inputting, and
  outputing characters via the console functions.  The serial port
  will be set up initially according to the console specs.
kernel - Implement segment pmap optimizations for x86-64 (2)

* Reorder code to fix an assertion when a non-optimized PT belonging
  to the process pmap needs to be replaced by an optimized PT belonging
  to a shared pmap.

Reported-by: ftigeot
kernel: Use NULL instead of 0 for pointers, part 2/x.

Found-with: Coccinelle (http://coccinelle.lip6.fr/)
kernel: remove useless for (;;).

Discussed-with: dillon
Expand a comment in lwkt_switch().
Sync zoneinfo database with tzdata2012f from ftp://ftp.iana.org/tz/releases

* australasia (Pacific/Fiji): Fiji DST is October 21 through January 20
    this year.  (Thanks to Steffen Thorsen.)

* Theory: Correct a typo.
kernel - Implement segment pmap optimizations for x86-64 (3)

* Fix pmap optimization bugs triggered by XORG (startx) and postgres/mmap

* The simple-mode pmaps embedded in VM objects do not have the PML4 or PDP
  layer.  This caused pmap_scan() to miss pages, resulting in an assertion
  and panic during object frees if the objects were large enough.

* Improve postgres 9.2/mmap, still more work to go.
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
kernel - Implement segment pmap optimizations for x86-64 (4)

* Fix pmap_pte_quick() when it is called on a VM object's simple pmap.
  Fixes a panic during postgres init w/ postgres/mmap.  Simple pmaps
  do not have PDP or PML4 pages or pv_entry's, only from PD on down.

* Do some minor API work on the pte-indexing functions.
kernel - Implement segment pmap optimizations for x86-64 (5)

* Fix self-deadlock in pmap_remove_*() sequence.  The sequence calls
  pmap_remove_callback() -> pmap_release_pv(proc_pt_pv) but the caller
  may already be holding the parent, proc_pd_pv, locked.  If
  pmap_release_pv() needs to get the parent it deadlocks.

  Fixed by passing the parent into pmap_release_pv() for this case.
ls - Add -I to reverse -A

* ls implies -A when run as root. Add the -I option
  which disables this behavior.

* Note that -A and -I will override each other on the
  command line.
pci/mptable: Let parent route the interrupt before using the intline

Tested-by: swildner@