All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RT]  rt: add rwsem_is_contended() definition to rwsem_rt.h
@ 2014-08-27 21:09 Clark Williams
  2015-02-17 10:09 ` Sebastian Andrzej Siewior
  0 siblings, 1 reply; 3+ messages in thread
From: Clark Williams @ 2014-08-27 21:09 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, RT

[-- Attachment #1: Type: text/plain, Size: 932 bytes --]

Thomas,

The latest btrfs code uses rwsem_is_contended() in the function
caching_thread(). On RT systems, include/linux/rwsem.h is replaced with
include/linux/rwsem_rt.h which does not provide a definition for
rwsem_is_contended().  This commit provides a definition that should
work on RT (where the lock is actually an rt_mutex).

Signed-off-by: Clark Williams <williams@redhat.com>
---
 include/linux/rwsem_rt.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/linux/rwsem_rt.h b/include/linux/rwsem_rt.h
index e94d945c5844..77035d7abc04 100644
--- a/include/linux/rwsem_rt.h
+++ b/include/linux/rwsem_rt.h
@@ -125,4 +125,9 @@ static inline void down_write_nest_lock(struct rw_semaphore *sem,
        rt_down_write_nested_lock(sem, NULL);
 }
 #endif
+
+static inline int rwsem_is_contended(struct rw_semaphore *sem)
+{
+       return !plist_head_empty(&sem->lock.wait_list);
+}
 #endif

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH RT]  rt: add rwsem_is_contended() definition to rwsem_rt.h
  2014-08-27 21:09 [PATCH RT] rt: add rwsem_is_contended() definition to rwsem_rt.h Clark Williams
@ 2015-02-17 10:09 ` Sebastian Andrzej Siewior
  2015-02-17 19:08   ` Clark Williams
  0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Andrzej Siewior @ 2015-02-17 10:09 UTC (permalink / raw)
  To: Clark Williams; +Cc: Thomas Gleixner, LKML, RT

* Clark Williams | 2014-08-27 16:09:28 [-0500]:

>Thomas,
>
>The latest btrfs code uses rwsem_is_contended() in the function
>caching_thread(). On RT systems, include/linux/rwsem.h is replaced with
>include/linux/rwsem_rt.h which does not provide a definition for
>rwsem_is_contended().  This commit provides a definition that should
>work on RT (where the lock is actually an rt_mutex).

I see that I added rwsem_is_contended() in v3.14-rt1 which does:
|static inline int rwsem_is_contended(struct rw_semaphore *sem)
|{
|      /* rt_mutex_has_waiters() */
|      return !RB_EMPTY_ROOT(&sem->lock.waiters);
|}

Do you lack this in kernel prior to v3.14?

Sebastian

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH RT]  rt: add rwsem_is_contended() definition to rwsem_rt.h
  2015-02-17 10:09 ` Sebastian Andrzej Siewior
@ 2015-02-17 19:08   ` Clark Williams
  0 siblings, 0 replies; 3+ messages in thread
From: Clark Williams @ 2015-02-17 19:08 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior; +Cc: Thomas Gleixner, LKML, RT

[-- Attachment #1: Type: text/plain, Size: 943 bytes --]

On Tue, 17 Feb 2015 11:09:11 +0100
Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote:

> * Clark Williams | 2014-08-27 16:09:28 [-0500]:
> 
> >Thomas,
> >
> >The latest btrfs code uses rwsem_is_contended() in the function
> >caching_thread(). On RT systems, include/linux/rwsem.h is replaced with
> >include/linux/rwsem_rt.h which does not provide a definition for
> >rwsem_is_contended().  This commit provides a definition that should
> >work on RT (where the lock is actually an rt_mutex).
> 
> I see that I added rwsem_is_contended() in v3.14-rt1 which does:
> |static inline int rwsem_is_contended(struct rw_semaphore *sem)
> |{
> |      /* rt_mutex_has_waiters() */
> |      return !RB_EMPTY_ROOT(&sem->lock.waiters);
> |}
> 
> Do you lack this in kernel prior to v3.14?
> 
> Sebastian

Yes, that was the problem. I was back-porting to a 3.10 and was missing
the definition. Sorry for the noise.

Clark

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-02-17 19:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-27 21:09 [PATCH RT] rt: add rwsem_is_contended() definition to rwsem_rt.h Clark Williams
2015-02-17 10:09 ` Sebastian Andrzej Siewior
2015-02-17 19:08   ` Clark Williams

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.