[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090526085648.GD11363@kernel.dk>
Date: Tue, 26 May 2009 10:56:48 +0200
From: Jens Axboe <jens.axboe@...cle.com>
To: Jan Kara <jack@...e.cz>
Cc: linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
chris.mason@...cle.com, david@...morbit.com, hch@...radead.org,
akpm@...ux-foundation.org, yanmin_zhang@...ux.intel.com
Subject: Re: [PATCH 04/12] writeback: switch to per-bdi threads for
flushing data
On Mon, May 25 2009, Jan Kara wrote:
> > +static void bdi_kupdated(struct backing_dev_info *bdi)
> > +{
> > + unsigned long oldest_jif;
> > + long nr_to_write;
> > + struct writeback_control wbc = {
> > + .bdi = bdi,
> > + .sync_mode = WB_SYNC_NONE,
> > + .older_than_this = &oldest_jif,
> > + .nr_to_write = 0,
> > + .for_kupdate = 1,
> > + .range_cyclic = 1,
> > + };
> > +
> > + sync_supers();
> Hmm, so each BDI flusher thread is going to sync all the superblocks?
> Isn't there a better way? I suppose we *should* be able to somehow go
> from a BDI to a superblock (or maybe a list of those) so that we can write
> per-fs metadata not bound to inodes.
I just moved the sync_supers() to the bdi_forker_task(). That makes it
global at the same interval of wakeups, instead of doing in the bdi
threads. It would be nice to sync locally instead, but that's something
that can wait for later (if ever).
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists