diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 47 |
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 | ||