From: Dave Chinner <david@fromorbit.com>
To: Ben Myers <bpm@sgi.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH] xfs: shutdown xfs_sync_worker before the log
Date: Wed, 6 Jun 2012 14:26:47 +1000 [thread overview]
Message-ID: <20120606042647.GK22848@dastard> (raw)
In-Reply-To: <20120525204536.GA4721@sgi.com>
On Fri, May 25, 2012 at 03:45:36PM -0500, Ben Myers wrote:
> Hey Dave,
>
> On Thu, May 24, 2012 at 05:39:52PM -0500, Ben Myers wrote:
> > Anyway, I'll make some time to work on this tomorrow so I can test it over
> > the weekend.
>
> This is going to spin over the weekend. See what you think.
>
> -----------
>
> xfs: shutdown xfs_sync_worker before the log
>
> Revert commit 1307bbd, which uses the s_umount semaphore to provide
> exclusion between xfs_sync_worker and unmount, in favor of shutting down
> the sync worker before freeing the log in xfs_log_unmount. This is a
> cleaner way of resolving the race between xfs_sync_worker and unmount
> than using s_umount.
Looks fine to me.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Once you commit this, I think I'll do a followup set of patches that
remove all the problems caused by trying to start and stop unrelated
functionality in the same place.
I think starting by renaming the xfs-syncd workqueue to the
xfs_mount_wq because there's nothing "sync" related about it's
functionality any more.
I'll then kill xfs_syncd_init/stop functions and open code the
intialisation of the work structures and start them in the
appropriate places for their functionality. e.g. reclaim work is
demand started and stops when there's nothing more to do or at
unmount, the flush work is demand started and we need to complete
them all at unmount, and the xfssync work is really now "periodic
log work" so should be started once we complete log recovery
successfullly and stopped before we tear down the log....
Then I can move the xfs_sync_worker to xfs_log.c and rename it.
If I then convert xfs_flush_worker to use the generic writeback code
(writeback_inodes_sb_if_idle) the xfs_sync_data() can go away. That
means the only user of xfs_inode_ag_iterator is the quotaoff code
(xfs_qm_dqrele_all_inodes), so it could be moved elsewhere (like
xfs_inode.c).
Then xfs_quiesce_data() can be moved to xfs-super.c where it can sit
alongside the two functions that call it, and the same can be done
for xfs_quiesce_attr().
That will leave only inode cache reclaim functions in xfs_sync.c.
These are closely aligned to the inode allocation, freeing and cache
lookup functions in xfs_iget.c, so I'm thinking of merging the two
into a single file named xfs_inode_cache.c so both xfs_sync.c and
xfs_iget.c go away.
Thoughts?
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2012-06-06 4:26 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-23 17:43 BUG in xlog_get_lowest_lsn Ben Myers
2012-05-14 20:34 ` [PATCH] xfs: use s_umount sema in xfs_sync_worker Ben Myers
2012-05-15 18:30 ` Mark Tinguely
2012-05-15 19:06 ` Ben Myers
2012-05-16 1:56 ` Dave Chinner
2012-05-16 17:04 ` Ben Myers
2012-05-17 7:16 ` Dave Chinner
2012-05-23 9:02 ` Dave Chinner
2012-05-23 16:45 ` Ben Myers
2012-05-24 22:39 ` Ben Myers
2012-05-25 20:45 ` [PATCH] xfs: shutdown xfs_sync_worker before the log Ben Myers
2012-05-29 15:07 ` Ben Myers
2012-05-29 15:36 ` Brian Foster
2012-05-29 17:04 ` Ben Myers
2012-05-29 17:54 ` Brian Foster
2012-05-31 16:23 ` Mark Tinguely
2012-06-06 4:26 ` Dave Chinner [this message]
2012-06-11 20:45 ` Ben Myers
2012-06-11 21:11 ` Mark Tinguely
2012-06-11 23:36 ` Dave Chinner
2012-06-14 17:13 ` Mark Tinguely
2012-06-14 23:56 ` Dave Chinner
2012-06-20 7:44 ` Christoph Hellwig
2012-06-20 7:36 ` Christoph Hellwig
2012-06-20 17:18 ` Ben Myers
2012-06-20 22:59 ` Dave Chinner
2012-06-21 7:12 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120606042647.GK22848@dastard \
--to=david@fromorbit.com \
--cc=bpm@sgi.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox