On Fri, Mar 25, 2011 at 03:45:44PM +0100, Tejun Heo wrote: > Both are about the same conversion but the one using alloc_workqueue() > is better because 1. create_singlethread_workqueue() is going away and > 2. it doesn't require strict ordering among queued works. > > Ted, what do you think? Agreed. And it looks like Linus agreed as well: diff --cc fs/ext4/super.c index 203f9e4,ccfa686..22546ad --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@@ -3511,12 -3514,7 +3516,12 @@@ static int ext4_fill_super(struct super percpu_counter_set(&sbi->s_dirtyblocks_counter, 0); no_journal: - EXT4_SB(sb)->dio_unwritten_wq = create_singlethread_workqueue("ext4-dio- + /* + * The maximum number of concurrent works can be high and + * concurrency isn't really necessary. Limit it to 1. + */ + EXT4_SB(sb)->dio_unwritten_wq = - alloc_workqueue("ext4-dio-unwritten", WQ_MEM_RECLAIM, 1); ++ alloc_workqueue("ext4-dio-unwritten", WQ_MEM_RECLAIM | WQ_UNBOUND, 1); if (!EXT4_SB(sb)->dio_unwritten_wq) { printk(KERN_ERR "EXT4-fs: failed to create DIO workqueue\n"); goto failed_mount_wq; - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html