From: Ingo Molnar <mingo@kernel.org>
To: Josef Bacik <jbacik@fb.com>, Chris Mason <clm@fb.com>
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org
Subject: Re: [PATCH 1/2] rwsem: add rwsem_is_contended
Date: Mon, 13 Jan 2014 20:02:21 +0100 [thread overview]
Message-ID: <20140113190221.GA9667@gmail.com> (raw)
In-Reply-To: <1389633531-1921-1-git-send-email-jbacik@fb.com>
* Josef Bacik <jbacik@fb.com> wrote:
> From: Josef Bacik <jbacik@fusionio.com>
>
> Btrfs needs a simple way to know if it needs to let go of it's read lock on a
> rwsem. Introduce rwsem_is_contended to check to see if there are any waiters on
> this rwsem currently. This is just a hueristic, it is meant to be light and not
> 100% accurate and called by somebody already holding on to the rwsem in either
> read or write. Thanks,
>
> Signed-off-by: Josef Bacik <jbacik@fusionio.com>
> ---
> include/linux/rwsem.h | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
> index 0616ffe..03f3b05 100644
> --- a/include/linux/rwsem.h
> +++ b/include/linux/rwsem.h
> @@ -75,6 +75,17 @@ do { \
> } while (0)
>
> /*
> + * This is the same regardless of which rwsem implementation that is being used.
> + * It is just a heuristic meant to be called by somebody alreadying holding the
> + * rwsem to see if somebody from an incompatible type is wanting access to the
> + * lock.
> + */
> +static inline int rwsem_is_contended(struct rw_semaphore *sem)
> +{
> + return !list_empty(&sem->wait_list);
> +}
> +
> +/*
> * lock for reading
> */
> extern void down_read(struct rw_semaphore *sem);
Looks good to me. To make it easier to merge 2/2 feel free to add this
to the BTRFS tree, with my Acked-by:
Acked-by: Ingo Molnar <mingo@kernel.org>
Thanks,
Ingo
next prev parent reply other threads:[~2014-01-13 19:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-13 17:18 [PATCH 1/2] rwsem: add rwsem_is_contended Josef Bacik
2014-01-13 17:18 ` [PATCH 2/2] Btrfs: stop caching thread if extent_commit_sem is contended Josef Bacik
2014-01-13 19:02 ` Ingo Molnar [this message]
2014-01-13 19:31 ` [PATCH 1/2] rwsem: add rwsem_is_contended Josef Bacik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140113190221.GA9667@gmail.com \
--to=mingo@kernel.org \
--cc=clm@fb.com \
--cc=jbacik@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.