aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fusionio.com>2013-08-29 16:51:22 -0400
committerChris Mason <chris.mason@fusionio.com>2013-09-01 08:16:41 -0400
commit45d5fd14d22304c9a40d5aae75ec610f5d1cbb53 (patch)
treec2c69e5e856b5da2ed9d8b3920d0988f84e44e89 /fs/btrfs
parent7f4f6e0a3f6db9c214de38c792c483b8076bcd6a (diff)
Btrfs: don't use an async starter for most of our workers
We only need an async starter if we can't make a GFP_NOFS allocation in our current path. This is the case for the endio stuff since it happens in IRQ context, but things like the caching thread workers and the delalloc flushers we can easily make this allocation and start threads right away. Also change the worker count for the caching thread pool. Traditionally we limited this to 2 since we took read locks while caching, but nowadays we do this lockless so there's no reason to limit the number of caching threads. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/disk-io.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 21d1d066758e..4cbb00af92ff 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2483,20 +2483,17 @@ int open_ctree(struct super_block *sb,
2483 &fs_info->generic_worker); 2483 &fs_info->generic_worker);
2484 2484
2485 btrfs_init_workers(&fs_info->delalloc_workers, "delalloc", 2485 btrfs_init_workers(&fs_info->delalloc_workers, "delalloc",
2486 fs_info->thread_pool_size, 2486 fs_info->thread_pool_size, NULL);
2487 &fs_info->generic_worker);
2488 2487
2489 btrfs_init_workers(&fs_info->flush_workers, "flush_delalloc", 2488 btrfs_init_workers(&fs_info->flush_workers, "flush_delalloc",
2490 fs_info->thread_pool_size, 2489 fs_info->thread_pool_size, NULL);
2491 &fs_info->generic_worker);
2492 2490
2493 btrfs_init_workers(&fs_info->submit_workers, "submit", 2491 btrfs_init_workers(&fs_info->submit_workers, "submit",
2494 min_t(u64, fs_devices->num_devices, 2492 min_t(u64, fs_devices->num_devices,
2495 fs_info->thread_pool_size), 2493 fs_info->thread_pool_size), NULL);
2496 &fs_info->generic_worker);
2497 2494
2498 btrfs_init_workers(&fs_info->caching_workers, "cache", 2495 btrfs_init_workers(&fs_info->caching_workers, "cache",
2499 2, &fs_info->generic_worker); 2496 fs_info->thread_pool_size, NULL);
2500 2497
2501 /* a higher idle thresh on the submit workers makes it much more 2498 /* a higher idle thresh on the submit workers makes it much more
2502 * likely that bios will be send down in a sane order to the 2499 * likely that bios will be send down in a sane order to the