git: kernel - Fix panic in zget() during heavy paging

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Mar 22 19:08:55 PDT 2017


commit e16c650d787872d60f6ca3d20a7f1bc1e0c19261
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Mar 22 18:43:08 2017 -0700

    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

Summary of changes:
 sys/platform/pc64/x86_64/pmap.c        |   3 +-
 sys/platform/vkernel64/platform/pmap.c |   3 +-
 sys/vm/vm_map.c                        |   4 +-
 sys/vm/vm_zone.c                       | 145 ++++++++++++++++-----------------
 sys/vm/vm_zone.h                       |   7 +-
 5 files changed, 76 insertions(+), 86 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e16c650d787872d60f6ca3d20a7f1bc1e0c19261


-- 
DragonFly BSD source repository



More information about the Commits mailing list