Skip to content

Commit 1c553d1

Browse files
Julian Sungregkh
authored andcommitted
ext4: increase IO priority of fastcommit
[ Upstream commit 46e75c5 ] The following code paths may result in high latency or even task hangs: 1. fastcommit io is throttled by wbt. 2. jbd2_fc_wait_bufs() might wait for a long time while JBD2_FAST_COMMIT_ONGOING is set in journal->flags, and then jbd2_journal_commit_transaction() waits for the JBD2_FAST_COMMIT_ONGOING bit for a long time while holding the write lock of j_state_lock. 3. start_this_handle() waits for read lock of j_state_lock which results in high latency or task hang. Given the fact that ext4_fc_commit() already modifies the current process' IO priority to match that of the jbd2 thread, it should be reasonable to match jbd2's IO submission flags as well. Suggested-by: Ritesh Harjani (IBM) <[email protected]> Signed-off-by: Julian Sun <[email protected]> Reviewed-by: Zhang Yi <[email protected]> Reviewed-by: Jan Kara <[email protected]> Message-ID: <[email protected]> Signed-off-by: Theodore Ts'o <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent 238f7a7 commit 1c553d1

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/ext4/fast_commit.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ void ext4_fc_track_range(handle_t *handle, struct inode *inode, ext4_lblk_t star
675675

676676
static void ext4_fc_submit_bh(struct super_block *sb, bool is_tail)
677677
{
678-
blk_opf_t write_flags = REQ_SYNC;
678+
blk_opf_t write_flags = JBD2_JOURNAL_REQ_FLAGS;
679679
struct buffer_head *bh = EXT4_SB(sb)->s_fc_bh;
680680

681681
/* Add REQ_FUA | REQ_PREFLUSH only its tail */

0 commit comments

Comments
 (0)