diff options
author | Josef Bacik <jbacik@fusionio.com> | 2013-08-29 16:51:22 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2013-09-01 08:16:41 -0400 |
commit | 45d5fd14d22304c9a40d5aae75ec610f5d1cbb53 (patch) | |
tree | c2c69e5e856b5da2ed9d8b3920d0988f84e44e89 /fs | |
parent | 7f4f6e0a3f6db9c214de38c792c483b8076bcd6a (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')
-rw-r--r-- | fs/btrfs/disk-io.c | 11 |
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 |