search for: rwsem_is_contended

Displaying 4 results from an estimated 4 matches for "rwsem_is_contended".

2013 Aug 30
17
[PATCH] rwsem: add rwsem_is_contended
...ct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem); extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem); extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *); extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem); +extern int rwsem_is_contended(struct rw_semaphore *sem); /* Include the arch specific part */ #include <asm/rwsem.h> diff --git a/lib/rwsem.c b/lib/rwsem.c index 19c5fa9..20858cd 100644 --- a/lib/rwsem.c +++ b/lib/rwsem.c @@ -287,6 +287,23 @@ struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem) return...
2018 Mar 19
0
get_user_pages returning 0 (was Re: kernel BUG at drivers/vhost/vhost.c:LINE!)
...is prepared to re-acquire mmap_sem and retry the operation if >> needed. This is used to split off long operations if they are going to >> block on a disk transfer, or when we detect contention on the mmap_sem. >> >> [akpm at linux-foundation.org: remove ref to rwsem_is_contended()] >> Signed-off-by: Michel Lespinasse <walken at google.com> >> Cc: Hugh Dickins <hughd at google.com> >> Cc: Rik van Riel <riel at redhat.com> >> Cc: Peter Zijlstra <peterz at infradead.org> >> Cc: Nick Piggin <npiggin a...
2018 Mar 19
0
get_user_pages returning 0 (was Re: kernel BUG at drivers/vhost/vhost.c:LINE!)
...r to signal that the caller is prepared to re-acquire mmap_sem and retry the operation if needed. This is used to split off long operations if they are going to block on a disk transfer, or when we detect contention on the mmap_sem. [akpm at linux-foundation.org: remove ref to rwsem_is_contended()] Signed-off-by: Michel Lespinasse <walken at google.com> Cc: Hugh Dickins <hughd at google.com> Cc: Rik van Riel <riel at redhat.com> Cc: Peter Zijlstra <peterz at infradead.org> Cc: Nick Piggin <npiggin at kernel.dk> Cc: KOSAKI Motohiro <k...
2013 Aug 29
4
[PATCH] Notify caching_thread()s to give up on extent_commit_sem when needed.
caching_thread()s do all their work under read access to extent_commit_sem. They give up on this read access only when need_resched() tells them, or when they exit. As a result, somebody that wants a WRITE access to this sem, might wait for a long time. Especially this is problematic in cache_block_group(), which can be called on critical paths like find_free_extent() and in commit path via