Skip to content

xfs: delayed logging V5

Dave Chinner linux-xfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest12 patches 9 repliesIn review

Changes for V5 from the cover letter

o fixed many typos in the desgin documentation - thanks to Nathan Scott for proof reading it. :)
o found another transaction assert failure - un-reverting the change to transaction ID matching as the reason it avoided the assert failures is now known. (new commit for exporting the ticket ID).
o added transaction ID to busy extent tracing
o added lots of comments explaining the reason for needing transaction ID matching w/ delayed logging.
o added overlap detection in busy extent inserts

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/12xfs: Don't reuse the same transaction ID for duplicated transactions.fs/xfs/xfs_log.c+9 -00 replies
2/12xfs: allow log ticket allocation to take allocation flagsfs/xfs/xfs_log.c+8 -80 replies
3/12xfs: modify buffer item reference countingfs/xfs/xfs_buf_item.c+50 -600 replies
4/12xfs: Clean up XFS_BLI_* flag namespacefs/xfs/linux-2.6/xfs_super.c fs/xfs/quota/xfs_dquot.c fs/xfs/xfs_buf_item.c +4 more+70 -700 replies
5/12xfs: clean up log ticket overrun debug outputfs/xfs/xfs_error.c fs/xfs/xfs_log.c+6 -150 replies
6/12xfs: make the log ticket ID available outside the log infrastructurefs/xfs/xfs_log.c fs/xfs/xfs_log.h fs/xfs/xfs_log_priv.h+13 -31 reply
7/12xfs: Improve scalability of busy extent trackingfs/xfs/linux-2.6/xfs_buf.c fs/xfs/linux-2.6/xfs_quotaops.c fs/xfs/linux-2.6/xfs_trace.h +10 more+361 -3231 reply
8/12xfs: Delayed logging design documentationDocumentation/filesystems/xfs-delayed-logging-design.txt+819 -00 replies
9/12xfs: Introduce delayed logging core codefs/xfs/Makefile fs/xfs/linux-2.6/xfs_super.c fs/xfs/xfs_log.c +8 more+963 -314 replies
10/12xfs: forced unmounts need to push the CILfs/xfs/xfs_log.c+15 -01 reply
11/12xfs: enable background pushing of the CILfs/xfs/xfs_log_cil.c fs/xfs/xfs_log_priv.h+69 -11 reply
12/12xfs: Ensure inode allocation buffers are fully replayedfs/xfs/linux-2.6/xfs_buf.c fs/xfs/xfs_buf_item.c fs/xfs/xfs_buf_item.h +5 more+89 -171 reply

Reviews trailers per patch

11 of 12 patches have a Reviewed-by or Acked-by.

PatchChristoph Hellwig
1/12R-b
2/12R-b
3/12R-b
4/12R-b
5/12R-b
6/12R-b
7/12R-b
8/12
9/12R-b
10/12R-b
11/12R-b
12/12R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/12] xfs: delayed logging V5

Hi Folks,

This is version 5 of the delayed logging series.

I won't repeat everything about what it is, just point you here:

http://marc.info/?l=linux-xfs&m=126862777118946&w=2

for the description, and here:

git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfs.git delayed-logging

for the current code. Note that this is a rebased branch, so you'll need to pull it again into a new branch to review.

This version includes a documentation updates and fixes to the busy extent tracking infrastructure.

The patch series follows this mail to make it easier for people to respond to specific pieces of the code during review. I'm still making the entire patch set available through git, though.

Changes the previous versions:

Version 5: 27 files changed, 2457 insertions(+), 513 deletions(-) Version 4: 26 files changed, 2351 insertions(+), 510 deletions(-) Version 3: 28 files changed, 2366 insertions(+), 506 deletions(-) Version 2: 22 files changed, 2188 insertions(+), 377 deletions(-) Version 1: 19 files changed, 2594 insertions(+), 580 deletions(-)

Changes for V5:
o fixed many typos in the desgin documentation - thanks to Nathan Scott for proof reading it. :)
o found another transaction assert failure - un-reverting the change to transaction ID matching as the reason it avoided the assert failures is now known. (new commit for exporting the ticket ID).
o added transaction ID to busy extent tracing
o added lots of comments explaining the reason for needing transaction ID matching w/ delayed logging.
o added overlap detection in busy extent inserts

Changes for V4:
o fixes duplicate transaction IDs on rolling transactions (new commit)
o folded in a busy extent freeing cleanup from Christoph Hellwig
o made API prefix consistent (xfs_alloc_busy_*)
o combined xfs_alloc_mark_busy and xfs_alloc_busy_insert
o reverted back to tracking transaction pointers in busy extents
o removed exporting of transaction ID for busy extents
o fixed an off-by-one in the extent range match in the busy extent search code that has been triggering assert failures
o use list_splice_init() when splicing busy extents from the transaction to the checkpoint context to ensure we don't get transactions thinking they have busy extents to free after we've already attached them to the checkpoint.

Changes for V3:
o changed buffer log item reference counted model to be consistent for both logging modes
o cleaned up XFS_BLI flags usage (new commit)
o separated out log ticket overrun printing cleanup (new commit)
o made sure "delaylog" option shows up in /proc/mounts
o collapsed many of the intermediate commits together to make it easier to review
o fixed inode buffer tagging issue that was causing shutdowns in log recovery in test 087 and 121

Changes for V2:
o 22 files changed, 2188 insertions(+), 377 deletions(-)
o fixed some memory leaks
o fixed ticket allocation for checkpoints to use KM_NOFS
o minor code cleanups
o performed stress and scalability testing

The following changes since commit 6ff75b78182c314112c1173edaab6c164c95d775:
Christoph Hellwig (1):
xfs: mark xfs_iomap_write_ helpers static

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfs.git delayed-logging

Dave Chinner (12):
xfs: Don't reuse the same transaction ID for duplicated transactions.
xfs: allow log ticket allocation to take allocation flags
xfs: modify buffer item reference counting
xfs: Clean up XFS_BLI_* flag namespace
xfs: clean up log ticket overrun debug output
xfs: make the log ticket ID available outside the log infrastructure
xfs: Improve scalability of busy extent tracking
xfs: Delayed logging design documentation
xfs: Introduce delayed logging core code
xfs: forced unmounts need to push the CIL
xfs: enable background pushing of the CIL
xfs: Ensure inode allocation buffers are fully replayed

 .../filesystems/xfs-delayed-logging-design.txt     |  819 ++++++++++++++++++++
 fs/xfs/Makefile                                    |    1 +
 fs/xfs/linux-2.6/xfs_buf.c                         |   11 +-
 fs/xfs/linux-2.6/xfs_quotaops.c                    |    1 +
 fs/xfs/linux-2.6/xfs_super.c                       |   12 +-
 fs/xfs/linux-2.6/xfs_trace.h                       |   83 ++-
 fs/xfs/quota/xfs_dquot.c                           |    6 +-
 fs/xfs/xfs_ag.h                                    |   24 +-
 fs/xfs/xfs_alloc.c                                 |  364 +++++++---
 fs/xfs/xfs_alloc.h                                 |    7 +-
 fs/xfs/xfs_alloc_btree.c                           |    2 +-
 fs/xfs/xfs_buf_item.c                              |  166 ++--
 fs/xfs/xfs_buf_item.h                              |   18 +-
 fs/xfs/xfs_error.c                                 |    2 +-
 fs/xfs/xfs_log.c                                   |  123 +++-
 fs/xfs/xfs_log.h                                   |   14 +-
 fs/xfs/xfs_log_cil.c                               |  733 ++++++++++++++++++
 fs/xfs/xfs_log_priv.h                              |  118 +++-
 fs/xfs/xfs_log_recover.c                           |   46 +-
 fs/xfs/xfs_log_recover.h                           |    2 +-
 fs/xfs/xfs_mount.h                                 |    1 +
 fs/xfs/xfs_trans.c                                 |  195 ++++-
 fs/xfs/xfs_trans.h                                 |   44 +-
 fs/xfs/xfs_trans_buf.c                             |   46 +-
 fs/xfs/xfs_trans_item.c                            |  114 +---
 fs/xfs/xfs_trans_priv.h                            |   16 +-
 fs/xfs/xfs_types.h                                 |    2 +
 27 files changed, 2457 insertions(+), 513 deletions(-)
 create mode 100644 Documentation/filesystems/xfs-delayed-logging-design.txt
 create mode 100644 fs/xfs/xfs_log_cil.c

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs