Hello, On Tue, Jul 30, 2013 at 09:07:08PM +0800, Shaohua Li wrote: > Ok, I should explain here. I can't add a work_struct for each stripe, because > this will stress workqueue very hard. My system handles > 1M/s stripes, which > makes workqueue pool lock contended very hard. It doesn't have to be embedding work_struct in each stripe and schduling them altogether. It's more about scheduling "work units" rather than "workers" - ie. letting each scheduled work item handle single work unit rather than making it dispatch multiple work items. It may make controlling concurrency a bit more interesting but you can always do it with workqueue_set_max_active(), which is the intended usage anyway. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html