lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 24 Jul 2021 15:41:19 +0800 From: Wang Jianchao <jianchao.wan9@...il.com> To: linux-ext4@...r.kernel.org, linux-kernel@...r.kernel.org Cc: tytso@....edu, adilger.kernel@...ger.ca Subject: [PATCH V3 0/5] ext4: get discard out of jbd2 commit context Hi all This is the version 3 patch set that attempts to get discard out of the jbd2 commit kthread. When the user delete a lot data and cause discard flooding, the jbd2 commit kthread can be blocked for very long time and then all of the metadata operations are blocked due to no journal space. The xfstest with following parameters, MODULAR=0 TEST_DIR=/mnt/test TEST_DEV=/dev/nbd37p1 SCRATCH_MNT=/mnt/scratch SCRATCH_DEV=/dev/nbd37p2 MOUNT_OPTIONS="-o discard" has passed. The result is consistent w/ or w/o this patch set. There are 5 patches, Patch 1 ~ 3, there are no functional changes in them, but just some preparation for following patches Patch 4 introduces a async kworker to do discard in fstrim fation which implements the core idea of this patch set. Patch 5 let the fallocate retry when err is ENOSPC. This fix the generic/371 Any comments are welcome ;) V2 -> V3 - Get rid of the per block group rb tree which carries freed entry. It is not neccesary because we have done aggregation when wait for journal commit. Just use a list to carry the free entries. V1 -> V2 - free the blocks back to mb buddy after commit and then do ftrim fashion discard fs/ext4/ext4.h | 2 + fs/ext4/extents.c | 6 ++- fs/ext4/mballoc.c | 223 ++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------- 3 files changed, 151 insertions(+), 80 deletions(-)
Powered by blists - more mailing lists