linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ext4 fast commit API cleanup
@ 2021-12-23 20:21 Harshad Shirwadkar
  2021-12-23 20:21 ` [PATCH v2 1/4] ext4: use ext4_journal_start/stop for fast commit transactions Harshad Shirwadkar
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Harshad Shirwadkar @ 2021-12-23 20:21 UTC (permalink / raw)
  To: linux-ext4; +Cc: tytso, Harshad Shirwadkar, Harshad Shirwadkar

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.

Changes from V1:
---------------

- In the V1 of the patch series, there's performance regression. With
  this patch series, we lock the entire file system from starting any
  new handles during (which ensures consistency at the cost of
  performance). What we ideally want to do is to lock individual
  inodes from starting new updates during a commit. To do so, the V2
  of this patch series retains the infrastructure of inode level
  transactions (ext4_fc_start/stop_update()). In future (not in this
  series), we would build on this infrastructure to lock individual
  inodes and drop the file system level locking during the commit path.

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

Harshad Shirwadkar (4):
  ext4: use ext4_journal_start/stop for fast commit transactions
  ext4: drop ineligible txn start stop APIs
  ext4: simplify updating of fast commit stats
  ext4: update fast commit TODOs

 fs/ext4/acl.c         |   2 -
 fs/ext4/ext4.h        |   7 +-
 fs/ext4/extents.c     |   9 +-
 fs/ext4/fast_commit.c | 188 ++++++++++++++++--------------------------
 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(+), 164 deletions(-)

-- 
2.34.1.307.g9b7440fafd-goog


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-01-11 16:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-23 20:21 [PATCH v2 0/4] ext4 fast commit API cleanup Harshad Shirwadkar
2021-12-23 20:21 ` [PATCH v2 1/4] ext4: use ext4_journal_start/stop for fast commit transactions Harshad Shirwadkar
2021-12-23 20:21 ` [PATCH v2 2/4] ext4: drop ineligible txn start stop APIs Harshad Shirwadkar
2021-12-23 20:21 ` [PATCH v2 3/4] ext4: simplify updating of fast commit stats Harshad Shirwadkar
2021-12-23 20:21 ` [PATCH v2 4/4] ext4: update fast commit TODOs Harshad Shirwadkar
2021-12-23 23:16 ` [PATCH v2 0/4] ext4 fast commit API cleanup Theodore Ts'o
2022-01-11 12:52 ` riteshh
2022-01-11 16:19   ` harshad shirwadkar
2022-01-11 16:57     ` riteshh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).