From: Markus Trippelsdorf <markus@trippelsdorf.de>
To: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@infradead.org>, Tejun Heo <tj@kernel.org>,
xfs@oss.sgi.com, Stefan Priebe <s.priebe@profihost.ag>
Subject: Re: [PATCH 3/4] xfs: revert to using a kthread for AIL pushing
Date: Mon, 10 Oct 2011 07:55:46 +0200 [thread overview]
Message-ID: <20111010055546.GA1641@x4.trippels.de> (raw)
In-Reply-To: <20111010014509.GT3159@dastard>
On 2011.10.10 at 12:45 +1100, Dave Chinner wrote:
> On Thu, Oct 06, 2011 at 02:33:00PM -0400, Christoph Hellwig wrote:
> > Currently we have a few issues with the way the workqueue code is used to
> > implement AIL pushing:
> >
> > - it accidentally uses the same workqueue as the syncer action, and thus
> > can be prevented from running if there are enough sync actions active
> > in the system.
> > - it doesn't use the HIGHPRI flag to queue at the head of the queue of
> > work items
> >
> > At this point I'm not confident enough in getting all the workqueue flags and
> > tweaks right to provide a perfectly reliable execution context for AIL
> > pushing, which is the most important piece in XFS to make forward progress
> > when the log fills.
> >
> > Revert back to use a kthread per filesystem which fixes all the above issues
> > at the cost of having a task struct and stack around for each mounted
> > filesystem. In addition this also gives us much better ways to diagnose
> > any issues involving hung AIL pushing and removes a small amount of code.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > Reported-by: Stefan Priebe <s.priebe@profihost.ag>
> > Tested-by: Stefan Priebe <s.priebe@profihost.ag>
>
> I'd much prefer to fix the problems with the workqueue usage than
> revert back to using a thread, but seeing as I cannot reproduce the
> hangs I can't really track down whatever problem there is. So,
> a bit reluctantly:
Wouldn't it be possible to verify that the problem also goes away with
this simple one liner?
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 2366c54..daf30c9 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -1654,7 +1654,7 @@ xfs_init_workqueues(void)
if (!xfs_syncd_wq)
goto out;
- xfs_ail_wq = alloc_workqueue("xfsail", WQ_CPU_INTENSIVE, 8);
+ xfs_ail_wq = alloc_workqueue("xfsail", WQ_HIGHPRI | WQ_CPU_INTENSIVE, 8);
if (!xfs_ail_wq)
goto out_destroy_syncd;
>From Documentation/workqueue.txt:
WQ_HIGHPRI | WQ_CPU_INTENSIVE
This combination makes the wq avoid interaction with
concurrency management completely and behave as a simple
per-CPU execution context provider. Work items queued on a
highpri CPU-intensive wq start execution as soon as resources
are available and don't affect execution of other work items.
So this should be identical to reverting back to the kthread. No?
CCing Tejun, maybe he can comment on this?
--
Markus
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2011-10-10 5:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-06 18:32 [PATCH 0/4] fix AIL pushing under heavy concurrent metadata loads Christoph Hellwig
2011-10-06 18:32 ` [PATCH 1/4] xfs: do not update xa_last_pushed_lsn for locked items Christoph Hellwig
2011-10-07 22:18 ` Alex Elder
2011-10-10 1:37 ` Dave Chinner
2011-10-06 18:32 ` [PATCH 2/4] xfs: force the log if we encounter pinned buffers in .iop_pushbuf Christoph Hellwig
2011-10-07 22:18 ` Alex Elder
2011-10-10 1:39 ` Dave Chinner
2011-10-06 18:33 ` [PATCH 3/4] xfs: revert to using a kthread for AIL pushing Christoph Hellwig
2011-10-07 22:18 ` Alex Elder
2011-10-10 1:45 ` Dave Chinner
2011-10-10 5:55 ` Markus Trippelsdorf [this message]
2011-10-10 6:06 ` Stefan Priebe - Profihost AG
2011-10-10 13:26 ` Christoph Hellwig
2011-10-10 18:37 ` Tejun Heo
2011-10-19 11:16 ` Stefan Priebe - Profihost AG
2011-10-19 11:34 ` Christoph Hellwig
2011-10-19 13:10 ` Stefan Priebe - Profihost AG
2011-10-06 18:33 ` [PATCH 4/4] xfs: add AIL pushing tracepoints Christoph Hellwig
2011-10-07 22:18 ` Alex Elder
2011-10-10 1:45 ` Dave Chinner
-- strict thread matches above, loose matches on Subject: below --
2011-10-11 15:14 [PATCH 0/4] fix AIL pushing under heavy concurrent metadata loads V2 Christoph Hellwig
2011-10-11 15:14 ` [PATCH 3/4] xfs: revert to using a kthread for AIL pushing 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=20111010055546.GA1641@x4.trippels.de \
--to=markus@trippelsdorf.de \
--cc=david@fromorbit.com \
--cc=hch@infradead.org \
--cc=s.priebe@profihost.ag \
--cc=tj@kernel.org \
--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