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

List:       dragonfly-commits
Subject:    git: kernel - Fix indefinite wait buffer bug with encrypted disks
From:       Matthew Dillon <dillon () crater ! dragonflybsd ! org>
Date:       2020-01-18 18:04:11
Message-ID: 20200118180411.CFA2B8FB9BD () crater ! dragonflybsd ! org
[Download RAW message or body]


commit 8345afad56bed8074dc4836acd98dfb6a80bbeb7
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sat Jan 18 09:49:45 2020 -0800

    kernel - Fix indefinite wait buffer bug with encrypted disks
    
    * Preallocate all (nmax) mpipe buffers to avoid doing any large buffer
      allocations inside critical low-memory I/O paths.
    
    * Remove the per-sector objcache, which could cause numerous blocking
      memory allocations in critical low-memory I/O paths.  Instead,
      pre-allocate all necessary data outside of the critical path.
    
      For now these per-sector structures are cached in a simple linked
      list with a single spin-lock (not ideal).
    
    * Reorganize per-sector data into its own essiv_ivgen_data structure,
      Plus other minor cleanups.
    
    * TODO - We need to queue the bio in the target_crypt_config structure
      instead of relying on mpipe_alloc_callback() which must still allocate
      a small structure via M_INTWAIT.
    
    Reported-by: goleo, profmakx, daftaupe, others

Summary of changes:
 sys/dev/disk/dm/crypt/dm_target_crypt.c | 141 ++++++++++++++++++++++----------
 1 file changed, 96 insertions(+), 45 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8345afad56bed8074dc4836acd98dfb6a80bbeb7


-- 
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