On Thu, Sep 03, 2009 at 10:46:29PM -0400, Christoph Hellwig wrote: > On Wed, Sep 02, 2009 at 10:42:41AM +0200, Jens Axboe wrote: > > This is a first step at introducing per-bdi flusher threads. We should > > have no change in behaviour, although sb_has_dirty_inodes() is now > > ridiculously expensive, as there's no easy way to answer that question. > > Not a huge problem, since it'll be deleted in subsequent patches. > > After this patch generic_sync_sb_inodes becomes pretty useless. We > have two callers which each want to call bdi_writeback_all, and one of > them wants to wait, so just split that into a separate helper. Looks good. > Also move wakeup_flusher_threads into fs-writeback.c, that allows us > to make bdi_writeback_all static. Ditto, I'll fold these in. > Btw, I do not think implementing sync_inodes_sb/sync_inodes_sb_wait > is a smart and efficient idea. Right now we have a n:1 superblock:bdi > relation, so we really should make use of that instead of doing linear > search of all bdis in the system. If we introduce multiple bdis per > superblock we should add an efficient lookup data structure for them. Yes definitely, the scan will get optimized. Once this is merged, I'll attack the multiple bdis per superblock issue, since we'll need that sooner rather than later. Pushing 2-3GB/s and up with buffered writeback will require more than one thread. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html