|
@@ -1625,12 +1625,12 @@ STATIC int __init
|
|
xfs_init_workqueues(void)
|
|
xfs_init_workqueues(void)
|
|
{
|
|
{
|
|
/*
|
|
/*
|
|
- * max_active is set to 8 to give enough concurency to allow
|
|
|
|
- * multiple work operations on each CPU to run. This allows multiple
|
|
|
|
- * filesystems to be running sync work concurrently, and scales with
|
|
|
|
- * the number of CPUs in the system.
|
|
|
|
|
|
+ * We never want to the same work item to run twice, reclaiming inodes
|
|
|
|
+ * or idling the log is not going to get any faster by multiple CPUs
|
|
|
|
+ * competing for ressources. Use the default large max_active value
|
|
|
|
+ * so that even lots of filesystems can perform these task in parallel.
|
|
*/
|
|
*/
|
|
- xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_CPU_INTENSIVE, 8);
|
|
|
|
|
|
+ xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_NON_REENTRANT, 0);
|
|
if (!xfs_syncd_wq)
|
|
if (!xfs_syncd_wq)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
return 0;
|
|
return 0;
|