linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: Theodore Tso <tytso@mit.edu>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	chris.mason@oracle.com, david@fromorbit.com, hch@infradead.org,
	akpm@linux-foundation.org, jack@suse.cz,
	yanmin_zhang@linux.intel.com, richard@rsk.demon.co.uk,
	damien.wyart@free.fr
Subject: Re: [PATCH 0/11] Per-bdi writeback flusher threads v8
Date: Wed, 27 May 2009 21:45:43 +0200	[thread overview]
Message-ID: <20090527194543.GT11363@kernel.dk> (raw)
In-Reply-To: <20090527191524.GS11363@kernel.dk>

On Wed, May 27 2009, Jens Axboe wrote:
> On Wed, May 27 2009, Jens Axboe wrote:
> > On Wed, May 27 2009, Theodore Tso wrote:
> > > On Wed, May 27, 2009 at 01:53:53PM -0400, Theodore Tso wrote:
> > > > On Wed, May 27, 2009 at 10:47:54AM -0400, Theodore Tso wrote:
> > > > > 
> > > > > I'll retry the test with your stock writeback-v8 git branch w/o any
> > > > > ext4 patches planned the next mere window mainline to see if I get the
> > > > > same soft lockup, but I thought I should give you an early heads up.
> > > > 
> > > > Confirmed.  I had to run fsstress twice, but I was able to trigger a
> > > > soft hangup with just the per-bdi v8 patches using ext4.
> > > 
> > > As you requested, here's the .config file which I used.  This was on a
> > > Lenovo S10 (N270 Atom dual-core CPU, 1.5 gigs of memory, 5400 rpm hdd).
> > 
> > If you have time, can you rerun with this little patch? It moves the
> > super sync to a separate thread. Thanks!

This one has been tested good, where good means that it boots and
functions normally at least. Whether it fixes your issue, that would be
interesting to know :-)

diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index f71588c..cc246df 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -218,10 +218,14 @@ static __init int bdi_class_init(void)
 }
 postcore_initcall(bdi_class_init);
 
+static int bdi_sync_supers(void *unused);
+
 static int __init default_bdi_init(void)
 {
 	int err;
 
+	kthread_run(bdi_sync_supers, NULL, "bdi-super");
+
 	err = bdi_init(&default_backing_dev_info);
 	if (!err)
 		bdi_register(&default_backing_dev_info, NULL, "default");
@@ -412,6 +416,23 @@ static void bdi_flush_io(struct backing_dev_info *bdi)
 	generic_sync_bdi_inodes(NULL, &wbc);
 }
 
+static int bdi_sync_supers(void *unused)
+{
+	set_user_nice(current, 0);
+
+	while (!kthread_should_stop()) {
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(msecs_to_jiffies(dirty_expire_interval * 10));
+
+		/*
+		 * Do this periodically, like kupdated() did before.
+		 */
+		sync_supers();
+	}
+
+	return 0;
+}
+
 static int bdi_forker_task(void *ptr)
 {
 	struct bdi_writeback *me = ptr;
@@ -424,11 +445,6 @@ static int bdi_forker_task(void *ptr)
 		struct bdi_writeback *wb;
 
 		/*
-		 * Do this periodically, like kupdated() did before.
-		 */
-		sync_supers();
-
-		/*
 		 * Temporary measure, we want to make sure we don't see
 		 * dirty data on the default backing_dev_info
 		 */

-- 
Jens Axboe


  reply	other threads:[~2009-05-27 19:45 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27  9:41 [PATCH 0/11] Per-bdi writeback flusher threads v8 Jens Axboe
2009-05-27  9:41 ` [PATCH 01/11] ntfs: remove old debug check for dirty data in ntfs_put_super() Jens Axboe
2009-05-27  9:41 ` [PATCH 02/11] btrfs: properly register fs backing device Jens Axboe
2009-05-27  9:41 ` [PATCH 03/11] writeback: move dirty inodes from super_block to backing_dev_info Jens Axboe
2009-05-27  9:41 ` [PATCH 04/11] writeback: switch to per-bdi threads for flushing data Jens Axboe
2009-05-27 11:11   ` Peter Zijlstra
2009-05-27 11:24     ` Jens Axboe
2009-05-27 15:14   ` Jan Kara
2009-05-27 17:50     ` Jens Axboe
2009-05-28 14:45       ` Jan Kara
2009-05-27  9:41 ` [PATCH 05/11] writeback: get rid of pdflush completely Jens Axboe
2009-05-27  9:41 ` [PATCH 06/11] writeback: separate the flushing state/task from the bdi Jens Axboe
2009-05-27  9:41 ` [PATCH 07/11] writeback: support > 1 flusher thread per bdi Jens Axboe
2009-05-28  9:27   ` Jan Kara
2009-05-28 10:40     ` Jens Axboe
2009-05-28 12:43       ` Jan Kara
2009-05-28 12:53         ` Jens Axboe
2009-05-28 13:58           ` Jan Kara
2009-05-27  9:41 ` [PATCH 08/11] writeback: allow sleepy exit of default writeback task Jens Axboe
2009-05-27  9:41 ` [PATCH 09/11] writeback: add some debug inode list counters to bdi stats Jens Axboe
2009-05-27  9:41 ` [PATCH 10/11] writeback: add name to backing_dev_info Jens Axboe
2009-05-27  9:41 ` [PATCH 11/11] writeback: check for registered bdi in flusher add and inode dirty Jens Axboe
2009-05-27 12:41 ` [PATCH 0/11] Per-bdi writeback flusher threads v8 Richard Kennedy
2009-05-27 12:47   ` Jens Axboe
2009-05-27 14:47 ` Theodore Tso
2009-05-27 15:05   ` Jens Axboe
2009-05-27 17:53   ` Theodore Tso
2009-05-27 17:57     ` Jens Axboe
2009-05-27 17:58     ` Theodore Tso
2009-05-27 18:14       ` Jens Axboe
2009-05-27 19:15         ` Jens Axboe
2009-05-27 19:45           ` Jens Axboe [this message]
2009-05-28  0:49             ` Theodore Tso
2009-05-28  9:28               ` Jan Kara
2009-05-28  9:36                 ` Jens Axboe
2009-05-28 15:23                 ` Eric W. Biederman
2009-05-28 19:32                   ` Theodore Tso
2009-05-28 19:38                     ` 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=20090527194543.GT11363@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=chris.mason@oracle.com \
    --cc=damien.wyart@free.fr \
    --cc=david@fromorbit.com \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=richard@rsk.demon.co.uk \
    --cc=tytso@mit.edu \
    --cc=yanmin_zhang@linux.intel.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;
as well as URLs for NNTP newsgroup(s).