public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sasha.levin@oracle.com>
To: torvalds@linux-foundation.org
Cc: Sasha Levin <sasha.levin@oracle.com>,
	mingo@kernel.org, peterz@infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/9] liblockdep: userspace lockdep
Date: Tue, 07 May 2013 12:15:49 -0400	[thread overview]
Message-ID: <518928B5.7050807@oracle.com> (raw)
In-Reply-To: <1367348080-4680-1-git-send-email-sasha.levin@oracle.com>

Ping?


Thanks,
Sasha

On 04/30/2013 02:54 PM, Sasha Levin wrote:
> liblockdep is a tiny wrapper built around kernel/lockdep.c. The aim is to
> provide the same functionality the kernel gets from lockdep to userspace.
> 
> The bulk of the code here is the LD_PRELOAD support which provides users
> an easy way to test their code without having to integrate liblockdep into
> said code. Simply doing:
> 
> 	lockdep my_app
> 
> Would provide lockdep support to my_app.
> 
> There is also a small test suite to test both mutexes and rwlocks, it's
> based on the tests in lib/locking-selftest.c.
> 
> This entire patch series was reviewed by lockdep maintainers and accepted to
> the tip tree previously. It was pulled out so that the potential merge of
> liblockdep won't delay the rest of the commits in the tip locking tree.
> 
> For some more background about this entire thing, the folks at LWN did
> an awesome overview: http://lwn.net/Articles/536363/
> 
> 
> Sasha Levin (9):
>   lockdep: Be nice about building from userspace
>   liblockdep: Wrap kernel/lockdep.c to allow usage from userspace
>   liblockdep: Add public headers for pthread_mutex_t implementation
>   liblockdep: Add pthread_mutex_t test suite
>   liblockdep: Add public headers for pthread_rwlock_t implementation
>   liblockdep: Add pthread_rwlock_t test suite
>   liblockdep: Support using LD_PRELOAD
>   liblockdep: Add the 'lockdep' user-space utility
>   liblockdep: Add a MAINTAINERS entry
> 
>  MAINTAINERS                                        |   5 +
>  kernel/lockdep.c                                   |   4 +
>  tools/lib/lockdep/Makefile                         | 251 ++++++++++++++
>  tools/lib/lockdep/common.c                         |  33 ++
>  tools/lib/lockdep/include/liblockdep/common.h      |  43 +++
>  tools/lib/lockdep/include/liblockdep/mutex.h       |  73 ++++
>  tools/lib/lockdep/include/liblockdep/rwlock.h      |  91 +++++
>  tools/lib/lockdep/lockdep                          |   3 +
>  tools/lib/lockdep/lockdep.c                        |   2 +
>  tools/lib/lockdep/lockdep_internals.h              |   1 +
>  tools/lib/lockdep/lockdep_states.h                 |   1 +
>  tools/lib/lockdep/preload.c                        | 386 +++++++++++++++++++++
>  tools/lib/lockdep/rbtree.c                         |   1 +
>  tools/lib/lockdep/run_tests.sh                     |  27 ++
>  tools/lib/lockdep/tests/AA.c                       |  13 +
>  tools/lib/lockdep/tests/ABBA.c                     |  13 +
>  tools/lib/lockdep/tests/ABBCCA.c                   |  15 +
>  tools/lib/lockdep/tests/ABBCCDDA.c                 |  17 +
>  tools/lib/lockdep/tests/ABCABC.c                   |  15 +
>  tools/lib/lockdep/tests/ABCDBCDA.c                 |  17 +
>  tools/lib/lockdep/tests/ABCDBDDA.c                 |  17 +
>  tools/lib/lockdep/tests/WW.c                       |  13 +
>  tools/lib/lockdep/tests/common.h                   |  12 +
>  tools/lib/lockdep/tests/unlock_balance.c           |  12 +
>  tools/lib/lockdep/uinclude/asm/hweight.h           |   0
>  tools/lib/lockdep/uinclude/asm/sections.h          |   0
>  tools/lib/lockdep/uinclude/linux/bitops.h          |   0
>  tools/lib/lockdep/uinclude/linux/compiler.h        |   7 +
>  tools/lib/lockdep/uinclude/linux/debug_locks.h     |  12 +
>  tools/lib/lockdep/uinclude/linux/delay.h           |   0
>  tools/lib/lockdep/uinclude/linux/export.h          |   7 +
>  tools/lib/lockdep/uinclude/linux/ftrace.h          |   0
>  tools/lib/lockdep/uinclude/linux/gfp.h             |   0
>  tools/lib/lockdep/uinclude/linux/hardirq.h         |  11 +
>  tools/lib/lockdep/uinclude/linux/hash.h            |   1 +
>  tools/lib/lockdep/uinclude/linux/interrupt.h       |   0
>  tools/lib/lockdep/uinclude/linux/irqflags.h        |  38 ++
>  tools/lib/lockdep/uinclude/linux/kallsyms.h        |  32 ++
>  tools/lib/lockdep/uinclude/linux/kernel.h          |  36 ++
>  tools/lib/lockdep/uinclude/linux/kmemcheck.h       |   8 +
>  tools/lib/lockdep/uinclude/linux/linkage.h         |   0
>  tools/lib/lockdep/uinclude/linux/list.h            |   1 +
>  tools/lib/lockdep/uinclude/linux/lockdep.h         |  58 ++++
>  tools/lib/lockdep/uinclude/linux/mm_types.h        |   0
>  tools/lib/lockdep/uinclude/linux/module.h          |   6 +
>  tools/lib/lockdep/uinclude/linux/mutex.h           |   0
>  tools/lib/lockdep/uinclude/linux/poison.h          |   1 +
>  tools/lib/lockdep/uinclude/linux/prefetch.h        |   6 +
>  tools/lib/lockdep/uinclude/linux/proc_fs.h         |   0
>  tools/lib/lockdep/uinclude/linux/rbtree.h          |   1 +
>  .../lib/lockdep/uinclude/linux/rbtree_augmented.h  |   2 +
>  tools/lib/lockdep/uinclude/linux/rcu.h             |  16 +
>  tools/lib/lockdep/uinclude/linux/seq_file.h        |   0
>  tools/lib/lockdep/uinclude/linux/spinlock.h        |  25 ++
>  tools/lib/lockdep/uinclude/linux/stacktrace.h      |  32 ++
>  tools/lib/lockdep/uinclude/linux/stringify.h       |   7 +
>  tools/lib/lockdep/uinclude/linux/system.h          |   0
>  tools/lib/lockdep/uinclude/linux/types.h           |  58 ++++
>  tools/lib/lockdep/uinclude/linux/util.h            |   0
>  tools/lib/lockdep/uinclude/trace/events/lock.h     |   0
>  60 files changed, 1430 insertions(+)
>  create mode 100644 tools/lib/lockdep/Makefile
>  create mode 100644 tools/lib/lockdep/common.c
>  create mode 100644 tools/lib/lockdep/include/liblockdep/common.h
>  create mode 100644 tools/lib/lockdep/include/liblockdep/mutex.h
>  create mode 100644 tools/lib/lockdep/include/liblockdep/rwlock.h
>  create mode 100755 tools/lib/lockdep/lockdep
>  create mode 100644 tools/lib/lockdep/lockdep.c
>  create mode 100644 tools/lib/lockdep/lockdep_internals.h
>  create mode 100644 tools/lib/lockdep/lockdep_states.h
>  create mode 100644 tools/lib/lockdep/preload.c
>  create mode 100644 tools/lib/lockdep/rbtree.c
>  create mode 100755 tools/lib/lockdep/run_tests.sh
>  create mode 100644 tools/lib/lockdep/tests/AA.c
>  create mode 100644 tools/lib/lockdep/tests/ABBA.c
>  create mode 100644 tools/lib/lockdep/tests/ABBCCA.c
>  create mode 100644 tools/lib/lockdep/tests/ABBCCDDA.c
>  create mode 100644 tools/lib/lockdep/tests/ABCABC.c
>  create mode 100644 tools/lib/lockdep/tests/ABCDBCDA.c
>  create mode 100644 tools/lib/lockdep/tests/ABCDBDDA.c
>  create mode 100644 tools/lib/lockdep/tests/WW.c
>  create mode 100644 tools/lib/lockdep/tests/common.h
>  create mode 100644 tools/lib/lockdep/tests/unlock_balance.c
>  create mode 100644 tools/lib/lockdep/uinclude/asm/hweight.h
>  create mode 100644 tools/lib/lockdep/uinclude/asm/sections.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/bitops.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/compiler.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/debug_locks.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/delay.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/export.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/ftrace.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/gfp.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/hardirq.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/hash.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/interrupt.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/irqflags.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/kallsyms.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/kernel.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/kmemcheck.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/linkage.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/list.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/lockdep.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/mm_types.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/module.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/mutex.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/poison.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/prefetch.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/proc_fs.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/rbtree.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/rbtree_augmented.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/rcu.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/seq_file.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/spinlock.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/stacktrace.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/stringify.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/system.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/types.h
>  create mode 100644 tools/lib/lockdep/uinclude/linux/util.h
>  create mode 100644 tools/lib/lockdep/uinclude/trace/events/lock.h
> 


      parent reply	other threads:[~2013-05-07 16:16 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-30 18:54 [PATCH 0/9] liblockdep: userspace lockdep Sasha Levin
2013-04-30 18:54 ` [PATCH 1/9] lockdep: Be nice about building from userspace Sasha Levin
2013-04-30 18:54 ` [PATCH 2/9] liblockdep: Wrap kernel/lockdep.c to allow usage " Sasha Levin
2013-05-08 10:01   ` Peter Zijlstra
2013-05-08 13:27     ` Sasha Levin
2013-05-08 13:35       ` Peter Zijlstra
2013-05-08 13:53         ` Sasha Levin
2013-04-30 18:54 ` [PATCH 3/9] liblockdep: Add public headers for pthread_mutex_t implementation Sasha Levin
2013-04-30 18:54 ` [PATCH 4/9] liblockdep: Add pthread_mutex_t test suite Sasha Levin
2013-04-30 18:54 ` [PATCH 5/9] liblockdep: Add public headers for pthread_rwlock_t implementation Sasha Levin
2013-04-30 18:54 ` [PATCH 6/9] liblockdep: Add pthread_rwlock_t test suite Sasha Levin
2013-04-30 18:54 ` [PATCH 7/9] liblockdep: Support using LD_PRELOAD Sasha Levin
2013-05-08 10:22   ` Peter Zijlstra
2013-05-08 13:29     ` Sasha Levin
2013-04-30 18:54 ` [PATCH 8/9] liblockdep: Add the 'lockdep' user-space utility Sasha Levin
2013-04-30 18:54 ` [PATCH 9/9] liblockdep: Add a MAINTAINERS entry Sasha Levin
2013-05-07 16:15 ` Sasha Levin [this message]

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=518928B5.7050807@oracle.com \
    --to=sasha.levin@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox