mbox

[GIT,PULL] ARM kprobe updates

Message ID 1421746999.4328.3.camel@linaro.org
State New
Headers show

Pull-request

git://git.linaro.org/people/tixy/kernel.git kprobes

Message

Jon Medhurst (Tixy) Jan. 20, 2015, 9:43 a.m. UTC
Hi Russell

Please consider pulling the following changes to ARM kprobes.

This consists of Wang Nan's implementation of optimized kprobes on ARM,
which use branch instructions to call the handler rather than using
undefined instructions as breakpoints. It also contains various fixes
and extensions to the test code which were discovered along the way.

The patch from Masami Hiramatsu is outside of arch/arm but as kprobes
maintainer he indicated that it was OK for this simple patch to go
through the ARM tree, if you are also amenable. (See
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/317948.html)

Thanks


The following changes since commit b1940cd21c0f4abdce101253e860feff547291b0:

  Linux 3.19-rc3 (2015-01-05 17:05:20 -0800)

are available in the git repository at:

  git://git.linaro.org/people/tixy/kernel.git kprobes

for you to fetch changes up to fb892bd0fdcb2e5eac9c105cf68def90396ed8cc:

  ARM: kprobes: Eliminate test code's use of BX instruction on ARMv4 CPUs (2015-01-20 09:06:04 +0000)

----------------------------------------------------------------
Jon Medhurst (4):
      ARM: kprobes: Add test cases for stack consuming instructions
      ARM: kprobes: Fix unreliable MRS instruction tests
      ARM: probes: Use correct action types for MOVW, SEV and WFI
      ARM: kprobes: Eliminate test code's use of BX instruction on ARMv4 CPUs

Masami Hiramatsu (1):
      kprobes: Pass the original kprobe for preparing optimized kprobe

Wang Nan (7):
      ARM: probes: move all probe code to dedicate directory
      ARM: kprobes: introduces checker
      ARM: kprobes: collects stack consumption for store instructions
      ARM: kprobes: disallow probing stack consuming instructions
      ARM: kprobes: enable OPTPROBES for ARM 32
      ARM: kprobes: check register usage for probed instruction.
      ARM: optprobes: execute instruction during restoring if possible.

 arch/arm/Kconfig                                   |   1 +
 arch/arm/Makefile                                  |   1 +
 arch/arm/{kernel => include/asm}/insn.h            |   0
 arch/arm/include/asm/kprobes.h                     |  33 +-
 arch/arm/{kernel => include/asm}/patch.h           |   0
 arch/arm/include/asm/probes.h                      |  15 +
 arch/arm/kernel/Makefile                           |  16 +-
 arch/arm/kernel/entry-armv.S                       |   3 +-
 arch/arm/kernel/ftrace.c                           |   3 +-
 arch/arm/kernel/jump_label.c                       |   5 +-
 arch/arm/kernel/kgdb.c                             |   3 +-
 arch/arm/kernel/patch.c                            |   3 +-
 arch/arm/probes/Makefile                           |   7 +
 .../{kernel/probes-arm.c => probes/decode-arm.c}   |  18 +-
 .../{kernel/probes-arm.h => probes/decode-arm.h}   |   9 +-
 .../probes-thumb.c => probes/decode-thumb.c}       |  16 +-
 .../probes-thumb.h => probes/decode-thumb.h}       |  10 +-
 arch/arm/{kernel/probes.c => probes/decode.c}      |  81 ++++-
 arch/arm/{kernel/probes.h => probes/decode.h}      |  13 +-
 arch/arm/probes/kprobes/Makefile                   |  12 +
 .../kprobes-arm.c => probes/kprobes/actions-arm.c} |  11 +-
 .../kprobes/actions-common.c}                      |   4 +-
 .../kprobes/actions-thumb.c}                       |  10 +-
 arch/arm/probes/kprobes/checkers-arm.c             | 192 +++++++++++
 arch/arm/probes/kprobes/checkers-common.c          | 101 ++++++
 arch/arm/probes/kprobes/checkers-thumb.c           | 110 ++++++
 arch/arm/probes/kprobes/checkers.h                 |  55 +++
 .../{kernel/kprobes.c => probes/kprobes/core.c}    |  49 ++-
 .../{kernel/kprobes.h => probes/kprobes/core.h}    |  12 +-
 arch/arm/probes/kprobes/opt-arm.c                  | 370 +++++++++++++++++++++
 .../kprobes/test-arm.c}                            |  40 ++-
 .../kprobes-test.c => probes/kprobes/test-core.c}  |  46 ++-
 .../kprobes-test.h => probes/kprobes/test-core.h}  |  35 +-
 .../kprobes/test-thumb.c}                          |  20 +-
 arch/arm/probes/uprobes/Makefile                   |   1 +
 .../uprobes-arm.c => probes/uprobes/actions-arm.c} |   8 +-
 .../{kernel/uprobes.c => probes/uprobes/core.c}    |   8 +-
 .../{kernel/uprobes.h => probes/uprobes/core.h}    |   0
 arch/x86/kernel/kprobes/opt.c                      |   3 +-
 include/linux/kprobes.h                            |   3 +-
 kernel/kprobes.c                                   |   4 +-
 41 files changed, 1200 insertions(+), 131 deletions(-)
 rename arch/arm/{kernel => include/asm}/insn.h (100%)
 rename arch/arm/{kernel => include/asm}/patch.h (100%)
 create mode 100644 arch/arm/probes/Makefile
 rename arch/arm/{kernel/probes-arm.c => probes/decode-arm.c} (98%)
 rename arch/arm/{kernel/probes-arm.h => probes/decode-arm.h} (92%)
 rename arch/arm/{kernel/probes-thumb.c => probes/decode-thumb.c} (98%)
 rename arch/arm/{kernel/probes-thumb.h => probes/decode-thumb.h} (90%)
 rename arch/arm/{kernel/probes.c => probes/decode.c} (84%)
 rename arch/arm/{kernel/probes.h => probes/decode.h} (97%)
 create mode 100644 arch/arm/probes/kprobes/Makefile
 rename arch/arm/{kernel/kprobes-arm.c => probes/kprobes/actions-arm.c} (98%)
 rename arch/arm/{kernel/kprobes-common.c => probes/kprobes/actions-common.c} (98%)
 rename arch/arm/{kernel/kprobes-thumb.c => probes/kprobes/actions-thumb.c} (98%)
 create mode 100644 arch/arm/probes/kprobes/checkers-arm.c
 create mode 100644 arch/arm/probes/kprobes/checkers-common.c
 create mode 100644 arch/arm/probes/kprobes/checkers-thumb.c
 create mode 100644 arch/arm/probes/kprobes/checkers.h
 rename arch/arm/{kernel/kprobes.c => probes/kprobes/core.c} (94%)
 rename arch/arm/{kernel/kprobes.h => probes/kprobes/core.h} (79%)
 create mode 100644 arch/arm/probes/kprobes/opt-arm.c
 rename arch/arm/{kernel/kprobes-test-arm.c => probes/kprobes/test-arm.c} (97%)
 rename arch/arm/{kernel/kprobes-test.c => probes/kprobes/test-core.c} (98%)
 rename arch/arm/{kernel/kprobes-test.h => probes/kprobes/test-core.h} (92%)
 rename arch/arm/{kernel/kprobes-test-thumb.c => probes/kprobes/test-thumb.c} (97%)
 create mode 100644 arch/arm/probes/uprobes/Makefile
 rename arch/arm/{kernel/uprobes-arm.c => probes/uprobes/actions-arm.c} (97%)
 rename arch/arm/{kernel/uprobes.c => probes/uprobes/core.c} (97%)
 rename arch/arm/{kernel/uprobes.h => probes/uprobes/core.h} (100%)

Comments

Jon Medhurst (Tixy) Jan. 20, 2015, 5:07 p.m. UTC | #1
On Tue, 2015-01-20 at 16:24 +0000, Russell King - ARM Linux wrote:
> > The following changes since commit
> b1940cd21c0f4abdce101253e860feff547291b0:
> > 
> >   Linux 3.19-rc3 (2015-01-05 17:05:20 -0800)
> > 
> > are available in the git repository at:
> > 
> >   git://git.linaro.org/people/tixy/kernel.git kprobes
> 
> Thanks, pulled, though it'll probably be two or so days before it
> shows up in linux-next.

Thanks