mbox series

[0/3] ext4 fast commit API cleanup

Message ID 20211220031704.441727-1-harshads@google.com
Headers show
Series ext4 fast commit API cleanup | expand

Message

harshad shirwadkar Dec. 20, 2021, 3:17 a.m. UTC
ext4: fast commit API cleanup

This patch series fixes up fast commit APIs. There are NO on-disk
format changes introduced in this series. The main contribution of the
series is that it drops fast commit specific transaction APIs and
makes fast commits work with journal transaction APIs of JBD2
journalling system. With these changes, a fast commit eligible
transaction is simply enclosed in calls to "jbd2_journal_start()" and
"jbd2_journal_stop()". If the update that is being performed is fast
commit ineligible, one must simply call ext4_fc_mark_ineligible()
after starting a transaction using "jbd2_journal_start()". The last
patch in the series simplifies fast commit stats recording by moving
it to a different function.

I verified that the patch series introduces no regressions in "quick"
and "log" groups when "fast_commit" feature is enabled.

Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>

Harshad Shirwadkar (3):
  ext4: drop transaction start stop APIs for fast commit
  ext4: drop ineligible txn start stop APIs
  ext4: simplify updating of fast commit stats

 fs/ext4/acl.c         |   2 -
 fs/ext4/ext4.h        |  12 +-
 fs/ext4/extents.c     |   9 +-
 fs/ext4/fast_commit.c | 250 ++++++++++++------------------------------
 fs/ext4/fast_commit.h |  27 ++---
 fs/ext4/file.c        |   4 -
 fs/ext4/inode.c       |   7 +-
 fs/ext4/ioctl.c       |  13 +--
 fs/ext4/super.c       |   1 -
 fs/jbd2/journal.c     |   2 +
 10 files changed, 96 insertions(+), 231 deletions(-)

Comments

Eric Whitney Dec. 22, 2021, 4:28 p.m. UTC | #1
* Harshad Shirwadkar <harshadshirwadkar@gmail.com>:
> ext4: fast commit API cleanup
> 
> This patch series fixes up fast commit APIs. There are NO on-disk
> format changes introduced in this series. The main contribution of the
> series is that it drops fast commit specific transaction APIs and
> makes fast commits work with journal transaction APIs of JBD2
> journalling system. With these changes, a fast commit eligible
> transaction is simply enclosed in calls to "jbd2_journal_start()" and
> "jbd2_journal_stop()". If the update that is being performed is fast
> commit ineligible, one must simply call ext4_fc_mark_ineligible()
> after starting a transaction using "jbd2_journal_start()". The last
> patch in the series simplifies fast commit stats recording by moving
> it to a different function.
> 
> I verified that the patch series introduces no regressions in "quick"
> and "log" groups when "fast_commit" feature is enabled.
> 
> Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
> 
> Harshad Shirwadkar (3):
>   ext4: drop transaction start stop APIs for fast commit
>   ext4: drop ineligible txn start stop APIs
>   ext4: simplify updating of fast commit stats
> 
>  fs/ext4/acl.c         |   2 -
>  fs/ext4/ext4.h        |  12 +-
>  fs/ext4/extents.c     |   9 +-
>  fs/ext4/fast_commit.c | 250 ++++++++++++------------------------------
>  fs/ext4/fast_commit.h |  27 ++---
>  fs/ext4/file.c        |   4 -
>  fs/ext4/inode.c       |   7 +-
>  fs/ext4/ioctl.c       |  13 +--
>  fs/ext4/super.c       |   1 -
>  fs/jbd2/journal.c     |   2 +
>  10 files changed, 96 insertions(+), 231 deletions(-)
> 
> -- 
> 2.34.1.173.g76aa8bc2d0-goog
>

Hi Harshad:

I applied this patch series to 5.16-rc6, and then ran 500 trials of generic/083
using xfstests-bld's adv test case (where I'd consistently encountered kernel
hangs after 16 or 17 runs) without failures and a full -g auto run over all the
default test cases without regressions.

Thanks for the patches!

Tested-by: Eric Whitney <enwlinux@gmail.com>

Eric