* [PATCH 2/4] tile: Add definition of NR_syscalls [not found] <1358816098-13070-1-git-send-email-simon.marchi@polymtl.ca> @ 2013-01-22 0:54 ` Simon Marchi 2013-01-22 1:06 ` Mathieu Desnoyers 2013-01-22 0:54 ` [PATCH 3/4] tile: Add support for TIF_SYSCALL_TRACEPOINT Simon Marchi ` (2 subsequent siblings) 3 siblings, 1 reply; 5+ messages in thread From: Simon Marchi @ 2013-01-22 0:54 UTC (permalink / raw) To: cmetcalf; +Cc: linux-kernel, lttng-dev, Simon Marchi It is required by the syscall tracepoint mechanism. Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca> --- arch/tile/include/uapi/asm/unistd.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/tile/include/uapi/asm/unistd.h b/arch/tile/include/uapi/asm/unistd.h index cd7b6dd..c763c86 100644 --- a/arch/tile/include/uapi/asm/unistd.h +++ b/arch/tile/include/uapi/asm/unistd.h @@ -20,6 +20,8 @@ /* Use the standard ABI for syscalls. */ #include <asm-generic/unistd.h> +#define NR_syscalls (__NR_syscalls) + /* Additional Tilera-specific syscalls. */ #define __NR_cacheflush (__NR_arch_specific_syscall + 1) __SYSCALL(__NR_cacheflush, sys_cacheflush) -- 1.7.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/4] tile: Add definition of NR_syscalls 2013-01-22 0:54 ` [PATCH 2/4] tile: Add definition of NR_syscalls Simon Marchi @ 2013-01-22 1:06 ` Mathieu Desnoyers 0 siblings, 0 replies; 5+ messages in thread From: Mathieu Desnoyers @ 2013-01-22 1:06 UTC (permalink / raw) To: Simon Marchi; +Cc: lttng-dev, linux-kernel, cmetcalf * Simon Marchi (simon.marchi@polymtl.ca) wrote: > It is required by the syscall tracepoint mechanism. > > Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca> > --- > arch/tile/include/uapi/asm/unistd.h | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/arch/tile/include/uapi/asm/unistd.h b/arch/tile/include/uapi/asm/unistd.h > index cd7b6dd..c763c86 100644 > --- a/arch/tile/include/uapi/asm/unistd.h > +++ b/arch/tile/include/uapi/asm/unistd.h > @@ -20,6 +20,8 @@ > /* Use the standard ABI for syscalls. */ > #include <asm-generic/unistd.h> > > +#define NR_syscalls (__NR_syscalls) The parenthesis around __NR_syscalls seems unnecessary. (unless parenthesis would happen to be missing around a __NR_syscalls definition with multiple identifiers, but clearly, the parenthesis don't belong here). Thanks, Mathieu > + > /* Additional Tilera-specific syscalls. */ > #define __NR_cacheflush (__NR_arch_specific_syscall + 1) > __SYSCALL(__NR_cacheflush, sys_cacheflush) > -- > 1.7.1 > > > _______________________________________________ > lttng-dev mailing list > lttng-dev@lists.lttng.org > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/4] tile: Add support for TIF_SYSCALL_TRACEPOINT [not found] <1358816098-13070-1-git-send-email-simon.marchi@polymtl.ca> 2013-01-22 0:54 ` [PATCH 2/4] tile: Add definition of NR_syscalls Simon Marchi @ 2013-01-22 0:54 ` Simon Marchi 2013-01-22 0:54 ` [PATCH 4/4] tile: select HAVE_SYSCALL_TRACEPOINTS Simon Marchi [not found] ` <1358816098-13070-4-git-send-email-simon.marchi@polymtl.ca> 3 siblings, 0 replies; 5+ messages in thread From: Simon Marchi @ 2013-01-22 0:54 UTC (permalink / raw) To: cmetcalf; +Cc: lttng-dev, linux-kernel, Simon Marchi This patch adds support for the TIF_SYSCALL_TRACEPOINT on the tile architecture. Basically, it calls the appropriate tracepoints on syscall entry and exit. Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca> --- arch/tile/include/asm/thread_info.h | 8 ++++++++ arch/tile/kernel/intvec_64.S | 14 ++++++++++---- arch/tile/kernel/ptrace.c | 17 ++++++++++++++--- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/arch/tile/include/asm/thread_info.h b/arch/tile/include/asm/thread_info.h index e9c670d..c96331e 100644 --- a/arch/tile/include/asm/thread_info.h +++ b/arch/tile/include/asm/thread_info.h @@ -124,6 +124,7 @@ extern void _cpu_idle(void); #define TIF_SECCOMP 6 /* secure computing */ #define TIF_MEMDIE 7 /* OOM killer at work */ #define TIF_NOTIFY_RESUME 8 /* callback before returning to user */ +#define TIF_SYSCALL_TRACEPOINT 9 /* syscall tracepoint instrumentation */ #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) @@ -134,12 +135,19 @@ extern void _cpu_idle(void); #define _TIF_SECCOMP (1<<TIF_SECCOMP) #define _TIF_MEMDIE (1<<TIF_MEMDIE) #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) +#define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) /* Work to do on any return to user space. */ #define _TIF_ALLWORK_MASK \ (_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_SINGLESTEP|\ _TIF_ASYNC_TLB|_TIF_NOTIFY_RESUME) +/* Work to do at syscall entry. */ +#define _TIF_SYSCALL_ENTRY_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT) + +/* Work to do at syscall exit. */ +#define _TIF_SYSCALL_EXIT_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT) + /* * Thread-synchronous status. * diff --git a/arch/tile/kernel/intvec_64.S b/arch/tile/kernel/intvec_64.S index fd78cd4..505e6d4 100644 --- a/arch/tile/kernel/intvec_64.S +++ b/arch/tile/kernel/intvec_64.S @@ -1000,8 +1000,11 @@ handle_syscall: /* Trace syscalls, if requested. */ addi r31, r31, THREAD_INFO_FLAGS_OFFSET - ld r30, r31 - andi r30, r30, _TIF_SYSCALL_TRACE + { + ld r30, r31 + moveli r32, _TIF_SYSCALL_ENTRY_WORK + } + and r30, r30, r32 { addi r30, r31, THREAD_INFO_STATUS_OFFSET - THREAD_INFO_FLAGS_OFFSET beqzt r30, .Lrestore_syscall_regs @@ -1070,8 +1073,11 @@ handle_syscall: FEEDBACK_REENTER(handle_syscall) /* Do syscall trace again, if requested. */ - ld r30, r31 - andi r0, r30, _TIF_SYSCALL_TRACE + { + ld r30, r31 + moveli r32, _TIF_SYSCALL_EXIT_WORK + } + and r0, r30, r32 { andi r0, r30, _TIF_SINGLESTEP beqzt r0, 1f diff --git a/arch/tile/kernel/ptrace.c b/arch/tile/kernel/ptrace.c index 0ab8b76..363b2dd 100644 --- a/arch/tile/kernel/ptrace.c +++ b/arch/tile/kernel/ptrace.c @@ -25,6 +25,9 @@ #include <asm/traps.h> #include <arch/chip.h> +#define CREATE_TRACE_POINTS +#include <trace/events/syscalls.h> + void user_enable_single_step(struct task_struct *child) { set_tsk_thread_flag(child, TIF_SINGLESTEP); @@ -249,16 +252,24 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, int do_syscall_trace_enter(struct pt_regs *regs) { - if (tracehook_report_syscall_entry(regs)) { - regs->regs[TREG_SYSCALL_NR] = -1; + if (test_thread_flag(TIF_SYSCALL_TRACE)) { + if (tracehook_report_syscall_entry(regs)) + regs->regs[TREG_SYSCALL_NR] = -1; } + if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) + trace_sys_enter(regs, regs->regs[TREG_SYSCALL_NR]); + return regs->regs[TREG_SYSCALL_NR]; } void do_syscall_trace_exit(struct pt_regs *regs) { - tracehook_report_syscall_exit(regs, 0); + if (test_thread_flag(TIF_SYSCALL_TRACE)) + tracehook_report_syscall_exit(regs, 0); + + if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) + trace_sys_exit(regs, regs->regs[TREG_SYSCALL_NR]); } void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code) -- 1.7.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] tile: select HAVE_SYSCALL_TRACEPOINTS [not found] <1358816098-13070-1-git-send-email-simon.marchi@polymtl.ca> 2013-01-22 0:54 ` [PATCH 2/4] tile: Add definition of NR_syscalls Simon Marchi 2013-01-22 0:54 ` [PATCH 3/4] tile: Add support for TIF_SYSCALL_TRACEPOINT Simon Marchi @ 2013-01-22 0:54 ` Simon Marchi [not found] ` <1358816098-13070-4-git-send-email-simon.marchi@polymtl.ca> 3 siblings, 0 replies; 5+ messages in thread From: Simon Marchi @ 2013-01-22 0:54 UTC (permalink / raw) To: cmetcalf; +Cc: lttng-dev, linux-kernel, Simon Marchi Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca> --- arch/tile/Kconfig | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index 8cab409..1adb853 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig @@ -22,6 +22,7 @@ config TILE select GENERIC_CLOCKEVENTS select MODULES_USE_ELF_RELA select HAVE_ARCH_TRACEHOOK + select HAVE_SYSCALL_TRACEPOINTS # FIXME: investigate whether we need/want these options. # select HAVE_IOREMAP_PROT -- 1.7.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1358816098-13070-4-git-send-email-simon.marchi@polymtl.ca>]
* Re: [PATCH 4/4] tile: select HAVE_SYSCALL_TRACEPOINTS [not found] ` <1358816098-13070-4-git-send-email-simon.marchi@polymtl.ca> @ 2013-01-22 20:23 ` Chris Metcalf 0 siblings, 0 replies; 5+ messages in thread From: Chris Metcalf @ 2013-01-22 20:23 UTC (permalink / raw) To: Simon Marchi; +Cc: linux-kernel, lttng-dev On 1/21/2013 7:54 PM, Simon Marchi wrote: > Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca> > --- > arch/tile/Kconfig | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) Thanks! I took the series of four patches into the tile tree for 3.9 (removing the parentheses around the definition of NR_syscalls). -- Chris Metcalf, Tilera Corp. http://www.tilera.com ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-01-22 20:23 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1358816098-13070-1-git-send-email-simon.marchi@polymtl.ca>
2013-01-22 0:54 ` [PATCH 2/4] tile: Add definition of NR_syscalls Simon Marchi
2013-01-22 1:06 ` Mathieu Desnoyers
2013-01-22 0:54 ` [PATCH 3/4] tile: Add support for TIF_SYSCALL_TRACEPOINT Simon Marchi
2013-01-22 0:54 ` [PATCH 4/4] tile: select HAVE_SYSCALL_TRACEPOINTS Simon Marchi
[not found] ` <1358816098-13070-4-git-send-email-simon.marchi@polymtl.ca>
2013-01-22 20:23 ` Chris Metcalf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).