From: Andrew Morton <akpm@linux-foundation.org>
To: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH 2/2] mutex: use spin_[un]lock instead of arch_spin_[un]lock
Date: Thu, 24 Jan 2013 16:14:13 -0800 [thread overview]
Message-ID: <20130124161413.a3903fa4.akpm@linux-foundation.org> (raw)
In-Reply-To: <1359019365-23646-2-git-send-email-yuanhan.liu@linux.intel.com>
On Thu, 24 Jan 2013 17:22:45 +0800
Yuanhan Liu <yuanhan.liu@linux.intel.com> wrote:
> Use spin_[un]lock instead of arch_spin_[un]lock in mutex-debug.h so
> that we can collect the lock statistics of spin_lock_mutex from
> /proc/lock_stat.
>
> ...
>
> --- a/kernel/mutex-debug.h
> +++ b/kernel/mutex-debug.h
> @@ -43,13 +43,13 @@ static inline void mutex_clear_owner(struct mutex *lock)
> \
> DEBUG_LOCKS_WARN_ON(in_interrupt()); \
> local_irq_save(flags); \
> - arch_spin_lock(&(lock)->rlock.raw_lock);\
> + spin_lock(lock); \
> DEBUG_LOCKS_WARN_ON(l->magic != l); \
> } while (0)
>
> #define spin_unlock_mutex(lock, flags) \
> do { \
> - arch_spin_unlock(&(lock)->rlock.raw_lock); \
> + spin_unlock(lock); \
> local_irq_restore(flags); \
> preempt_check_resched(); \
> } while (0)
>From my reading of the c2f21ce2e3128 changelog, this patch might screw
up the -rt kernel:
locking: Implement new raw_spinlock
Now that the raw_spin name space is freed up, we can implement
raw_spinlock and the related functions which are used to annotate the
locks which are not converted to sleeping spinlocks in preempt-rt.
A side effect is that only such locks can be used with the low level
lock fsunctions which circumvent lockdep.
For !rt spin_* functions are mapped to the raw_spin* implementations.
Also, I believe your patch permits this cleanup:
--- a/kernel/mutex-debug.h~mutex-use-spin_lock-instead-of-arch_spin_lock-fix
+++ a/kernel/mutex-debug.h
@@ -42,14 +42,12 @@ static inline void mutex_clear_owner(str
struct mutex *l = container_of(lock, struct mutex, wait_lock); \
\
DEBUG_LOCKS_WARN_ON(in_interrupt()); \
- local_irq_save(flags); \
- spin_lock(lock); \
+ spin_lock_irqsave(lock, flags); \
DEBUG_LOCKS_WARN_ON(l->magic != l); \
} while (0)
#define spin_unlock_mutex(lock, flags) \
do { \
- spin_unlock(lock); \
- local_irq_restore(flags); \
+ spin_unlock_irqrestore(lock, flags); \
preempt_check_resched(); \
} while (0)
But we should hear from the -rt guys (at least!) before proceeding with
this, please.
next prev parent reply other threads:[~2013-01-25 0:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-24 9:22 [PATCH 1/2] lockstat: fix a typo Yuanhan Liu
2013-01-24 9:22 ` [PATCH 2/2] mutex: use spin_[un]lock instead of arch_spin_[un]lock Yuanhan Liu
2013-01-24 9:58 ` Ingo Molnar
2013-01-24 10:13 ` Yuanhan Liu
2013-01-24 10:14 ` Ingo Molnar
2013-01-24 10:27 ` Yuanhan Liu
2013-01-24 10:54 ` Ingo Molnar
2013-01-25 0:14 ` Andrew Morton [this message]
2013-01-25 0:50 ` Steven Rostedt
2013-01-25 0:56 ` Andrew Morton
2013-01-25 1:03 ` Steven Rostedt
2013-01-25 7:40 ` Ingo Molnar
[not found] ` <CABBm8944FSNDZ2u=PJy0CsZmz=Vm7e+Y5jX+3UFLN5NOSGRgWQ@mail.gmail.com>
2013-01-25 9:24 ` Ingo Molnar
[not found] ` <CABBm896XGVkubML9TyW_MTXMovd6nHoK0v24jbEDJOipzNqpDA@mail.gmail.com>
2013-01-29 9:01 ` Ingo Molnar
[not found] ` <CABBm8979+XVRA-MQRdczMbStJR7DyPwNUvQL+RTuQL0sECOo8g@mail.gmail.com>
2013-01-29 9:28 ` Ingo Molnar
2013-01-24 20:03 ` [tip:core/locking] locking/stat: Fix a typo tip-bot for Yuanhan Liu
2013-02-22 12:20 ` tip-bot for Yuanhan Liu
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=20130124161413.a3903fa4.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=yuanhan.liu@linux.intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome