Displaying 4 results from an estimated 4 matches for "caching_threads".
Did you mean:
caching_thread
2013 Aug 29
4
[PATCH] Notify caching_thread()s to give up on extent_commit_sem when needed.
...like find_free_extent() and in commit
path via commit_cowonly_roots().
This patch is an RFC, that attempts to fix this problem, by notifying the
caching threads to give up on extent_commit_sem.
On a system with a lot of metadata (~20Gb total metadata, ~10Gb extent tree),
with increased number of caching_threads, commits were very slow,
stuck in commit_cowonly_roots, due to this issue.
With this patch, commits no longer get stuck in commit_cowonly_roots.
This patch is not indented to be applied, just a request to comment on whether
you agree this problem happens, and whether the fix goes in the right dire...
2010 Apr 19
0
Memory barrier not required in cached_block_group
...86 or x86-64
should not reorder it.However,Alpha might reorder it.So memory barrier
maybe required in Alpha case.
Again,in function find_free_extent the code snippet is
if (loop > LOOP_CACHING_NOWAIT ||
(loop > LOOP_FIND_IDEAL &&
atomic_read(&space_info->caching_threads) < 2)) {
ret = cache_block_group(block_group);
BUG_ON(ret);
}
In this code also I believe the architecture should not reorder the
read with atomic_read of caching_threads because of if condition and
x86-64 not doing read reordering from software point of view.Also,any
writ...
2013 Aug 30
17
[PATCH] rwsem: add rwsem_is_contended
Btrfs uses an rwsem to control access to its extent tree. Threads will hold a
read lock on this rwsem while they scan the extent tree, and if need_resched()
they will drop the lock and schedule. The transaction commit needs to take a
write lock for this rwsem for a very short period to switch out the commit
roots. If there are a lot of threads doing this caching operation we can starve
out the
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...rans, bytenr, num_bytes,
parent, root_objectid, owner,
offset, BTRFS_DROP_DELAYED_REF, NULL);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
}
return ret;
}
@@ -4663,7 +4663,7 @@ have_block_group:
(loop > LOOP_FIND_IDEAL &&
atomic_read(&space_info->caching_threads) < 2)) {
ret = cache_block_group(block_group);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
}
found_uncached_bg = true;
@@ -5088,7 +5088,7 @@ static int alloc_reserved_file_extent(struct btrfs_trans_handle *trans,
path->leave_spinning = 1;
ret = btrfs_insert_empty_item...