Re: Different writeback timing since v5.14

From: Jan Kara
Date: Tue Mar 01 2022 - 05:32:24 EST


Hi!

On Tue 01-03-22 11:11:57, Richard Weinberger wrote:
> Rafał and I discovered that page writeback on UBIFS behaves different since v5.14.
> When a simple write, such as "echo foo > /mnt/ubibfs/bar.txt", happens it takes
> a few seconds until writeback calls ubifs_writepage().
>
> Before commit ab19939a6a50 ("mm/page-writeback: Fix performance when BDI's share of ratio is 0.")
> it was 30 seconds (vm.dirty_expire_centisecs), after this change it happens after 5 seconds
> (vm.dirty_writeback_centisecs).
>
> Is this expected?
> Just want to make sure that the said commit didn't uncover an UBIFS issue.

Yes, I think it is expected. Likely the background threshold for UBIFS bdi
is very small (probably UBIFS is not used much for writeback compared to
other filesystems). Previously, we just used wb_stat() which returned 0
(PCP counter inexact value) and so background writeback didn't trigger. Now
we use wb_stat_sum() when threshold is small, get exact value of dirty
pages and decide to start background writeback.

The only thing is, whether it is really expected that the threshold for
UBIFS bdi is so small. You can check the values in
/sys/kernel/debug/bdi/<bdi>/stats.

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR