Messages in this thread | | | Date | Wed, 12 Apr 2023 08:10:58 -0400 | Subject | Re: [PATCH v2] locking/rwsem: Add __always_inline annotation to __down_read_common() | From | Waiman Long <> |
| |
On 4/11/23 23:59, John Stultz wrote: > Apparently despite it being marked inline, the compiler > may not inline __down_read_common() which makes it difficult > to identify the cause of lock contention, as the blocked > function will always be listed as __down_read_common(). > > So this patch adds __always_inline annotation to the > function to force it to be inlines so the calling function > will be listed. > > Cc: Minchan Kim <minchan@kernel.org> > Cc: Tim Murray <timmurray@google.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Will Deacon <will@kernel.org> > Cc: Waiman Long <longman@redhat.com> > Cc: Boqun Feng <boqun.feng@gmail.com> > Cc: kernel-team@android.com > Cc: stable@vger.kernel.org > Fixes: c995e638ccbb ("locking/rwsem: Fold __down_{read,write}*()") > Reported-by: Tim Murray <timmurray@google.com> > Signed-off-by: John Stultz <jstultz@google.com> > --- > v2: Reworked to use __always_inline instead of __sched as > suggested by Waiman Long > --- > kernel/locking/rwsem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c > index acb5a50309a1..e99eef8ea552 100644 > --- a/kernel/locking/rwsem.c > +++ b/kernel/locking/rwsem.c > @@ -1240,7 +1240,7 @@ static struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem) > /* > * lock for reading > */ > -static inline int __down_read_common(struct rw_semaphore *sem, int state) > +static __always_inline int __down_read_common(struct rw_semaphore *sem, int state) > { > int ret = 0; > long count; Reviewed-by: Waiman Long <longman@redhat.com>
| |