linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] lockdep: be nice about building from userspace
@ 2012-11-12 20:50 Sasha Levin
  2012-11-20  6:40 ` Sasha Levin
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Sasha Levin @ 2012-11-12 20:50 UTC (permalink / raw)
  To: peterz, mingo; +Cc: linux-kernel, penberg, Sasha Levin

Lockdep is an awesome piece of code which detects locking issues which are
relevant both to userspace and kernelspace. We can easily make lockdep
work in userspace since there is really no kernel spacific magic going
on in the code.

All we need is to wrap two functions which are used by lockdep and are
very kernel specific.

Doing that will allow tools located in tools/ to easily utilize lockdep's
code for their own use.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
 kernel/lockdep.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 7981e5b..e898cfe 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -584,6 +584,7 @@ static int very_verbose(struct lock_class *class)
 /*
  * Is this the address of a static object:
  */
+#ifdef __KERNEL__
 static int static_obj(void *obj)
 {
 	unsigned long start = (unsigned long) &_stext,
@@ -610,6 +611,7 @@ static int static_obj(void *obj)
 	 */
 	return is_module_address(addr) || is_module_percpu_address(addr);
 }
+#endif
 
 /*
  * To make lock name printouts unique, we calculate a unique
@@ -4109,6 +4111,7 @@ void debug_check_no_locks_held(struct task_struct *task)
 		print_held_locks_bug(task);
 }
 
+#ifdef __KERNEL__
 void debug_show_all_locks(void)
 {
 	struct task_struct *g, *p;
@@ -4166,6 +4169,7 @@ retry:
 		read_unlock(&tasklist_lock);
 }
 EXPORT_SYMBOL_GPL(debug_show_all_locks);
+#endif
 
 /*
  * Careful: only use this function if you are sure that
-- 
1.8.0


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

* Re: [PATCH] lockdep: be nice about building from userspace
  2012-11-12 20:50 [PATCH] lockdep: be nice about building from userspace Sasha Levin
@ 2012-11-20  6:40 ` Sasha Levin
  2012-12-13 18:42   ` Sasha Levin
  2013-01-24 20:43 ` [tip:core/locking] lockdep: Be " tip-bot for Sasha Levin
  2013-11-27 14:08 ` tip-bot for Sasha Levin
  2 siblings, 1 reply; 5+ messages in thread
From: Sasha Levin @ 2012-11-20  6:40 UTC (permalink / raw)
  To: Sasha Levin; +Cc: peterz, mingo, linux-kernel, penberg

Ping?

On 11/12/2012 03:50 PM, Sasha Levin wrote:
> Lockdep is an awesome piece of code which detects locking issues which are
> relevant both to userspace and kernelspace. We can easily make lockdep
> work in userspace since there is really no kernel spacific magic going
> on in the code.
> 
> All we need is to wrap two functions which are used by lockdep and are
> very kernel specific.
> 
> Doing that will allow tools located in tools/ to easily utilize lockdep's
> code for their own use.
> 
> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> ---
>  kernel/lockdep.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/kernel/lockdep.c b/kernel/lockdep.c
> index 7981e5b..e898cfe 100644
> --- a/kernel/lockdep.c
> +++ b/kernel/lockdep.c
> @@ -584,6 +584,7 @@ static int very_verbose(struct lock_class *class)
>  /*
>   * Is this the address of a static object:
>   */
> +#ifdef __KERNEL__
>  static int static_obj(void *obj)
>  {
>  	unsigned long start = (unsigned long) &_stext,
> @@ -610,6 +611,7 @@ static int static_obj(void *obj)
>  	 */
>  	return is_module_address(addr) || is_module_percpu_address(addr);
>  }
> +#endif
>  
>  /*
>   * To make lock name printouts unique, we calculate a unique
> @@ -4109,6 +4111,7 @@ void debug_check_no_locks_held(struct task_struct *task)
>  		print_held_locks_bug(task);
>  }
>  
> +#ifdef __KERNEL__
>  void debug_show_all_locks(void)
>  {
>  	struct task_struct *g, *p;
> @@ -4166,6 +4169,7 @@ retry:
>  		read_unlock(&tasklist_lock);
>  }
>  EXPORT_SYMBOL_GPL(debug_show_all_locks);
> +#endif
>  
>  /*
>   * Careful: only use this function if you are sure that
> 


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

* Re: [PATCH] lockdep: be nice about building from userspace
  2012-11-20  6:40 ` Sasha Levin
@ 2012-12-13 18:42   ` Sasha Levin
  0 siblings, 0 replies; 5+ messages in thread
From: Sasha Levin @ 2012-12-13 18:42 UTC (permalink / raw)
  To: Sasha Levin; +Cc: peterz, mingo, linux-kernel, penberg

Ping?

On Tue, Nov 20, 2012 at 1:40 AM, Sasha Levin <sasha.levin@oracle.com> wrote:
> Ping?
>
> On 11/12/2012 03:50 PM, Sasha Levin wrote:
>> Lockdep is an awesome piece of code which detects locking issues which are
>> relevant both to userspace and kernelspace. We can easily make lockdep
>> work in userspace since there is really no kernel spacific magic going
>> on in the code.
>>
>> All we need is to wrap two functions which are used by lockdep and are
>> very kernel specific.
>>
>> Doing that will allow tools located in tools/ to easily utilize lockdep's
>> code for their own use.
>>
>> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
>> ---
>>  kernel/lockdep.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/kernel/lockdep.c b/kernel/lockdep.c
>> index 7981e5b..e898cfe 100644
>> --- a/kernel/lockdep.c
>> +++ b/kernel/lockdep.c
>> @@ -584,6 +584,7 @@ static int very_verbose(struct lock_class *class)
>>  /*
>>   * Is this the address of a static object:
>>   */
>> +#ifdef __KERNEL__
>>  static int static_obj(void *obj)
>>  {
>>       unsigned long start = (unsigned long) &_stext,
>> @@ -610,6 +611,7 @@ static int static_obj(void *obj)
>>        */
>>       return is_module_address(addr) || is_module_percpu_address(addr);
>>  }
>> +#endif
>>
>>  /*
>>   * To make lock name printouts unique, we calculate a unique
>> @@ -4109,6 +4111,7 @@ void debug_check_no_locks_held(struct task_struct *task)
>>               print_held_locks_bug(task);
>>  }
>>
>> +#ifdef __KERNEL__
>>  void debug_show_all_locks(void)
>>  {
>>       struct task_struct *g, *p;
>> @@ -4166,6 +4169,7 @@ retry:
>>               read_unlock(&tasklist_lock);
>>  }
>>  EXPORT_SYMBOL_GPL(debug_show_all_locks);
>> +#endif
>>
>>  /*
>>   * Careful: only use this function if you are sure that
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* [tip:core/locking] lockdep: Be nice about building from userspace
  2012-11-12 20:50 [PATCH] lockdep: be nice about building from userspace Sasha Levin
  2012-11-20  6:40 ` Sasha Levin
@ 2013-01-24 20:43 ` tip-bot for Sasha Levin
  2013-11-27 14:08 ` tip-bot for Sasha Levin
  2 siblings, 0 replies; 5+ messages in thread
From: tip-bot for Sasha Levin @ 2013-01-24 20:43 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, sasha.levin, hpa, mingo, tglx

Commit-ID:  47dd80e801c32c114bcc6767ad190361c8b70172
Gitweb:     http://git.kernel.org/tip/47dd80e801c32c114bcc6767ad190361c8b70172
Author:     Sasha Levin <sasha.levin@oracle.com>
AuthorDate: Mon, 12 Nov 2012 15:50:46 -0500
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 24 Jan 2013 17:54:50 +0100

lockdep: Be nice about building from userspace

Lockdep is an awesome piece of code which detects locking issues
which are relevant both to userspace and kernelspace. We can
easily make lockdep work in userspace since there is really no
kernel spacific magic going on in the code.

All we need is to wrap two functions which are used by lockdep
and are very kernel specific.

Doing that will allow tools located in tools/ to easily utilize
lockdep's code for their own use.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Cc: penberg@kernel.org
Cc: peterz@infradead.org
Link: http://lkml.kernel.org/r/1352753446-24109-1-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/lockdep.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 5cf12e7..c783e80 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -584,6 +584,7 @@ static int very_verbose(struct lock_class *class)
 /*
  * Is this the address of a static object:
  */
+#ifdef __KERNEL__
 static int static_obj(void *obj)
 {
 	unsigned long start = (unsigned long) &_stext,
@@ -610,6 +611,7 @@ static int static_obj(void *obj)
 	 */
 	return is_module_address(addr) || is_module_percpu_address(addr);
 }
+#endif
 
 /*
  * To make lock name printouts unique, we calculate a unique
@@ -4109,6 +4111,7 @@ void debug_check_no_locks_held(struct task_struct *task)
 		print_held_locks_bug(task);
 }
 
+#ifdef __KERNEL__
 void debug_show_all_locks(void)
 {
 	struct task_struct *g, *p;
@@ -4166,6 +4169,7 @@ retry:
 		read_unlock(&tasklist_lock);
 }
 EXPORT_SYMBOL_GPL(debug_show_all_locks);
+#endif
 
 /*
  * Careful: only use this function if you are sure that

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

* [tip:core/locking] lockdep: Be nice about building from userspace
  2012-11-12 20:50 [PATCH] lockdep: be nice about building from userspace Sasha Levin
  2012-11-20  6:40 ` Sasha Levin
  2013-01-24 20:43 ` [tip:core/locking] lockdep: Be " tip-bot for Sasha Levin
@ 2013-11-27 14:08 ` tip-bot for Sasha Levin
  2 siblings, 0 replies; 5+ messages in thread
From: tip-bot for Sasha Levin @ 2013-11-27 14:08 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, sasha.levin, hpa, mingo, peterz, tglx

Commit-ID:  8dce7a9a6f4ca7163161a80a4603b66c88c5de8e
Gitweb:     http://git.kernel.org/tip/8dce7a9a6f4ca7163161a80a4603b66c88c5de8e
Author:     Sasha Levin <sasha.levin@oracle.com>
AuthorDate: Thu, 13 Jun 2013 18:41:16 -0400
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 27 Nov 2013 11:55:20 +0100

lockdep: Be nice about building from userspace

Lockdep is an awesome piece of code which detects locking issues
which are relevant both to userspace and kernelspace. We can
easily make lockdep work in userspace since there is really no
kernel spacific magic going on in the code.

All we need is to wrap two functions which are used by lockdep
and are very kernel specific.

Doing that will allow tools located in tools/ to easily utilize
lockdep's code for their own use.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: penberg@kernel.org
Cc: torvalds@linux-foundation.org
Link: http://lkml.kernel.org/r/1352753446-24109-1-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/locking/lockdep.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index 576ba75..eb8a547 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -590,6 +590,7 @@ static int very_verbose(struct lock_class *class)
 /*
  * Is this the address of a static object:
  */
+#ifdef __KERNEL__
 static int static_obj(void *obj)
 {
 	unsigned long start = (unsigned long) &_stext,
@@ -616,6 +617,7 @@ static int static_obj(void *obj)
 	 */
 	return is_module_address(addr) || is_module_percpu_address(addr);
 }
+#endif
 
 /*
  * To make lock name printouts unique, we calculate a unique
@@ -4115,6 +4117,7 @@ void debug_check_no_locks_held(void)
 }
 EXPORT_SYMBOL_GPL(debug_check_no_locks_held);
 
+#ifdef __KERNEL__
 void debug_show_all_locks(void)
 {
 	struct task_struct *g, *p;
@@ -4172,6 +4175,7 @@ retry:
 		read_unlock(&tasklist_lock);
 }
 EXPORT_SYMBOL_GPL(debug_show_all_locks);
+#endif
 
 /*
  * Careful: only use this function if you are sure that

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

end of thread, other threads:[~2013-11-27 14:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-12 20:50 [PATCH] lockdep: be nice about building from userspace Sasha Levin
2012-11-20  6:40 ` Sasha Levin
2012-12-13 18:42   ` Sasha Levin
2013-01-24 20:43 ` [tip:core/locking] lockdep: Be " tip-bot for Sasha Levin
2013-11-27 14:08 ` tip-bot for Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).