aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c47
1 files changed, 28 insertions, 19 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 49565626321e..cb6d13c39bee 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2310,17 +2310,19 @@ static int btrfs_init_workqueues(struct btrfs_fs_info *fs_info,
2310 unsigned int flags = WQ_MEM_RECLAIM | WQ_FREEZABLE | WQ_UNBOUND; 2310 unsigned int flags = WQ_MEM_RECLAIM | WQ_FREEZABLE | WQ_UNBOUND;
2311 2311
2312 fs_info->workers = 2312 fs_info->workers =
2313 btrfs_alloc_workqueue("worker", flags | WQ_HIGHPRI, 2313 btrfs_alloc_workqueue(fs_info, "worker",
2314 max_active, 16); 2314 flags | WQ_HIGHPRI, max_active, 16);
2315 2315
2316 fs_info->delalloc_workers = 2316 fs_info->delalloc_workers =
2317 btrfs_alloc_workqueue("delalloc", flags, max_active, 2); 2317 btrfs_alloc_workqueue(fs_info, "delalloc",
2318 flags, max_active, 2);
2318 2319
2319 fs_info->flush_workers = 2320 fs_info->flush_workers =
2320 btrfs_alloc_workqueue("flush_delalloc", flags, max_active, 0); 2321 btrfs_alloc_workqueue(fs_info, "flush_delalloc",
2322 flags, max_active, 0);
2321 2323
2322 fs_info->caching_workers = 2324 fs_info->caching_workers =
2323 btrfs_alloc_workqueue("cache", flags, max_active, 0); 2325 btrfs_alloc_workqueue(fs_info, "cache", flags, max_active, 0);
2324 2326
2325 /* 2327 /*
2326 * a higher idle thresh on the submit workers makes it much more 2328 * a higher idle thresh on the submit workers makes it much more
@@ -2328,41 +2330,48 @@ static int btrfs_init_workqueues(struct btrfs_fs_info *fs_info,
2328 * devices 2330 * devices
2329 */ 2331 */
2330 fs_info->submit_workers = 2332 fs_info->submit_workers =
2331 btrfs_alloc_workqueue("submit", flags, 2333 btrfs_alloc_workqueue(fs_info, "submit", flags,
2332 min_t(u64, fs_devices->num_devices, 2334 min_t(u64, fs_devices->num_devices,
2333 max_active), 64); 2335 max_active), 64);
2334 2336
2335 fs_info->fixup_workers = 2337 fs_info->fixup_workers =
2336 btrfs_alloc_workqueue("fixup", flags, 1, 0); 2338 btrfs_alloc_workqueue(fs_info, "fixup", flags, 1, 0);
2337 2339
2338 /* 2340 /*
2339 * endios are largely parallel and should have a very 2341 * endios are largely parallel and should have a very
2340 * low idle thresh 2342 * low idle thresh
2341 */ 2343 */
2342 fs_info->endio_workers = 2344 fs_info->endio_workers =
2343 btrfs_alloc_workqueue("endio", flags, max_active, 4); 2345 btrfs_alloc_workqueue(fs_info, "endio", flags, max_active, 4);
2344 fs_info->endio_meta_workers = 2346 fs_info->endio_meta_workers =
2345 btrfs_alloc_workqueue("endio-meta", flags, max_active, 4); 2347 btrfs_alloc_workqueue(fs_info, "endio-meta", flags,
2348 max_active, 4);
2346 fs_info->endio_meta_write_workers = 2349 fs_info->endio_meta_write_workers =
2347 btrfs_alloc_workqueue("endio-meta-write", flags, max_active, 2); 2350 btrfs_alloc_workqueue(fs_info, "endio-meta-write", flags,
2351 max_active, 2);
2348 fs_info->endio_raid56_workers = 2352 fs_info->endio_raid56_workers =
2349 btrfs_alloc_workqueue("endio-raid56", flags, max_active, 4); 2353 btrfs_alloc_workqueue(fs_info, "endio-raid56", flags,
2354 max_active, 4);
2350 fs_info->endio_repair_workers = 2355 fs_info->endio_repair_workers =
2351 btrfs_alloc_workqueue("endio-repair", flags, 1, 0); 2356 btrfs_alloc_workqueue(fs_info, "endio-repair", flags, 1, 0);
2352 fs_info->rmw_workers = 2357 fs_info->rmw_workers =
2353 btrfs_alloc_workqueue("rmw", flags, max_active, 2); 2358 btrfs_alloc_workqueue(fs_info, "rmw", flags, max_active, 2);
2354 fs_info->endio_write_workers = 2359 fs_info->endio_write_workers =
2355 btrfs_alloc_workqueue("endio-write", flags, max_active, 2); 2360 btrfs_alloc_workqueue(fs_info, "endio-write", flags,
2361 max_active, 2);
2356 fs_info->endio_freespace_worker = 2362 fs_info->endio_freespace_worker =
2357 btrfs_alloc_workqueue("freespace-write", flags, max_active, 0); 2363 btrfs_alloc_workqueue(fs_info, "freespace-write", flags,
2364 max_active, 0);
2358 fs_info->delayed_workers = 2365 fs_info->delayed_workers =
2359 btrfs_alloc_workqueue("delayed-meta", flags, max_active, 0); 2366 btrfs_alloc_workqueue(fs_info, "delayed-meta", flags,
2367 max_active, 0);
2360 fs_info->readahead_workers = 2368 fs_info->readahead_workers =
2361 btrfs_alloc_workqueue("readahead", flags, max_active, 2); 2369 btrfs_alloc_workqueue(fs_info, "readahead", flags,
2370 max_active, 2);
2362 fs_info->qgroup_rescan_workers = 2371 fs_info->qgroup_rescan_workers =
2363 btrfs_alloc_workqueue("qgroup-rescan", flags, 1, 0); 2372 btrfs_alloc_workqueue(fs_info, "qgroup-rescan", flags, 1, 0);
2364 fs_info->extent_workers = 2373 fs_info->extent_workers =
2365 btrfs_alloc_workqueue("extent-refs", flags, 2374 btrfs_alloc_workqueue(fs_info, "extent-refs", flags,
2366 min_t(u64, fs_devices->num_devices, 2375 min_t(u64, fs_devices->num_devices,
2367 max_active), 8); 2376 max_active), 8);
2368 2377