Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-20 Thread Jon Medhurst (Tixy)
On Thu, 2013-12-05 at 15:17 -0500, David Long wrote:
> Masami/Tixy,
> 
> As I just noted in a previous email the kprobes.h thing has come back to 
> haunt me.  Something more is needed in my last patchset.  Tixy's 
> suggestion regarding the arch_specific_insn structure:
> 
> > However, I also wonder if we should instead leave arch_specific_insn as
> > a kprobes specific structure and on ARM define it in terms of a new more
> > generic 'struct probe_insn'? The drawback with that is that we'd
> > probably end up with a struct just containing a single member which
> > seems a bit redundant:
> >
> > struct arch_specific_insn {
> > struct probe_insn pinsn;
> > };
> >
> > Thought's anyone?
> 
> ...got me thinking.  When I do as he suggests and create a new 
> arch-specific structure for sharing between kprobes and uprobes then it 
> turns out simply #define'ing the arch_specific_insn structure tag to the 
> new structure tag in arch/arm/include/kprobes.h makes everything happy. 
>   When KPROBES is not configured that include file is (still) not 
> included and the generic kprobes.h include file still continues to make 
> a dummy structure for it.  My question is:  Is it too hacky to use a 
> #define for a structure tag this way?

I can't think of any technical reason why this wouldn't work and I see
you've have implemented this method in the latest uprobes patches [1].

It does mean that would be able to progress with ARM uprobes if there is
no immediate enthusiasm for making kprobes/uprobes more unified at the
generic kernel layers.

[1] 
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-December/219463.html

-- 
Tixy


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-20 Thread Jon Medhurst (Tixy)
On Thu, 2013-12-05 at 15:17 -0500, David Long wrote:
 Masami/Tixy,
 
 As I just noted in a previous email the kprobes.h thing has come back to 
 haunt me.  Something more is needed in my last patchset.  Tixy's 
 suggestion regarding the arch_specific_insn structure:
 
  However, I also wonder if we should instead leave arch_specific_insn as
  a kprobes specific structure and on ARM define it in terms of a new more
  generic 'struct probe_insn'? The drawback with that is that we'd
  probably end up with a struct just containing a single member which
  seems a bit redundant:
 
  struct arch_specific_insn {
  struct probe_insn pinsn;
  };
 
  Thought's anyone?
 
 ...got me thinking.  When I do as he suggests and create a new 
 arch-specific structure for sharing between kprobes and uprobes then it 
 turns out simply #define'ing the arch_specific_insn structure tag to the 
 new structure tag in arch/arm/include/kprobes.h makes everything happy. 
   When KPROBES is not configured that include file is (still) not 
 included and the generic kprobes.h include file still continues to make 
 a dummy structure for it.  My question is:  Is it too hacky to use a 
 #define for a structure tag this way?

I can't think of any technical reason why this wouldn't work and I see
you've have implemented this method in the latest uprobes patches [1].

It does mean that would be able to progress with ARM uprobes if there is
no immediate enthusiasm for making kprobes/uprobes more unified at the
generic kernel layers.

[1] 
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-December/219463.html

-- 
Tixy


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-05 Thread David Long

Masami/Tixy,

As I just noted in a previous email the kprobes.h thing has come back to 
haunt me.  Something more is needed in my last patchset.  Tixy's 
suggestion regarding the arch_specific_insn structure:



However, I also wonder if we should instead leave arch_specific_insn as
a kprobes specific structure and on ARM define it in terms of a new more
generic 'struct probe_insn'? The drawback with that is that we'd
probably end up with a struct just containing a single member which
seems a bit redundant:

struct arch_specific_insn {
struct probe_insn pinsn;
};

Thought's anyone?


...got me thinking.  When I do as he suggests and create a new 
arch-specific structure for sharing between kprobes and uprobes then it 
turns out simply #define'ing the arch_specific_insn structure tag to the 
new structure tag in arch/arm/include/kprobes.h makes everything happy. 
 When KPROBES is not configured that include file is (still) not 
included and the generic kprobes.h include file still continues to make 
a dummy structure for it.  My question is:  Is it too hacky to use a 
#define for a structure tag this way?


-dl

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-05 Thread David Long

On 12/04/13 12:51, Taras Kondratiuk wrote:

On 11/27/2013 04:53 AM, David Long wrote:

From: "David A. Long" 

This patch series adds basic uprobes support to ARM. It is based on patches
developed earlier by Rabin Vincent. That approach of adding hooks into
the kprobes instruction parsing code was not well received. This approach
separates the ARM instruction parsing code in kprobes out into a separate set
of functions which can be used by both kprobes and uprobes. Both kprobes and
uprobes then provide their own semantic action tables to process the results of
the parsing.

The following are noteworthy changes made for v3:

1) The ARM uprobes functionality no longer depends on kprobes. As
a side effect of this there are no longer any changes to the common
kprobes include file (or any other common kprobes files).
2) A couple large patches have been broken down into more smaller
patches.
3) A problem with uretprobes has been fixed.
4) The kprobes-test module has been made more useable for thumb tests.
5) The argument list to the "action" functions has been shrunk.
6) Alignment with a few recent patches that were made to common
uprobes code specifically to support this patchset.

This patchset is based on v3.13-rc1


Hi Dave

I've tested this series in big-endian mode.
There is an issue within __create_xol_area() function.
It writes UPROBE_SWBP_INSN directly to memory, but UPROBE_SWBP_INSN
stores canonical opcode, which leads to a wrong instruction endianness
if CPU runs in BE.

I think the easies way to fix it without touching generic uprobes code
is to store opcode in native endianness in UPROBE_SWBP_INSN, and use
another macro for canonical form in ARM specific code.
Please check a diff below. With this diff plus addressed comment for
patch 14/15 plus fixed Ben's BE kprobes series I have uprobes working
on LE and BE.



Thanks Taras.  I am preparing a v4 addressing these issues and also 
addressing the issue that, after duplicating your earlier observations, 
 my claim in "1)" above has proven to be incorrect.


-dl


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-05 Thread David Long

On 12/04/13 12:51, Taras Kondratiuk wrote:

On 11/27/2013 04:53 AM, David Long wrote:

From: David A. Long dave.l...@linaro.org

This patch series adds basic uprobes support to ARM. It is based on patches
developed earlier by Rabin Vincent. That approach of adding hooks into
the kprobes instruction parsing code was not well received. This approach
separates the ARM instruction parsing code in kprobes out into a separate set
of functions which can be used by both kprobes and uprobes. Both kprobes and
uprobes then provide their own semantic action tables to process the results of
the parsing.

The following are noteworthy changes made for v3:

1) The ARM uprobes functionality no longer depends on kprobes. As
a side effect of this there are no longer any changes to the common
kprobes include file (or any other common kprobes files).
2) A couple large patches have been broken down into more smaller
patches.
3) A problem with uretprobes has been fixed.
4) The kprobes-test module has been made more useable for thumb tests.
5) The argument list to the action functions has been shrunk.
6) Alignment with a few recent patches that were made to common
uprobes code specifically to support this patchset.

This patchset is based on v3.13-rc1


Hi Dave

I've tested this series in big-endian mode.
There is an issue within __create_xol_area() function.
It writes UPROBE_SWBP_INSN directly to memory, but UPROBE_SWBP_INSN
stores canonical opcode, which leads to a wrong instruction endianness
if CPU runs in BE.

I think the easies way to fix it without touching generic uprobes code
is to store opcode in native endianness in UPROBE_SWBP_INSN, and use
another macro for canonical form in ARM specific code.
Please check a diff below. With this diff plus addressed comment for
patch 14/15 plus fixed Ben's BE kprobes series I have uprobes working
on LE and BE.



Thanks Taras.  I am preparing a v4 addressing these issues and also 
addressing the issue that, after duplicating your earlier observations, 
 my claim in 1) above has proven to be incorrect.


-dl


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-05 Thread David Long

Masami/Tixy,

As I just noted in a previous email the kprobes.h thing has come back to 
haunt me.  Something more is needed in my last patchset.  Tixy's 
suggestion regarding the arch_specific_insn structure:



However, I also wonder if we should instead leave arch_specific_insn as
a kprobes specific structure and on ARM define it in terms of a new more
generic 'struct probe_insn'? The drawback with that is that we'd
probably end up with a struct just containing a single member which
seems a bit redundant:

struct arch_specific_insn {
struct probe_insn pinsn;
};

Thought's anyone?


...got me thinking.  When I do as he suggests and create a new 
arch-specific structure for sharing between kprobes and uprobes then it 
turns out simply #define'ing the arch_specific_insn structure tag to the 
new structure tag in arch/arm/include/kprobes.h makes everything happy. 
 When KPROBES is not configured that include file is (still) not 
included and the generic kprobes.h include file still continues to make 
a dummy structure for it.  My question is:  Is it too hacky to use a 
#define for a structure tag this way?


-dl

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-04 Thread Taras Kondratiuk
On 11/27/2013 04:53 AM, David Long wrote:
> From: "David A. Long" 
> 
> This patch series adds basic uprobes support to ARM. It is based on patches
> developed earlier by Rabin Vincent. That approach of adding hooks into
> the kprobes instruction parsing code was not well received. This approach
> separates the ARM instruction parsing code in kprobes out into a separate set
> of functions which can be used by both kprobes and uprobes. Both kprobes and
> uprobes then provide their own semantic action tables to process the results 
> of
> the parsing.
> 
> The following are noteworthy changes made for v3:
> 
> 1) The ARM uprobes functionality no longer depends on kprobes. As
> a side effect of this there are no longer any changes to the common
> kprobes include file (or any other common kprobes files).
> 2) A couple large patches have been broken down into more smaller
> patches.
> 3) A problem with uretprobes has been fixed.
> 4) The kprobes-test module has been made more useable for thumb tests.
> 5) The argument list to the "action" functions has been shrunk.
> 6) Alignment with a few recent patches that were made to common
> uprobes code specifically to support this patchset.
> 
> This patchset is based on v3.13-rc1

Hi Dave

I've tested this series in big-endian mode.
There is an issue within __create_xol_area() function.
It writes UPROBE_SWBP_INSN directly to memory, but UPROBE_SWBP_INSN
stores canonical opcode, which leads to a wrong instruction endianness
if CPU runs in BE.

I think the easies way to fix it without touching generic uprobes code
is to store opcode in native endianness in UPROBE_SWBP_INSN, and use
another macro for canonical form in ARM specific code.
Please check a diff below. With this diff plus addressed comment for
patch 14/15 plus fixed Ben's BE kprobes series I have uprobes working
on LE and BE.

diff --git a/arch/arm/include/asm/uprobes.h b/arch/arm/include/asm/uprobes.h
index e5acaa3..5313418 100644
--- a/arch/arm/include/asm/uprobes.h
+++ b/arch/arm/include/asm/uprobes.h
@@ -2,14 +2,16 @@
 #define _ASM_UPROBES_H
 
 #include 
+#include 
 
 typedef u32 uprobe_opcode_t;
 
 #define MAX_UINSN_BYTES4
 #define UPROBE_XOL_SLOT_BYTES  64
 
-#define UPROBE_SWBP_INSN   0xe7f001f9
-#define UPROBE_SS_INSN 0xe7f001fa
+#define UPROBE_SWBP_ARM_INSN   0xe7f001f9
+#define UPROBE_SS_ARM_INSN 0xe7f001fa
+#define UPROBE_SWBP_INSN   __opcode_to_mem_arm(UPROBE_SWBP_ARM_INSN)
 #define UPROBE_SWBP_INSN_SIZE  4
 
 struct arch_uprobe_task {
diff --git a/arch/arm/kernel/uprobes.c b/arch/arm/kernel/uprobes.c
index d9873ef..ae18549 100644
--- a/arch/arm/kernel/uprobes.c
+++ b/arch/arm/kernel/uprobes.c
@@ -22,7 +22,7 @@
 bool is_swbp_insn(uprobe_opcode_t *insn)
 {
return (__mem_to_opcode_arm(*insn) & 0x0fff) ==
-   (UPROBE_SWBP_INSN & 0x0fff);
+   (UPROBE_SWBP_ARM_INSN & 0x0fff);
 }
 
 int set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm,
@@ -83,7 +83,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, 
struct mm_struct *mm,
 
insn = __mem_to_opcode_arm(*(unsigned int *)auprobe->insn);
auprobe->ixol[0] = __opcode_to_mem_arm(insn);
-   auprobe->ixol[1] = __opcode_to_mem_arm(UPROBE_SS_INSN);
+   auprobe->ixol[1] = __opcode_to_mem_arm(UPROBE_SS_ARM_INSN);
 
ret = arm_probes_decode_insn(insn, >asi, false,
 uprobes_probes_actions);
@@ -100,7 +100,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, 
struct mm_struct *mm,
break;
}
 
-   bpinsn = UPROBE_SWBP_INSN & 0x0fff;
+   bpinsn = UPROBE_SWBP_ARM_INSN & 0x0fff;
if (insn >= 0xe000)
bpinsn |= 0xe000;  /* Unconditional instruction */
else
@@ -158,9 +158,9 @@ static int uprobe_trap_handler(struct pt_regs *regs, 
unsigned int instr)
 
local_irq_save(flags);
instr &= 0x0fff;
-   if (instr == (UPROBE_SWBP_INSN & 0x0fff))
+   if (instr == (UPROBE_SWBP_ARM_INSN & 0x0fff))
uprobe_pre_sstep_notifier(regs);
-   else if (instr == (UPROBE_SS_INSN & 0x0fff))
+   else if (instr == (UPROBE_SS_ARM_INSN & 0x0fff))
uprobe_post_sstep_notifier(regs);
local_irq_restore(flags);
 
@@ -174,7 +174,7 @@ unsigned long uprobe_get_swbp_addr(struct pt_regs *regs)
 
 static struct undef_hook uprobes_arm_break_hook = {
.instr_mask = 0x0fff,
-   .instr_val  = (UPROBE_SWBP_INSN & 0x0fff),
+   .instr_val  = (UPROBE_SWBP_ARM_INSN & 0x0fff),
.cpsr_mask  = MODE_MASK,
.cpsr_val   = USR_MODE,
.fn = uprobe_trap_handler,
@@ -182,7 +182,7 @@ static struct undef_hook uprobes_arm_break_hook = {
 
 static struct undef_hook uprobes_arm_ss_hook = {
.instr_mask = 0x0fff,
-   .instr_val  = (UPROBE_SS_INSN & 0x0fff),
+   .instr_val  = 

Re: [PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-12-04 Thread Taras Kondratiuk
On 11/27/2013 04:53 AM, David Long wrote:
 From: David A. Long dave.l...@linaro.org
 
 This patch series adds basic uprobes support to ARM. It is based on patches
 developed earlier by Rabin Vincent. That approach of adding hooks into
 the kprobes instruction parsing code was not well received. This approach
 separates the ARM instruction parsing code in kprobes out into a separate set
 of functions which can be used by both kprobes and uprobes. Both kprobes and
 uprobes then provide their own semantic action tables to process the results 
 of
 the parsing.
 
 The following are noteworthy changes made for v3:
 
 1) The ARM uprobes functionality no longer depends on kprobes. As
 a side effect of this there are no longer any changes to the common
 kprobes include file (or any other common kprobes files).
 2) A couple large patches have been broken down into more smaller
 patches.
 3) A problem with uretprobes has been fixed.
 4) The kprobes-test module has been made more useable for thumb tests.
 5) The argument list to the action functions has been shrunk.
 6) Alignment with a few recent patches that were made to common
 uprobes code specifically to support this patchset.
 
 This patchset is based on v3.13-rc1

Hi Dave

I've tested this series in big-endian mode.
There is an issue within __create_xol_area() function.
It writes UPROBE_SWBP_INSN directly to memory, but UPROBE_SWBP_INSN
stores canonical opcode, which leads to a wrong instruction endianness
if CPU runs in BE.

I think the easies way to fix it without touching generic uprobes code
is to store opcode in native endianness in UPROBE_SWBP_INSN, and use
another macro for canonical form in ARM specific code.
Please check a diff below. With this diff plus addressed comment for
patch 14/15 plus fixed Ben's BE kprobes series I have uprobes working
on LE and BE.

diff --git a/arch/arm/include/asm/uprobes.h b/arch/arm/include/asm/uprobes.h
index e5acaa3..5313418 100644
--- a/arch/arm/include/asm/uprobes.h
+++ b/arch/arm/include/asm/uprobes.h
@@ -2,14 +2,16 @@
 #define _ASM_UPROBES_H
 
 #include asm/probes.h
+#include asm/opcodes.h
 
 typedef u32 uprobe_opcode_t;
 
 #define MAX_UINSN_BYTES4
 #define UPROBE_XOL_SLOT_BYTES  64
 
-#define UPROBE_SWBP_INSN   0xe7f001f9
-#define UPROBE_SS_INSN 0xe7f001fa
+#define UPROBE_SWBP_ARM_INSN   0xe7f001f9
+#define UPROBE_SS_ARM_INSN 0xe7f001fa
+#define UPROBE_SWBP_INSN   __opcode_to_mem_arm(UPROBE_SWBP_ARM_INSN)
 #define UPROBE_SWBP_INSN_SIZE  4
 
 struct arch_uprobe_task {
diff --git a/arch/arm/kernel/uprobes.c b/arch/arm/kernel/uprobes.c
index d9873ef..ae18549 100644
--- a/arch/arm/kernel/uprobes.c
+++ b/arch/arm/kernel/uprobes.c
@@ -22,7 +22,7 @@
 bool is_swbp_insn(uprobe_opcode_t *insn)
 {
return (__mem_to_opcode_arm(*insn)  0x0fff) ==
-   (UPROBE_SWBP_INSN  0x0fff);
+   (UPROBE_SWBP_ARM_INSN  0x0fff);
 }
 
 int set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm,
@@ -83,7 +83,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, 
struct mm_struct *mm,
 
insn = __mem_to_opcode_arm(*(unsigned int *)auprobe-insn);
auprobe-ixol[0] = __opcode_to_mem_arm(insn);
-   auprobe-ixol[1] = __opcode_to_mem_arm(UPROBE_SS_INSN);
+   auprobe-ixol[1] = __opcode_to_mem_arm(UPROBE_SS_ARM_INSN);
 
ret = arm_probes_decode_insn(insn, auprobe-asi, false,
 uprobes_probes_actions);
@@ -100,7 +100,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, 
struct mm_struct *mm,
break;
}
 
-   bpinsn = UPROBE_SWBP_INSN  0x0fff;
+   bpinsn = UPROBE_SWBP_ARM_INSN  0x0fff;
if (insn = 0xe000)
bpinsn |= 0xe000;  /* Unconditional instruction */
else
@@ -158,9 +158,9 @@ static int uprobe_trap_handler(struct pt_regs *regs, 
unsigned int instr)
 
local_irq_save(flags);
instr = 0x0fff;
-   if (instr == (UPROBE_SWBP_INSN  0x0fff))
+   if (instr == (UPROBE_SWBP_ARM_INSN  0x0fff))
uprobe_pre_sstep_notifier(regs);
-   else if (instr == (UPROBE_SS_INSN  0x0fff))
+   else if (instr == (UPROBE_SS_ARM_INSN  0x0fff))
uprobe_post_sstep_notifier(regs);
local_irq_restore(flags);
 
@@ -174,7 +174,7 @@ unsigned long uprobe_get_swbp_addr(struct pt_regs *regs)
 
 static struct undef_hook uprobes_arm_break_hook = {
.instr_mask = 0x0fff,
-   .instr_val  = (UPROBE_SWBP_INSN  0x0fff),
+   .instr_val  = (UPROBE_SWBP_ARM_INSN  0x0fff),
.cpsr_mask  = MODE_MASK,
.cpsr_val   = USR_MODE,
.fn = uprobe_trap_handler,
@@ -182,7 +182,7 @@ static struct undef_hook uprobes_arm_break_hook = {
 
 static struct undef_hook uprobes_arm_ss_hook = {
.instr_mask = 0x0fff,
-   .instr_val  = (UPROBE_SS_INSN  0x0fff),
+   .instr_val  = 

[PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-11-26 Thread David Long
From: "David A. Long" 

This patch series adds basic uprobes support to ARM. It is based on patches
developed earlier by Rabin Vincent. That approach of adding hooks into
the kprobes instruction parsing code was not well received. This approach
separates the ARM instruction parsing code in kprobes out into a separate set
of functions which can be used by both kprobes and uprobes. Both kprobes and
uprobes then provide their own semantic action tables to process the results of
the parsing.

The following are noteworthy changes made for v3:

1) The ARM uprobes functionality no longer depends on kprobes. As
a side effect of this there are no longer any changes to the common
kprobes include file (or any other common kprobes files).
2) A couple large patches have been broken down into more smaller
patches.
3) A problem with uretprobes has been fixed.
4) The kprobes-test module has been made more useable for thumb tests.
5) The argument list to the "action" functions has been shrunk.
6) Alignment with a few recent patches that were made to common
uprobes code specifically to support this patchset.

This patchset is based on v3.13-rc1


David A. Long (14):
  uprobes: allow ignoring of probe hits
  ARM: move shared uprobe/kprobe definitions into new include file
  ARM: Move generic arm instruction parsing code to new files for
sharing between features
  ARM: move generic thumb instruction parsing code to new files for use
by other feature
  ARM: use a function table for determining instruction interpreter
actions
  ARM: Remove use of struct kprobe from generic probes code
  ARM: Use new opcode type in ARM kprobes/uprobes code
  ARM: Make the kprobes condition_check symbol names more generic
  ARM: Change more ARM kprobes symbol names to something more
  ARM: Rename the shared kprobes/uprobe return value enum
  ARM: Change the remaining shared kprobes/uprobes symbols to something
generic
  ARM: Add an emulate flag to the kprobes/uprobes instruction decode
functions
  ARM: add uprobes support
  ARM: Remove uprobes dependency on kprobes

Jon Medhurst (Tixy) (1):
  ARM: Disable jprobes test when built into thumb-mode kernel

 arch/arm/Kconfig   |3 +
 arch/arm/include/asm/kprobes.h |   15 +-
 arch/arm/include/asm/probes.h  |   25 +
 arch/arm/include/asm/ptrace.h  |6 +
 arch/arm/include/asm/thread_info.h |5 +-
 arch/arm/include/asm/uprobes.h |   34 +
 arch/arm/kernel/Makefile   |7 +-
 arch/arm/kernel/kprobes-arm.c  |  804 ++
 arch/arm/kernel/kprobes-common.c   |  468 +---
 arch/arm/kernel/kprobes-test.c |   18 +-
 arch/arm/kernel/kprobes-thumb.c| 1141 +++-
 arch/arm/kernel/kprobes.c  |   24 +-
 arch/arm/kernel/kprobes.h  |  399 +--
 arch/arm/kernel/{kprobes-arm.c => probes-arm.c}|  441 ++--
 arch/arm/kernel/probes-arm.h   |   72 ++
 .../arm/kernel/{kprobes-thumb.c => probes-thumb.c} |  771 ++---
 arch/arm/kernel/probes-thumb.h |   95 ++
 arch/arm/kernel/{kprobes-common.c => probes.c} |  215 +---
 arch/arm/kernel/{kprobes.h => probes.h}|   91 +-
 arch/arm/kernel/signal.c   |4 +
 arch/arm/kernel/uprobes-arm.c  |  223 
 arch/arm/kernel/uprobes.c  |  198 
 arch/arm/kernel/uprobes.h  |   27 +
 include/linux/uprobes.h|1 +
 kernel/events/uprobes.c|9 +
 25 files changed, 1267 insertions(+), 3829 deletions(-)
 create mode 100644 arch/arm/include/asm/probes.h
 create mode 100644 arch/arm/include/asm/uprobes.h
 copy arch/arm/kernel/{kprobes-arm.c => probes-arm.c} (64%)
 create mode 100644 arch/arm/kernel/probes-arm.h
 copy arch/arm/kernel/{kprobes-thumb.c => probes-thumb.c} (56%)
 create mode 100644 arch/arm/kernel/probes-thumb.h
 copy arch/arm/kernel/{kprobes-common.c => probes.c} (67%)
 copy arch/arm/kernel/{kprobes.h => probes.h} (85%)
 create mode 100644 arch/arm/kernel/uprobes-arm.c
 create mode 100644 arch/arm/kernel/uprobes.c
 create mode 100644 arch/arm/kernel/uprobes.h

-- 
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 00/15] uprobes: Add uprobes support for ARM

2013-11-26 Thread David Long
From: David A. Long dave.l...@linaro.org

This patch series adds basic uprobes support to ARM. It is based on patches
developed earlier by Rabin Vincent. That approach of adding hooks into
the kprobes instruction parsing code was not well received. This approach
separates the ARM instruction parsing code in kprobes out into a separate set
of functions which can be used by both kprobes and uprobes. Both kprobes and
uprobes then provide their own semantic action tables to process the results of
the parsing.

The following are noteworthy changes made for v3:

1) The ARM uprobes functionality no longer depends on kprobes. As
a side effect of this there are no longer any changes to the common
kprobes include file (or any other common kprobes files).
2) A couple large patches have been broken down into more smaller
patches.
3) A problem with uretprobes has been fixed.
4) The kprobes-test module has been made more useable for thumb tests.
5) The argument list to the action functions has been shrunk.
6) Alignment with a few recent patches that were made to common
uprobes code specifically to support this patchset.

This patchset is based on v3.13-rc1


David A. Long (14):
  uprobes: allow ignoring of probe hits
  ARM: move shared uprobe/kprobe definitions into new include file
  ARM: Move generic arm instruction parsing code to new files for
sharing between features
  ARM: move generic thumb instruction parsing code to new files for use
by other feature
  ARM: use a function table for determining instruction interpreter
actions
  ARM: Remove use of struct kprobe from generic probes code
  ARM: Use new opcode type in ARM kprobes/uprobes code
  ARM: Make the kprobes condition_check symbol names more generic
  ARM: Change more ARM kprobes symbol names to something more
  ARM: Rename the shared kprobes/uprobe return value enum
  ARM: Change the remaining shared kprobes/uprobes symbols to something
generic
  ARM: Add an emulate flag to the kprobes/uprobes instruction decode
functions
  ARM: add uprobes support
  ARM: Remove uprobes dependency on kprobes

Jon Medhurst (Tixy) (1):
  ARM: Disable jprobes test when built into thumb-mode kernel

 arch/arm/Kconfig   |3 +
 arch/arm/include/asm/kprobes.h |   15 +-
 arch/arm/include/asm/probes.h  |   25 +
 arch/arm/include/asm/ptrace.h  |6 +
 arch/arm/include/asm/thread_info.h |5 +-
 arch/arm/include/asm/uprobes.h |   34 +
 arch/arm/kernel/Makefile   |7 +-
 arch/arm/kernel/kprobes-arm.c  |  804 ++
 arch/arm/kernel/kprobes-common.c   |  468 +---
 arch/arm/kernel/kprobes-test.c |   18 +-
 arch/arm/kernel/kprobes-thumb.c| 1141 +++-
 arch/arm/kernel/kprobes.c  |   24 +-
 arch/arm/kernel/kprobes.h  |  399 +--
 arch/arm/kernel/{kprobes-arm.c = probes-arm.c}|  441 ++--
 arch/arm/kernel/probes-arm.h   |   72 ++
 .../arm/kernel/{kprobes-thumb.c = probes-thumb.c} |  771 ++---
 arch/arm/kernel/probes-thumb.h |   95 ++
 arch/arm/kernel/{kprobes-common.c = probes.c} |  215 +---
 arch/arm/kernel/{kprobes.h = probes.h}|   91 +-
 arch/arm/kernel/signal.c   |4 +
 arch/arm/kernel/uprobes-arm.c  |  223 
 arch/arm/kernel/uprobes.c  |  198 
 arch/arm/kernel/uprobes.h  |   27 +
 include/linux/uprobes.h|1 +
 kernel/events/uprobes.c|9 +
 25 files changed, 1267 insertions(+), 3829 deletions(-)
 create mode 100644 arch/arm/include/asm/probes.h
 create mode 100644 arch/arm/include/asm/uprobes.h
 copy arch/arm/kernel/{kprobes-arm.c = probes-arm.c} (64%)
 create mode 100644 arch/arm/kernel/probes-arm.h
 copy arch/arm/kernel/{kprobes-thumb.c = probes-thumb.c} (56%)
 create mode 100644 arch/arm/kernel/probes-thumb.h
 copy arch/arm/kernel/{kprobes-common.c = probes.c} (67%)
 copy arch/arm/kernel/{kprobes.h = probes.h} (85%)
 create mode 100644 arch/arm/kernel/uprobes-arm.c
 create mode 100644 arch/arm/kernel/uprobes.c
 create mode 100644 arch/arm/kernel/uprobes.h

-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/