kernel - Replace global vmobj_token with vmobj_tokens[] array
* Remove one of the two remaining major bottlenecks in the system, the
global vmobj_token which is used to manage access to the vm_object_list.
All VM object creation and deletion would get thrown into this list.
* Replace it with an array of 64 tokens and an array of 64 lists.
vmobj_token[] and vm_object_lists[]. Use a simple right-shift
hash code to index the array.
* This reduces contention by a factor of 64 or so which makes a big
difference on multi-chip cpu systems. It won't be as noticable on
single-chip (e.g. 4-core/8-thread) systems.
* Rip-out some of the linux vmstats compat functions which were iterating
the object list and replace with the pcpu accumulator scan that was
recently implemented for dragonfly vmstats.
* TODO: proc_token.