Re: [PATCH 0/13] Per-bdi writeback flusher threads #3

From: Zhang, Yanmin
Date: Thu Apr 09 2009 - 23:46:24 EST


On Wed, 2009-04-08 at 14:00 +0200, Jens Axboe wrote:
> Hi,
>
> This is the third version of the patchset. Changes since v2:
Jens,

The patchset forgets kernel/sysctl.c part, so the compilation link fails.

Yanmin

>
> - Dropped some of the prep patches, since they are now in mainline.
> Unfortunately we grew another pdflush_operation() user (emergency thaw),
> so I had to introduce a new prep patch for that.
>
> - Fix the data consistency issue in generic_sync_sb_inodes() with
> WB_SYNC_ALL that Jan Kara pointed out. I had to switch bdi_list
> to SRCU protection for this. I pondered using a mutex for bdi_lock,
> but that does not work with the pending list <-> active list
> RCU callback scheme.
>
> - Fix race in bdi task removal, we need to synchronize_rcu() before
> doing the wb task kill, not after. This ensures that once we do the
> task kill, nobody is accessing our bdi anymore.
>
> - Separate default wb task creation from filesystem initiated task
> additions. The former can be racy and should check the pending bit
> only to see whether it should proceed, the latter should block waiting
> for previous task additions to finish.
>
> - Move the bdi_cap_flusher_forker() back in the series to where the
> BDI_CAP_FLUSH_FORKER flag was introduced.
>
> - Fix a problem where the first incremental step ended up writing back
> all the dirty inodes on a bdi, not just the ones belonging to a
> specific super_block. Only a problem after the first patch, the 2nd
> patch in the series got it right again. (Thanks Jan Kara).
>
> - Allow writeback tasks to exit, if the bdi has been idle for a certain
> period of time. The lazy create will recreate them if we see dirty
> inodes on the bdi later on.
>
> - btrfs must register its fs_info bdi, or direct writeback will not work
> as intended. Also kill capabilities inherit from
> default_backing_dev_info and fix failure to check bdi_init() return
> value.
>
> The branch can be pulled from:
>
> git://git.kernel.dk/linux-2.6-block.git writeback
>
> Or these patches can be applied directly to 2.6.30-rc1.
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/