public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/12] xfs: delayed logging V6
@ 2010-05-17 23:24 Dave Chinner
  2010-05-17 23:24 ` [PATCH 01/12] xfs: Don't reuse the same transaction ID for duplicated transactions Dave Chinner
                   ` (13 more replies)
  0 siblings, 14 replies; 27+ messages in thread
From: Dave Chinner @ 2010-05-17 23:24 UTC (permalink / raw)
  To: xfs


Hi Folks,

This is version 6 of the delayed logging series and is the first
release candidate for incluѕion in the xfs-dev tree and 2.6.35-rc1.

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 addresses review comments made to version 5.

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.

The changes are mostly small and isolated, so there isn't much
change from the previous version:

Version 6: 27 files changed, 2396 insertions(+), 512 deletions(-)
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 V6:
o removed unneeded includes from busy extent changes that weren't completely
  cleaned up in v5.
o moved xlog_tid_t definition to correct patch.
o move transaction formatting into xlog_cil_format_items() to remove
  unbalanced use of CIL context lock during transaction commit.
o move transaction freeing on successful commit to xfs_trans_commit_cil to
  avoid the need to export xfs_trans_free
o cleanup xlog_cil_push exit paths
o don't block xlog_cil_push waiting for context lock on background flushes
o removed debugging help from inode allocation buffer patch

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 lots of comments explaining the reason for needing transaction ID
  matching w/ delayed logging.
o added transaction ID to busy extent tracing
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                         |    9 +
 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                                   |  120 +++-
 fs/xfs/xfs_log.h                                   |   14 +-
 fs/xfs/xfs_log_cil.c                               |  726 +++++++++++++++++
 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                                 |  146 +++-
 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                            |   15 +-
 fs/xfs/xfs_types.h                                 |    2 +
 27 files changed, 2396 insertions(+), 512 deletions(-)
 create mode 100644 Documentation/filesystems/xfs-delayed-logging-design.txt
 create mode 100644 fs/xfs/xfs_log_cil.c

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 27+ messages in thread
* [PATCH 0/12] xfs: delayed logging V5
@ 2010-05-07  5:40 Dave Chinner
  2010-05-07  5:40 ` [PATCH 05/12] xfs: clean up log ticket overrun debug output Dave Chinner
  0 siblings, 1 reply; 27+ messages in thread
From: Dave Chinner @ 2010-05-07  5:40 UTC (permalink / raw)
  To: xfs


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
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

end of thread, other threads:[~2010-05-24  0:28 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-17 23:24 [PATCH 0/12] xfs: delayed logging V6 Dave Chinner
2010-05-17 23:24 ` [PATCH 01/12] xfs: Don't reuse the same transaction ID for duplicated transactions Dave Chinner
2010-05-17 23:24 ` [PATCH 02/12] xfs: allow log ticket allocation to take allocation flags Dave Chinner
2010-05-17 23:24 ` [PATCH 03/12] xfs: modify buffer item reference counting Dave Chinner
2010-05-19 18:35   ` Alex Elder
2010-05-19 22:37     ` Dave Chinner
2010-05-17 23:24 ` [PATCH 04/12] xfs: Clean up XFS_BLI_* flag namespace Dave Chinner
2010-05-19 19:09   ` Alex Elder
2010-05-17 23:24 ` [PATCH 05/12] xfs: clean up log ticket overrun debug output Dave Chinner
2010-05-19 19:16   ` Alex Elder
2010-05-19 22:41     ` Dave Chinner
2010-05-17 23:24 ` [PATCH 06/12] xfs: make the log ticket ID available outside the log infrastructure Dave Chinner
2010-05-17 23:24 ` [PATCH 07/12] xfs: Improve scalability of busy extent tracking Dave Chinner
2010-05-20 20:15   ` Alex Elder
2010-05-21  2:16     ` Dave Chinner
2010-05-21 20:59       ` Alex Elder
2010-05-17 23:24 ` [PATCH 08/12] xfs: Delayed logging design documentation Dave Chinner
2010-05-21 21:02   ` Alex Elder
2010-05-17 23:24 ` [PATCH 09/12] xfs: Introduce delayed logging core code Dave Chinner
2010-05-21 21:06   ` Alex Elder
2010-05-17 23:24 ` [PATCH 10/12] xfs: forced unmounts need to push the CIL Dave Chinner
2010-05-17 23:24 ` [PATCH 11/12] xfs: enable background pushing of " Dave Chinner
2010-05-17 23:24 ` [PATCH 12/12] xfs: Ensure inode allocation buffers are fully replayed Dave Chinner
2010-05-21 21:21 ` [PATCH 0/12] xfs: delayed logging V6 Alex Elder
2010-05-22  0:39   ` Dave Chinner
2010-05-24  0:30 ` Dave Chinner
  -- strict thread matches above, loose matches on Subject: below --
2010-05-07  5:40 [PATCH 0/12] xfs: delayed logging V5 Dave Chinner
2010-05-07  5:40 ` [PATCH 05/12] xfs: clean up log ticket overrun debug output Dave Chinner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox