[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dragonfly-commits
Subject:    git: DragonFly_RELEASE_6_0 hammer2 - Only clear the bigmask hint in relaxed mode freemap scans
From:       Matthew Dillon <dillon () crater ! dragonflybsd ! org>
Date:       2021-08-17 4:40:52
Message-ID: 20210817044052.B958A12DEEC2 () crater ! dragonflybsd ! org
[Download RAW message or body]


commit b3f08ce6f6de46c8084a9bf6d5331196ea118610
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Aug 12 15:52:25 2021 -0700

    hammer2 - Only clear the bigmask hint in relaxed mode freemap scans
    
    * When allocating blocks, the bigmask hint allows the allocator to
      skip sub-trees that are known to be fully allocated.  The bit for
      the appropriate radix (block size being allocated) is cleared when
      a full scan reveals no available blocks in the sub-tree.
    
    * When the filesystem starts to fill up, there might not be any blocks
      in class-assigned sub-trees, but there could be blocks in the sub-trees
      for other classes.  Normally the allocator first tries to find a block
      in a matching class, and if that fails it tries to find a block in an
      unrelated class using a 'relaxed' freemap search.
    
      The bug is that the bigmask hint was being cleared for non-relaxed
      searches that failed, causing the later relaxed search to also fail
      even though blocks might be allocatable.
    
    * Fixed by only clearing the bit when a full relaxed scan determines
      that no blocks are available.

Summary of changes:
 sys/vfs/hammer2/hammer2_freemap.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

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


-- 
DragonFly BSD source repository
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic