kernel - Fix panic in zget() during heavy paging
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 23 Mar 2017 01:43:08 +0000 (18:43 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 23 Mar 2017 16:16:36 +0000 (09:16 -0700)
commit9d8f4371257932a265ab01e0318767a7c71c90e4
treebd2b9b60f9dcfaebbf28285d636cf6625c15dd61
parent8563751463e34cf480f7899002608e4a569f3c59
kernel - Fix panic in zget() during heavy paging

* Fix a panic that can occur in zget() when a large number of swap info
  blocks are needed from the swap_zone.

  Fix by reformulation how new items are added to the zone.  This is a
  non-critical code path, but we make it a bit more SMP friendly anyway.

* Use the opportunity to get rid of the VM object ZONE_INTERRUPT uses.
  The two that are left are never destroyed, so there's no need to track
  the pages in an object.

Reported-by: tkusumi
sys/platform/pc64/x86_64/pmap.c
sys/platform/vkernel64/platform/pmap.c
sys/vm/vm_map.c
sys/vm/vm_zone.c
sys/vm/vm_zone.h