fastbulk - Rework and clean up the Makefile

* Rewrite the Makefile.  'make' with no arguments for more information.

* Proactively check and remove a dead /var/db/pkg directory after
  each build.
kernel - Do not allow the time to be set to { 0, 0 }

* The settimeofday() system call now fails with EINVAL if passed
  a { 0, 0 } tv structure.

* No need to allow this case, and it may fix some weird pkgsrc bulkbuild
  issues.  For some reason something in the bulk build calls settimeofday()
  with { 0, 0 } when linux.ko/linprocfs are not loaded.
kernel - Implement Errata 721 for 32-bit kernels too

* The AMD errata 721 definitely happens on cpus running in cpu bit mode
  but I got a weird kernel crash on 32-bit (which I don't have time to
  follow up) so I decided, what the heck, might as well do it on 32-bit
  boxes too.
kernel - Fix pmap_remove() issue.

* When the inner loop of pmap_remove() broke out due to pmap_remove_pte()
  blocking it 'jumped' the sindex to pdnxt, thus any remaining pages in
  that page table page would get skipped.

* pmap_remove_pte() and friends used to return non-zero if they 'blocked'.
  Unfortunately they could actually block whether they returned 0 or non-zero,
  causing the problem.  Remove the check entirely.

* Adjust misc functions which we no longer need the return value for.

* I don't know if this had anything to do with the wire_count panic.
  The failure mode should have been caught by numerous other assertions
  in the code but wasn't.  get_ptbase() relies on a test of pmap->pm_cached
  to determine if a page directory page mapping changes so it should not
  have been possible for it to continue the loop and access a stale ptep.

  If it were possible it might account for a wire_count panic later on but
  it doesn't seem like it should be possible.
fastbulk - Exit w/success on more conditions

* If the binary package build succeeds but the pkg_add fails it is likely
  due to an install conflict.  Exit w/success for this case (since our goal
  is to generate the binary package, we succeeded!).

* Do an early check to see if the binary package has already been built
  and exit immediately if it has.
usched_bsd4 - fix incorrect use of PINTERLOCKED tsleep

 * The first tsleep in sched_thread has not been interlocked, so it is
   not valid to call tsleep(..., PINTERLOCKED, ...).
usched_bsd4 - use wakeup_mycpu as appropriate

 * In the need_user_resched_remote we need to use wakeup_mycpu to avoid
   sending out IPIs triggering a deep IPI recursion panic.

 * In the setrunqueue case use wakeup_mycpu as an optimization, since we
   know that we are on the same CPU as the helper thread we want to wake
   up.

In-discussion-with: Matt Dillon
Reported-by: ftigeot
sysperf - Add tests for clock_gettime(CLOCK_*_FAST...) modes

* Add tests for some of the new clock_gettime() modes.
kernel - Add additional clock_gettime() modes

* Add the following:
	CLOCK_UPTIME		(same as MONOTONIC)
	CLOCK_UPTIME_PRECISE	(same as MONOTONIC)
	CLOCK_UPTIME_FAST	(faster, less precise)
	CLOCK_REALTIME_PRECISE	(same as REALTIME)
	CLOCK_REALTIME_FAST	(faster, less precise)
	CLOCK_MONOTONIC_PRECISE	(same as MONOTONIC)
	CLOCK_MONOTONIC_FAST	(faster, less precise)
	CLOCK_SECOND		(just returns 'time_second')

Taken-from: FreeBSD
Merge branch 'master' into gsocdrm_alter