On 2024/7/1 21:28, Jan Kara wrote: > Originally, we were quite conservative in limiting maximum transaction > size to a quarter of the journal because we were not accounting > transaction descriptor and revoke blocks. These days we do properly > account them and reserve space for them from the total transaction > credits. Thus there's no need to be so conservative and we can increase > the maximum transaction size to one third of the journal (even half > should work fine in principle but the performance will likely suffer in > that case). This also fixes failures to grow filesystems with tiny > journals. > This looks straightforward and reasonable to me. I've done some metadata intensive performance tests with fs_mark, no obvious degradation and fluctuation has been found. Reviewed-by: Zhang Yi <yi.zhang@xxxxxxxxxx> Thanks, Yi. > Link: CA+hUFcuGs04JHZ_WzA1zGN57+ehL2qmHOt5a7RMpo+rv6Vyxtw@xxxxxxxxxxxxxx > Signed-off-by: Jan Kara <jack@xxxxxxx> > --- > include/linux/jbd2.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h > index ab04c1c27fae..7273ef1732bf 100644 > --- a/include/linux/jbd2.h > +++ b/include/linux/jbd2.h > @@ -1662,7 +1662,7 @@ int jbd2_fc_release_bufs(journal_t *journal); > > static inline int jbd2_journal_get_max_txn_bufs(journal_t *journal) > { > - return (journal->j_total_len - journal->j_fc_wbufsize) / 4; > + return (journal->j_total_len - journal->j_fc_wbufsize) / 3; > } > > /* >