Message ID | 1448086096-3117-1-git-send-email-rashmicy@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On 11/21/2015 11:38 AM, Rashmica Gupta wrote: > It is common practice with powerpc to use 'rN' to refer to register 'N'. However > when using the pt_regs_offset table we have to use 'gprN'. > > So add aliases such that both 'rN' and 'gprN' can be used. > > For example, we can currently do: > $ su - > $ echo "p:probe/sys_fchownat .sys_fchownat %gpr3:s32 +0(%gpr4):string %gpr5:s32 > %gpr6:s32 %gpr7:s32" > /sys/kernel/debug/tracing/kprobe_events > $ echo 1 > /sys/kernel/debug/tracing/events/probe/sys_fchownat/enable > $ touch /tmp/foo > $ chown root /tmp/foo > $ echo 0 > /sys/kernel/debug/tracing/events/enable > $ cat /sys/kernel/debug/tracing/trace > chown-5040 [001] d... 24800.047211: sys_fchownat: > (.SyS_fchownat+0x0/0x190) arg1=-100 arg2="foo" arg3=0 arg4=-1 arg5=0 > > Instead we'd like to be able to use: > $ echo "p:probe/sys_fchownat sys_fchownat %r3:s32 +0(%r4):string %r5:s32 > %r6:s32 %r7:s32" > /sys/kernel/debug/tracing/kprobe_events This makes sense and works for me on a LE guest. Just that the symbol should not have the "." before it.
On Mon, 2015-11-23 at 13:54 +0530, Anshuman Khandual wrote: > On 11/21/2015 11:38 AM, Rashmica Gupta wrote: > > It is common practice with powerpc to use 'rN' to refer to register 'N'. However > > when using the pt_regs_offset table we have to use 'gprN'. > > > > So add aliases such that both 'rN' and 'gprN' can be used. > > > > For example, we can currently do: > > $ su - > > $ echo "p:probe/sys_fchownat .sys_fchownat %gpr3:s32 +0(%gpr4):string %gpr5:s32 > > %gpr6:s32 %gpr7:s32" > /sys/kernel/debug/tracing/kprobe_events > > $ echo 1 > /sys/kernel/debug/tracing/events/probe/sys_fchownat/enable > > $ touch /tmp/foo > > $ chown root /tmp/foo > > $ echo 0 > /sys/kernel/debug/tracing/events/enable > > $ cat /sys/kernel/debug/tracing/trace > > chown-5040 [001] d... 24800.047211: sys_fchownat: > > (.SyS_fchownat+0x0/0x190) arg1=-100 arg2="foo" arg3=0 arg4=-1 arg5=0 > > > > Instead we'd like to be able to use: > > $ echo "p:probe/sys_fchownat sys_fchownat %r3:s32 +0(%r4):string %r5:s32 > > %r6:s32 %r7:s32" > /sys/kernel/debug/tracing/kprobe_events > > This makes sense and works for me on a LE guest. Just that the symbol > should not have the "." before it. Yeah that's probably my fault for giving Rashmica an example from a BE system. I'll fix up the example before I commit it. cheers
On Sat, 2015-21-11 at 06:08:16 UTC, Rashmica Gupta wrote: > It is common practice with powerpc to use 'rN' to refer to register 'N'. However > when using the pt_regs_offset table we have to use 'gprN'. > > So add aliases such that both 'rN' and 'gprN' can be used. > > For example, we can currently do: > $ su - > $ echo "p:probe/sys_fchownat .sys_fchownat %gpr3:s32 +0(%gpr4):string %gpr5:s32 > %gpr6:s32 %gpr7:s32" > /sys/kernel/debug/tracing/kprobe_events > $ echo 1 > /sys/kernel/debug/tracing/events/probe/sys_fchownat/enable > $ touch /tmp/foo > $ chown root /tmp/foo > $ echo 0 > /sys/kernel/debug/tracing/events/enable > $ cat /sys/kernel/debug/tracing/trace > chown-5040 [001] d... 24800.047211: sys_fchownat: > (.SyS_fchownat+0x0/0x190) arg1=-100 arg2="foo" arg3=0 arg4=-1 arg5=0 > > Instead we'd like to be able to use: > $ echo "p:probe/sys_fchownat sys_fchownat %r3:s32 +0(%r4):string %r5:s32 > %r6:s32 %r7:s32" > /sys/kernel/debug/tracing/kprobe_events > > Signed-off-by: Rashmica Gupta <rashmicy@gmail.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/343c3327c12b136551929830 cheers
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 737c0d0b53ac..30a03c03fe73 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c @@ -60,6 +60,7 @@ struct pt_regs_offset { #define STR(s) #s /* convert to string */ #define REG_OFFSET_NAME(r) {.name = #r, .offset = offsetof(struct pt_regs, r)} #define GPR_OFFSET_NAME(num) \ + {.name = STR(r##num), .offset = offsetof(struct pt_regs, gpr[num])}, \ {.name = STR(gpr##num), .offset = offsetof(struct pt_regs, gpr[num])} #define REG_OFFSET_END {.name = NULL, .offset = 0}
It is common practice with powerpc to use 'rN' to refer to register 'N'. However when using the pt_regs_offset table we have to use 'gprN'. So add aliases such that both 'rN' and 'gprN' can be used. For example, we can currently do: $ su - $ echo "p:probe/sys_fchownat .sys_fchownat %gpr3:s32 +0(%gpr4):string %gpr5:s32 %gpr6:s32 %gpr7:s32" > /sys/kernel/debug/tracing/kprobe_events $ echo 1 > /sys/kernel/debug/tracing/events/probe/sys_fchownat/enable $ touch /tmp/foo $ chown root /tmp/foo $ echo 0 > /sys/kernel/debug/tracing/events/enable $ cat /sys/kernel/debug/tracing/trace chown-5040 [001] d... 24800.047211: sys_fchownat: (.SyS_fchownat+0x0/0x190) arg1=-100 arg2="foo" arg3=0 arg4=-1 arg5=0 Instead we'd like to be able to use: $ echo "p:probe/sys_fchownat sys_fchownat %r3:s32 +0(%r4):string %r5:s32 %r6:s32 %r7:s32" > /sys/kernel/debug/tracing/kprobe_events Signed-off-by: Rashmica Gupta <rashmicy@gmail.com> --- arch/powerpc/kernel/ptrace.c | 1 + 1 file changed, 1 insertion(+)