PC-BSD/trueos fd1567dsys/amd64/amd64 pmap.c machdep.c

Make lock-less delayed invalidation operational very early.

Apparently, there is more code trying to call pmap_remove() early,
mostly to free preloaded memory.  Instead of moving all deallocations
to the point where a scheduler is initialized, add missed setup of
thread0 di init at hammer_time().

The code in pmap_delayed_invl_start_u() is modified to not ever take
the thread lock if the thread priority is less or equal to PVM.  Since
thread0 starts at priority 0, and then is reset to PVM at
proc0_init(), this eliminates taking the thread lock during early
boot.

While there, fix off by one in comparision of the base priority.

Reported and tested by: bcran (previous version)
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      29 days
DeltaFile
+9-8sys/amd64/amd64/pmap.c
+7-0sys/amd64/amd64/machdep.c
+16-82 files

UnifiedSplitRaw