igb: Improve tiny packets reception performance on low frequency CPU

Update RDT register a little bit often, so the RX descriptors are made
to the NIC chip on a more regularly base:
The RDT register is updated after certain amount of RX descriptors are
added to the hardware RX ring.  The default value of the amount of RX
descriptors are 32.  This value could be further tuned by per-device
sysctl node hw.igbX.rxY_wreg.

The default value improves tiny packets reception performance w/ 82576
on AMD970@800Mhz under interrupt mode for single stream (1.28Mpps ->
1.48Mpps) and it does not increase CPU usage on AMD970@3500Mhz (CPU
usage stays @36%).

This commit does _not_ seem to affect the tiny packet reception
performance when the workload are evenly distributed to all CPUs.
pktgen: Fix csum_data setting for in_delayed_csum()
kernel: Add cpu_wbinvd_on_all_cpus()

This function invalidates cache on all active cpus

With-help-from: vsrinivas
bnx: Remove redundant TX/RX index reading from polling code
igb: The RDT writing thresh should be tested w/ ">=" instead of ">"
bnx: Obey the RX polling count
agp: A rewrite of the i810 bits of the driver

New driver supports operations required by GEMified i915.ko. It
also attaches to SandyBridge and IvyBridge CPU northbridges now.

Obtained-from: FreeBSD
agp: Add PCI ID for Ivy Bridge GT2 server variant
agp: Do not limit attachment to primary devices

* PCIS_DISPLAY_VGA really corresponds to the first graphic device
  initialized by the BIOS at boot time.

* Recent Intel chips contain both AGP and graphic hardware, identified by
  the same PCI ids

* The agp device thus has no associated PCIS_DISPLAY_VGA flag when the
  Intel graphic device is not set as primary display in BIOS

* Tested with:
  - ATI Radeon X550 (primary graphic card)
  - Intel Xeon E3-1245v2 (agp device)
Merge branch 'master' into gsocdrm_alter
bnx: Avoid unnecessary local scope stack variable resetting
polling: Add tunable for net.ifpoll.X.rx.user_frac
bge: Avoid unnecessary local scope stack variable resetting
bge: Obey the RX polling count
Fix buildkernel with 'options KTR' in the config.
kernel - Fix debug output label

* Fix "rflags" to "eflags" in i386 kprintf() for smp_invltlb() debugging.

Reported-by: swildner
kernel - Fix bug (not reached in normal operation) in vm_map_set_wired_quick()

* Fix a bug where vm_map_set_wired_quick() only operated on the first
  vm_map_entry of a slab, and would panic if there were more.

* Slab allocations are only going to have one vm_map_entry anyway so the
  bug was never hit.  But we fix it anyway.
kernel - Make UFS ihash table per-mount

* Make the UFS ihash table per-mount.

* Scale down the size of the hash table a bit so we have ~4 inodes per
  bucket instead of ~1.  Works fine for a single mount and this way
  multiple UFS mounts don't make [as] bloated kmalloc calls.

Submitted-by: vsrinivas
kernel - Remove unnecessary mplock from ata I/O path

* ata_finish() doesn't need the MP Lock; moving it from taskqueue_swi
  to taskqueue_swi_mp will make sure it's not taken.

* Note that taskqueue_swi(_mp) will be processed when this ithread
  attempts to switch back to the thread it preempted. This means that
  taskqueue_swi(_mp) processing exclude processing further interrupts
  on the ithread while they're running. This may not be desirable and
  is different than taskqueue_swi / swi_* / setsoft* in FreeBSD 4.x.

Submitted-by: vsrinivas
kernel - Fix softupdates panic with UFS

* If getdirtybuf() was unable to lookup a dirty buffer from the
  flush_pagedep_deps path, we need to retry the lookup, rather than
  proceeding through processing the diradd.

Reported-by: marino@
Submitted-by: vsrinivas