[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