linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] xfs: automatic relogging
@ 2020-07-01 16:51 Brian Foster
  2020-07-01 16:51 ` [PATCH 01/10] xfs: automatic relogging item management Brian Foster
                   ` (10 more replies)
  0 siblings, 11 replies; 25+ messages in thread
From: Brian Foster @ 2020-07-01 16:51 UTC (permalink / raw)
  To: linux-xfs

Hi all,

Here's a v1 (non-RFC) version of the automatic relogging functionality.
Note that the buffer relogging bits (patches 8-10) are still RFC as I've
had to hack around some things to utilize it for testing. I include them
here mostly for reference/discussion. Most of the effort from the last
rfc post has gone into testing and solidifying the functionality. This
now survives a traditional fstests regression run as well as a test run
with random buffer relogging enabled on every test/scratch device mount
that occurs throughout the fstests cycle. The quotaoff use case is
additionally tested independently by artificially delaying completion of
the quotaoff in parallel with many fsstress worker threads.

The hacks/workarounds to support the random buffer relogging enabled
fstests run are not included here because they are not associated with
core functionality, but rather are side effects of randomly relogging
arbitrary buffers, etc. I can work them into the buffer relogging
patches if desired, but I'd like to get the core functionality and use
case worked out before getting too far into the testing code. I also
know Darrick was interested in the ->iop_relog() callback for some form
of generic feedback into active dfops processing, so it might be worth
exploring that further.

Thoughts, reviews, flames appreciated.

Brian

v1:
- Rebased to latest for-next.
- Push handling logic tweaks.
- Rework and document the relog reservation calculation.
rfcv6: https://lore.kernel.org/linux-xfs/20200406123632.20873-1-bfoster@redhat.com/
- Rework relog reservation model.
- Drop unnecessary log ticket t_task fix.
- Use ->iop_relog() callback unconditionally.
- Rudimentary freeze handling for random buffer relogging.
- Various other fixes, tweaks and cleanups.
rfcv5: https://lore.kernel.org/linux-xfs/20200227134321.7238-1-bfoster@redhat.com/
- More fleshed out design to prevent log reservation deadlock and
  locking problems.
- Split out core patches between pre-reservation management, relog item
  state management and relog mechanism.
- Added experimental buffer relogging capability.
rfcv4: https://lore.kernel.org/linux-xfs/20191205175037.52529-1-bfoster@redhat.com/
- AIL based approach.
rfcv3: https://lore.kernel.org/linux-xfs/20191125185523.47556-1-bfoster@redhat.com/
- CIL based approach.
rfcv2: https://lore.kernel.org/linux-xfs/20191122181927.32870-1-bfoster@redhat.com/
- Different approach based on workqueue and transaction rolling.
rfc: https://lore.kernel.org/linux-xfs/20191024172850.7698-1-bfoster@redhat.com/

Brian Foster (10):
  xfs: automatic relogging item management
  xfs: create helper for ticket-less log res ungrant
  xfs: extra runtime reservation overhead for relog transactions
  xfs: relog log reservation stealing and accounting
  xfs: automatic log item relog mechanism
  xfs: automatically relog the quotaoff start intent
  xfs: prevent fs freeze with outstanding relog items
  xfs: buffer relogging support prototype
  xfs: create an error tag for random relog reservation
  xfs: relog random buffers based on errortag

 fs/xfs/libxfs/xfs_errortag.h |   4 +-
 fs/xfs/libxfs/xfs_shared.h   |   1 +
 fs/xfs/xfs_buf.c             |   4 +
 fs/xfs/xfs_buf_item.c        |  61 ++++++++++++--
 fs/xfs/xfs_dquot_item.c      |  26 +++++-
 fs/xfs/xfs_error.c           |   3 +
 fs/xfs/xfs_log.c             |  35 ++++++--
 fs/xfs/xfs_log.h             |   4 +-
 fs/xfs/xfs_log_cil.c         |   2 +-
 fs/xfs/xfs_log_priv.h        |   1 +
 fs/xfs/xfs_qm_syscalls.c     |  12 ++-
 fs/xfs/xfs_super.c           |   4 +
 fs/xfs/xfs_trace.h           |   4 +
 fs/xfs/xfs_trans.c           |  75 +++++++++++++++--
 fs/xfs/xfs_trans.h           |  44 +++++++++-
 fs/xfs/xfs_trans_ail.c       | 152 ++++++++++++++++++++++++++++++++++-
 fs/xfs/xfs_trans_buf.c       |  80 ++++++++++++++++++
 fs/xfs/xfs_trans_priv.h      |  28 +++++++
 18 files changed, 512 insertions(+), 28 deletions(-)

-- 
2.21.3


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

end of thread, other threads:[~2020-08-26 12:17 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-01 16:51 [PATCH 00/10] xfs: automatic relogging Brian Foster
2020-07-01 16:51 ` [PATCH 01/10] xfs: automatic relogging item management Brian Foster
2020-07-01 16:51 ` [PATCH 02/10] xfs: create helper for ticket-less log res ungrant Brian Foster
2020-07-01 16:51 ` [PATCH 03/10] xfs: extra runtime reservation overhead for relog transactions Brian Foster
2020-07-01 16:51 ` [PATCH 04/10] xfs: relog log reservation stealing and accounting Brian Foster
2020-07-01 16:51 ` [PATCH 05/10] xfs: automatic log item relog mechanism Brian Foster
2020-07-03  6:08   ` Dave Chinner
2020-07-06 16:06     ` Brian Foster
2020-07-01 16:51 ` [PATCH 06/10] xfs: automatically relog the quotaoff start intent Brian Foster
2020-07-01 16:51 ` [PATCH 07/10] xfs: prevent fs freeze with outstanding relog items Brian Foster
2020-07-01 16:51 ` [PATCH RFC 08/10] xfs: buffer relogging support prototype Brian Foster
2020-07-01 16:51 ` [PATCH RFC 09/10] xfs: create an error tag for random relog reservation Brian Foster
2020-07-01 16:51 ` [PATCH RFC 10/10] xfs: relog random buffers based on errortag Brian Foster
2020-07-02 11:51 ` [PATCH 00/10] xfs: automatic relogging Dave Chinner
2020-07-02 18:52   ` Brian Foster
2020-07-03  0:49     ` Dave Chinner
2020-07-06 16:03       ` Brian Foster
2020-07-06 17:42         ` Darrick J. Wong
2020-07-07 11:37           ` Brian Foster
2020-07-08 16:44             ` Darrick J. Wong
2020-07-09 12:15               ` Brian Foster
2020-07-09 16:32                 ` Darrick J. Wong
2020-07-20  3:58                 ` Dave Chinner
2020-08-26 12:17                   ` Brian Foster
2020-07-10  4:09         ` Dave Chinner

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).