xfs: convert to alloc_workqueue()
Convert from create[_singlethread]_workqueue() to alloc_workqueue(). * xfsdatad_workqueue and xfsconvertd_workqueue are identity converted. Using higher concurrency limit might be useful but given the complexity of workqueue usage in xfs, proceeding cautiously seems better. * xfs_mru_reap_wq is converted to non-ordered workqueue with max concurrency of 1 as the work items don't require any specific ordering and already have proper synchronization. It seems it was singlethreaded to save worker threads, which is no longer a concern. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Alex Elder <aelder@sgi.com> Cc: xfs-masters@oss.sgi.com Cc: Christoph Hellwig <hch@infradead.org>
This commit is contained in:
parent
28aadf5169
commit
83e759043a
|
@ -2022,11 +2022,12 @@ xfs_buf_init(void)
|
||||||
if (!xfslogd_workqueue)
|
if (!xfslogd_workqueue)
|
||||||
goto out_free_buf_zone;
|
goto out_free_buf_zone;
|
||||||
|
|
||||||
xfsdatad_workqueue = create_workqueue("xfsdatad");
|
xfsdatad_workqueue = alloc_workqueue("xfsdatad", WQ_MEM_RECLAIM, 1);
|
||||||
if (!xfsdatad_workqueue)
|
if (!xfsdatad_workqueue)
|
||||||
goto out_destroy_xfslogd_workqueue;
|
goto out_destroy_xfslogd_workqueue;
|
||||||
|
|
||||||
xfsconvertd_workqueue = create_workqueue("xfsconvertd");
|
xfsconvertd_workqueue = alloc_workqueue("xfsconvertd",
|
||||||
|
WQ_MEM_RECLAIM, 1);
|
||||||
if (!xfsconvertd_workqueue)
|
if (!xfsconvertd_workqueue)
|
||||||
goto out_destroy_xfsdatad_workqueue;
|
goto out_destroy_xfsdatad_workqueue;
|
||||||
|
|
||||||
|
|
|
@ -309,7 +309,7 @@ xfs_mru_cache_init(void)
|
||||||
if (!xfs_mru_elem_zone)
|
if (!xfs_mru_elem_zone)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
xfs_mru_reap_wq = create_singlethread_workqueue("xfs_mru_cache");
|
xfs_mru_reap_wq = alloc_workqueue("xfs_mru_cache", WQ_MEM_RECLAIM, 1);
|
||||||
if (!xfs_mru_reap_wq)
|
if (!xfs_mru_reap_wq)
|
||||||
goto out_destroy_mru_elem_zone;
|
goto out_destroy_mru_elem_zone;
|
||||||
|
|
||||||
|
|
Reference in New Issue