Re: [GIT PULL] kmemcheck for mainline
From: Vegard Nossum
Date: Mon Jun 15 2009 - 10:59:54 EST
Hi,
2009/6/12 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>:
>
>
> On Fri, 12 Jun 2009, Vegard Nossum wrote:
>>
>> Please consider pulling the kmemcheck tree;
>
> No.
>
> This seems to be 99% merges o fother branches.
>
I redid the tree by rebasing. I've backported and incorporated fixes except
in the (few) cases where multiple authors were involved, in order to preserve
authorship information. I rebased against the same version that the previous
pull request was merged to; this allows us to easily view the difference
between the two pull requests (minus the top commit, which is a merge with
your latest tree):
$ git diff kmemcheck/for-linus..kmemcheck/for-linus2^
and account for any discrepancies (see the bottom of this e-mail). I've
tested the new tree on x86 and x86_64 with and without kmemcheck.
The following changes since commit 45e3e1935e2857c54783291107d33323b3ef33c8:
Linus Torvalds (1):
Merge branch 'master' of git://git.kernel.org/.../sam/kbuild-next
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck.git for-linus2
(Note: The top commit is a merge with your latest tree to get rid of a
MAINTAINERS conflict; if you prefer to get rid of this merge commit as well,
you could merge for-linus2^ instead and resolve it yourself.)
Jeremy Fitzhardinge (2):
x86: make _PAGE_HIDDEN conditional
x86: unify pte_hidden
Pekka Enberg (9):
slab: move struct kmem_cache to headers
kmemcheck: add Vegard and Pekka to MAINTAINERS
kmemcheck: remove forward declarations from error.c
kmemcheck: make initialization message less confusing
kmemcheck: remove multiple ifdef'd definitions of the same global variable
kmemcheck: move 64-bit ifdef out of kmemcheck_opcode_decode()
kmemcheck: use kmemcheck_pte_lookup() instead of open-coding it
slab: add hooks for kmemcheck
kmemcheck: make kconfig accessible for other architectures
Randy Dunlap (1):
kmemcheck: include module.h to prevent warnings
Vegard Nossum (28):
x86: add save_stack_trace_bp() for tracing from a specific stack frame
stacktrace: add forward-declaration struct task_struct
tasklets: new tasklet scheduling function
kmemcheck: add the kmemcheck documentation
kmemcheck: add the kmemcheck core
x86: add hooks for kmemcheck
kmemcheck: add mm functions
kmemcheck: add DMA hooks
slub: add hooks for kmemcheck
crypto: don't track xor test pages with kmemcheck
kmemcheck: don't track page tables
kmemcheck: add hooks for page- and sg-dma-mappings
kmemcheck: add hooks for the page allocator
kmemcheck: enable in the x86 Kconfig
kmemcheck: add opcode self-testing at boot
kmemcheck: introduce bitfield API
net: use kmemcheck bitfields API for skbuff
net: annotate bitfields in struct inet_sock
ieee1394: annotate bitfield
ieee1394/csr1212: fix false positive kmemcheck report
net: annotate inet_timewait_sock bitfields
c2port: annotate bitfield for kmemcheck
net: annotate struct sock bitfield
trace: annotate bitfields in struct ring_buffer_event
fs: introduce __getname_gfp()
fs: fix do_mount_root() false positive kmemcheck warning
signal: fix __send_signal() false positive kmemcheck warning
Merge commit 'linus/master' into HEAD
Documentation/kmemcheck.txt | 773 ++++++++++++++++++++++++++++++++++
MAINTAINERS | 8 +
arch/x86/Kconfig | 1 +
arch/x86/Makefile | 5 +
arch/x86/include/asm/dma-mapping.h | 7 +
arch/x86/include/asm/kmemcheck.h | 42 ++
arch/x86/include/asm/pgtable.h | 5 +
arch/x86/include/asm/pgtable_types.h | 9 +-
arch/x86/include/asm/string_32.h | 8 +
arch/x86/include/asm/string_64.h | 8 +
arch/x86/include/asm/thread_info.h | 4 +-
arch/x86/include/asm/xor.h | 5 +
arch/x86/kernel/cpu/intel.c | 23 +
arch/x86/kernel/process.c | 2 +-
arch/x86/kernel/stacktrace.c | 7 +
arch/x86/kernel/traps.c | 5 +
arch/x86/mm/Makefile | 2 +
arch/x86/mm/fault.c | 18 +-
arch/x86/mm/init.c | 2 +-
arch/x86/mm/init_32.c | 2 +-
arch/x86/mm/init_64.c | 4 +-
arch/x86/mm/kmemcheck/Makefile | 1 +
arch/x86/mm/kmemcheck/error.c | 228 ++++++++++
arch/x86/mm/kmemcheck/error.h | 15 +
arch/x86/mm/kmemcheck/kmemcheck.c | 640 ++++++++++++++++++++++++++++
arch/x86/mm/kmemcheck/opcode.c | 106 +++++
arch/x86/mm/kmemcheck/opcode.h | 9 +
arch/x86/mm/kmemcheck/pte.c | 22 +
arch/x86/mm/kmemcheck/pte.h | 10 +
arch/x86/mm/kmemcheck/selftest.c | 69 +++
arch/x86/mm/kmemcheck/selftest.h | 6 +
arch/x86/mm/kmemcheck/shadow.c | 162 +++++++
arch/x86/mm/kmemcheck/shadow.h | 16 +
arch/x86/mm/pageattr.c | 2 +-
arch/x86/mm/pgtable.c | 12 +-
crypto/xor.c | 7 +-
drivers/ieee1394/csr1212.c | 2 +
drivers/ieee1394/nodemgr.c | 5 +
drivers/misc/c2port/core.c | 2 +
include/linux/c2port.h | 3 +
include/linux/fs.h | 5 +-
include/linux/gfp.h | 14 +-
include/linux/interrupt.h | 14 +
include/linux/kmemcheck.h | 153 +++++++
include/linux/mm_types.h | 8 +
include/linux/ring_buffer.h | 4 +
include/linux/skbuff.h | 7 +
include/linux/slab.h | 7 +
include/linux/slab_def.h | 81 ++++
include/linux/stacktrace.h | 3 +
include/net/inet_sock.h | 14 +-
include/net/inet_timewait_sock.h | 5 +-
include/net/sock.h | 2 +
init/do_mounts.c | 3 +-
init/main.c | 1 +
kernel/fork.c | 14 +-
kernel/signal.c | 11 +-
kernel/softirq.c | 11 +
kernel/sysctl.c | 12 +
kernel/trace/ring_buffer.c | 3 +
lib/Kconfig.debug | 6 +-
lib/Kconfig.kmemcheck | 91 ++++
mm/Kconfig.debug | 1 +
mm/Makefile | 1 +
mm/kmemcheck.c | 122 ++++++
mm/page_alloc.c | 18 +
mm/slab.c | 108 +----
mm/slub.c | 38 ++-
net/core/skbuff.c | 8 +
net/core/sock.c | 2 +
net/ipv4/inet_timewait_sock.c | 3 +
71 files changed, 2899 insertions(+), 128 deletions(-)
create mode 100644 Documentation/kmemcheck.txt
create mode 100644 arch/x86/include/asm/kmemcheck.h
create mode 100644 arch/x86/mm/kmemcheck/Makefile
create mode 100644 arch/x86/mm/kmemcheck/error.c
create mode 100644 arch/x86/mm/kmemcheck/error.h
create mode 100644 arch/x86/mm/kmemcheck/kmemcheck.c
create mode 100644 arch/x86/mm/kmemcheck/opcode.c
create mode 100644 arch/x86/mm/kmemcheck/opcode.h
create mode 100644 arch/x86/mm/kmemcheck/pte.c
create mode 100644 arch/x86/mm/kmemcheck/pte.h
create mode 100644 arch/x86/mm/kmemcheck/selftest.c
create mode 100644 arch/x86/mm/kmemcheck/selftest.h
create mode 100644 arch/x86/mm/kmemcheck/shadow.c
create mode 100644 arch/x86/mm/kmemcheck/shadow.h
create mode 100644 include/linux/kmemcheck.h
create mode 100644 lib/Kconfig.kmemcheck
create mode 100644 mm/kmemcheck.c
============================================
These are the differences since previous pull request, with some inline
comments explaining why they're there. I don't actually expect you to look at
this, but in case you do, here's proof that I was very careful to ensure that
my rebase didn't do anything I didn't intend to do (that should make up for
the fact that the tree was rebased not so many hours ago, and thus has lost
some of the credibility of months of testing in Ingo's test farm).
$ git diff --stat kmemcheck/for-linus..kmemcheck/for-linus2^
MAINTAINERS | 12 ++++++------
[reordered to match alphabetical order]
arch/x86/Kconfig.debug | 1 -
[this was the result of a mismerge; fixed now]
arch/x86/include/asm/dma-mapping.h | 7 +++----
[call kmemcheck hooks _after_ the sanity checks]
arch/x86/include/asm/page_types.h | 8 --------
[zapped unrelated patch]
arch/x86/include/asm/pgtable.h | 10 +++++-----
[moved pte_hidden() to stay with the other pte_*() functions]
arch/x86/kernel/setup.c | 1 -
[zapped unrelated patch]
arch/x86/kernel/traps.c | 2 +-
[include file reorder]
arch/x86/mm/init.c | 13 ++++++-------
arch/x86/mm/init_32.c | 28 ++++++++--------------------
arch/x86/mm/init_64.c | 33 ++++++++++++++-------------------
[zapped unrelated patch]
arch/x86/mm/kmemcheck/kmemcheck.c | 7 +++++--
include/linux/kmemcheck.h | 8 ++------
init/main.c | 5 +----
[made kmemcheck_init() an early initcall]
kernel/sysctl.c | 21 +++++++++++----------
[use /proc/sys/kernel/kmemcheck instead of /proc/sys/vm/kmemcheck; mismerge fix]
mm/Kconfig.debug | 1 +
[the second half of the mismerge in arch/x86/Kconfig.debug; see above]
mm/slab.c | 2 +-
[bugfix]
mm/slub.c | 2 +-
[include file reorder]
17 files changed, 65 insertions(+), 96 deletions(-)
Vegard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/