mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 21:03:32 +00:00
mm: Move updates of dirty_exceeded into one place
Transition of wb->dirty_exceeded from 0 to 1 happens before we go to sleep in balance_dirty_pages() while transition from 1 to 0 happens when exiting from balance_dirty_pages(), possibly based on old values. This does not make a lot of sense since wb->dirty_exceeded should simply reflect whether wb is over dirty limit and so we should ratelimit entering to balance_dirty_pages() less. Move the two updates together. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Stefan Roesch <shr@fb.com> Link: https://lore.kernel.org/r/20220623175157.1715274-3-shr@fb.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
ea6813be07
commit
e92eebbb09
1 changed files with 2 additions and 5 deletions
|
@ -1729,8 +1729,8 @@ static void balance_dirty_pages(struct bdi_writeback *wb,
|
|||
sdtc = mdtc;
|
||||
}
|
||||
|
||||
if (dirty_exceeded && !wb->dirty_exceeded)
|
||||
wb->dirty_exceeded = 1;
|
||||
if (dirty_exceeded != wb->dirty_exceeded)
|
||||
wb->dirty_exceeded = dirty_exceeded;
|
||||
|
||||
if (time_is_before_jiffies(READ_ONCE(wb->bw_time_stamp) +
|
||||
BANDWIDTH_INTERVAL))
|
||||
|
@ -1834,9 +1834,6 @@ static void balance_dirty_pages(struct bdi_writeback *wb,
|
|||
if (fatal_signal_pending(current))
|
||||
break;
|
||||
}
|
||||
|
||||
if (!dirty_exceeded && wb->dirty_exceeded)
|
||||
wb->dirty_exceeded = 0;
|
||||
}
|
||||
|
||||
static DEFINE_PER_CPU(int, bdp_ratelimits);
|
||||
|
|
Loading…
Reference in a new issue