kernel - Add kern.gettimeofday_quick sysctl

* Add a sysctl that forces gettimeofday() to return a coarse timestamp
  instead of a fine-grained timestamp.

  This sysctl is mainly intended for performance debugging.
kernel - Enhance sysv semaphore performance

* Make the locks used by the semaphore module significantly more
  fine-grained.

* Reorganize the semaphore related structures significantly to
  reduce locking conflicts.

* Reduce overhead and improve performance for handling SEM_UNDO semops.
kernel - Enhance sysv semaphore performance (2)

* Change SEMMAP default from 30 to 128.  Also note that most other
  semaphore-related defaults were increased significantly in prior
  commits.
kernel - Implement segment pmap optimizations for x86-64 (6)

* Improve process exit.  When the last process referencing a shared
  anonymous memory VM object exits the kernel destroys the object
  and its shared pmap.

  Removal of pages from the shared pmap was causing the system to IPI
  EVERY cpu for EACH pte.  Needless to say this caused a process to take
  ~2 minutes to remove a ~6GB shared segment.  Optimize this case by
  not bothering the do the IPI/invlpg invalidations since the pmap is not
  actually active.

* This also applies to any exiting process.  When cleaning out the pmap
  we no longer invlpg each pte, since nobody is referencing the pmap except
  the current thread in the kernel doing the exit.  It will simply issue
  a cpu_invltlb() when it is all done.
ipcs - Fix kvm accesses for new semid structures

* semid_ds -> semid_pool, primarily.
kernel - remove bounds on buffer cache nbuf count for 64-bit

* Remove arbitrary 1GB buffer cache limitation

* Adjusted numerous 'int' fields to 'long'.  Even though nbuf is not
  likely to exceed 2 billion buffers, byte calculations using the
  variable began overflowing so just convert that and various other
  variables to long.

* Make sure we don't blow-out the temporary valloc() space in early boot
  due to nbufs being too large.

* Unbound 'kern.nbuf' specifications in /boot/loader.conf as well.
systat - remove bounds on buffer cache nbuf count for 64-bit

* Adjust systat to the new kernel reality.
kernel - fix builds

* Fix a few kprintf()'d %d -> %ld for nbufs.

Reported-by: vsrinivas
rtld: Don't call process_nodelete with NULL object pointer

If object loading and relocation fail, the obj pointer will be NULL when
then process_nodelete function is reached.  A crash will occur if the
function is called with a null pointer, so ensure that it doesn't.

Taken-from: FreeBSD SVN 239470 (20 Aug 2012)
hammer - Adjust record and dirtybuf limits to handle large buffer caches

* Adjust record and dirtybuf limits such that they don't blow up a hammer
  volume if the system's buffer cache is very large.
kernel - Add vm.read_shortcut_enable

* Add vm.read_shortcut_enable (disabled by default for now).  Set to 1 to
  enable this feature.

  This enables a helper function which HAMMER1 now uses to short-cut read()
  operations on files.  This feature only works on x86-64.

* When enabled this feature allows file read() requests to be satisfied
  directly from the VM page cache using lwbuf's, completely bypassing the
  buffer cache and also bypassing most of the VFS's VOP_READ code.

  The result is an approximate doubling of read() performance in cases
  where the buffer cache is too small to fit the hot data set, but the VM
  page cache is not.

  This feature is able to avoid the buffer cache and thus prevent buffer
  cycling within it which, due to the constant installation and
  deinstallation of pages in KVM cause a great deal of SMP page table
  page invalidations.
Update the pciconf(8) database.

September 14, 2012 snapshot from http://pciids.sourceforge.net/
em.4: Add some words about emx(4) and create MLINKS.
fortune(6)/mutex.9: s/is is/is/
msgport: Always save owner thread for threads' msgports

This unbreaks the assertion in dropmsg for spin msgport.  Also for shared
spin msgport don't allow dropmsg.

While im here, add comment for mp_dropmsg and adjust comment about mpu_td

Reported-by: pavalos@
Merge branch 'master' into gsocdrm_github