Re: svn commit: r244445 - in head/sys: kern sys tools
On 12/19/2012 12:10 PM, Jeff Roberson wrote: Author: jeff Date: Wed Dec 19 20:10:00 2012 New Revision: 25 URL: http://svnweb.freebsd.org/changeset/base/25 Log: - Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by: EMC / Isilon Storage Division Jeff, please fix tinderbox breakage caused by this commit ARM kernel build with KTR option is still broken as of today: http://tinderbox.freebsd.org/tinderbox-head-ss-build-HEAD-arm-arm.brief In file included from /src/sys/arm/arm/trap.c:900: /src/sys/arm/arm/../../kern/subr_syscall.c: In function 'syscallenter': /src/sys/arm/arm/../../kern/subr_syscall.c:80: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] /src/sys/arm/arm/../../kern/subr_syscall.c:154: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] *** [trap.o] Error code 1 Thank you ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r244445 - in head/sys: kern sys tools
On Thu, Dec 27, 2012 at 06:03:26PM -0800, Oleksandr Tymoshenko wrote: On 12/19/2012 12:10 PM, Jeff Roberson wrote: Author: jeff Date: Wed Dec 19 20:10:00 2012 New Revision: 25 URL: http://svnweb.freebsd.org/changeset/base/25 Log: - Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by:EMC / Isilon Storage Division Jeff, please fix tinderbox breakage caused by this commit ARM kernel build with KTR option is still broken as of today: http://tinderbox.freebsd.org/tinderbox-head-ss-build-HEAD-arm-arm.brief In file included from /src/sys/arm/arm/trap.c:900: /src/sys/arm/arm/../../kern/subr_syscall.c: In function 'syscallenter': /src/sys/arm/arm/../../kern/subr_syscall.c:80: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] /src/sys/arm/arm/../../kern/subr_syscall.c:154: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] *** [trap.o] Error code 1 Thank you I am running a fix through the make universe right now. If you can compile just ARM and confirm that gcc is silenced by this, I will commit it before make universe finishes. diff --git a/sys/kern/subr_syscall.c b/sys/kern/subr_syscall.c index 3dcfcf5..349b410 100644 --- a/sys/kern/subr_syscall.c +++ b/sys/kern/subr_syscall.c @@ -77,7 +77,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(sa-code, sa-narg, sa-args); #endif - KTR_START4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_START4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, arg0:%p, sa-args[0], arg1:%p, sa-args[1], arg2:%p, sa-args[2]); @@ -151,7 +151,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) syscall_thread_exit(td, sa-callp); } retval: - KTR_STOP4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_STOP4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, error:%d, error, retval0:%#lx, td-td_retval[0], retval1:%#lx, td-td_retval[1]); pgpIMbTAWbAIo.pgp Description: PGP signature
Re: svn commit: r244445 - in head/sys: kern sys tools
On 12/27/2012 6:14 PM, Konstantin Belousov wrote: On Thu, Dec 27, 2012 at 06:03:26PM -0800, Oleksandr Tymoshenko wrote: On 12/19/2012 12:10 PM, Jeff Roberson wrote: Author: jeff Date: Wed Dec 19 20:10:00 2012 New Revision: 25 URL: http://svnweb.freebsd.org/changeset/base/25 Log: - Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by: EMC / Isilon Storage Division Jeff, please fix tinderbox breakage caused by this commit ARM kernel build with KTR option is still broken as of today: http://tinderbox.freebsd.org/tinderbox-head-ss-build-HEAD-arm-arm.brief In file included from /src/sys/arm/arm/trap.c:900: /src/sys/arm/arm/../../kern/subr_syscall.c: In function 'syscallenter': /src/sys/arm/arm/../../kern/subr_syscall.c:80: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] /src/sys/arm/arm/../../kern/subr_syscall.c:154: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] *** [trap.o] Error code 1 Thank you I am running a fix through the make universe right now. If you can compile just ARM and confirm that gcc is silenced by this, I will commit it before make universe finishes. diff --git a/sys/kern/subr_syscall.c b/sys/kern/subr_syscall.c index 3dcfcf5..349b410 100644 --- a/sys/kern/subr_syscall.c +++ b/sys/kern/subr_syscall.c @@ -77,7 +77,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(sa-code, sa-narg, sa-args); #endif - KTR_START4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_START4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, arg0:%p, sa-args[0], arg1:%p, sa-args[1], arg2:%p, sa-args[2]); @@ -151,7 +151,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) syscall_thread_exit(td, sa-callp); } retval: - KTR_STOP4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_STOP4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, error:%d, error, retval0:%#lx, td-td_retval[0], retval1:%#lx, td-td_retval[1]); Didn't help. It's td, not sysclalname result that gcc complains about: http://people.freebsd.org/~gonzo/patches/ktr-syscall-fix.diff ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r244445 - in head/sys: kern sys tools
On Thu, Dec 27, 2012 at 06:25:34PM -0800, Oleksandr Tymoshenko wrote: On 12/27/2012 6:14 PM, Konstantin Belousov wrote: On Thu, Dec 27, 2012 at 06:03:26PM -0800, Oleksandr Tymoshenko wrote: On 12/19/2012 12:10 PM, Jeff Roberson wrote: Author: jeff Date: Wed Dec 19 20:10:00 2012 New Revision: 25 URL: http://svnweb.freebsd.org/changeset/base/25 Log: - Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by: EMC / Isilon Storage Division Jeff, please fix tinderbox breakage caused by this commit ARM kernel build with KTR option is still broken as of today: http://tinderbox.freebsd.org/tinderbox-head-ss-build-HEAD-arm-arm.brief In file included from /src/sys/arm/arm/trap.c:900: /src/sys/arm/arm/../../kern/subr_syscall.c: In function 'syscallenter': /src/sys/arm/arm/../../kern/subr_syscall.c:80: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] /src/sys/arm/arm/../../kern/subr_syscall.c:154: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] *** [trap.o] Error code 1 Thank you I am running a fix through the make universe right now. If you can compile just ARM and confirm that gcc is silenced by this, I will commit it before make universe finishes. diff --git a/sys/kern/subr_syscall.c b/sys/kern/subr_syscall.c index 3dcfcf5..349b410 100644 --- a/sys/kern/subr_syscall.c +++ b/sys/kern/subr_syscall.c @@ -77,7 +77,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(sa-code, sa-narg, sa-args); #endif - KTR_START4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_START4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, arg0:%p, sa-args[0], arg1:%p, sa-args[1], arg2:%p, sa-args[2]); @@ -151,7 +151,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) syscall_thread_exit(td, sa-callp); } retval: - KTR_STOP4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_STOP4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, error:%d, error, retval0:%#lx, td-td_retval[0], retval1:%#lx, td-td_retval[1]); Didn't help. It's td, not sysclalname result that gcc complains about: http://people.freebsd.org/~gonzo/patches/ktr-syscall-fix.diff Ok, commit ? Assuming it compiles. pgpJAz0CGSzWG.pgp Description: PGP signature
Re: svn commit: r244445 - in head/sys: kern sys tools
On 12/27/2012 6:29 PM, Konstantin Belousov wrote: On Thu, Dec 27, 2012 at 06:25:34PM -0800, Oleksandr Tymoshenko wrote: On 12/27/2012 6:14 PM, Konstantin Belousov wrote: On Thu, Dec 27, 2012 at 06:03:26PM -0800, Oleksandr Tymoshenko wrote: On 12/19/2012 12:10 PM, Jeff Roberson wrote: Author: jeff Date: Wed Dec 19 20:10:00 2012 New Revision: 25 URL: http://svnweb.freebsd.org/changeset/base/25 Log: - Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by: EMC / Isilon Storage Division Jeff, please fix tinderbox breakage caused by this commit ARM kernel build with KTR option is still broken as of today: http://tinderbox.freebsd.org/tinderbox-head-ss-build-HEAD-arm-arm.brief In file included from /src/sys/arm/arm/trap.c:900: /src/sys/arm/arm/../../kern/subr_syscall.c: In function 'syscallenter': /src/sys/arm/arm/../../kern/subr_syscall.c:80: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] /src/sys/arm/arm/../../kern/subr_syscall.c:154: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] *** [trap.o] Error code 1 Thank you I am running a fix through the make universe right now. If you can compile just ARM and confirm that gcc is silenced by this, I will commit it before make universe finishes. diff --git a/sys/kern/subr_syscall.c b/sys/kern/subr_syscall.c index 3dcfcf5..349b410 100644 --- a/sys/kern/subr_syscall.c +++ b/sys/kern/subr_syscall.c @@ -77,7 +77,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(sa-code, sa-narg, sa-args); #endif - KTR_START4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_START4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, arg0:%p, sa-args[0], arg1:%p, sa-args[1], arg2:%p, sa-args[2]); @@ -151,7 +151,7 @@ syscallenter(struct thread *td, struct syscall_args *sa) syscall_thread_exit(td, sa-callp); } retval: - KTR_STOP4(KTR_SYSC, syscall, syscallname(p, sa-code), + KTR_STOP4(KTR_SYSC, syscall, (uintptr_t)syscallname(p, sa-code), td, pid:%d, td-td_proc-p_pid, error:%d, error, retval0:%#lx, td-td_retval[0], retval1:%#lx, td-td_retval[1]); Didn't help. It's td, not sysclalname result that gcc complains about: http://people.freebsd.org/~gonzo/patches/ktr-syscall-fix.diff Ok, commit ? Assuming it compiles. Let me check it with make universe ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r244445 - in head/sys: kern sys tools
This appears to have broken the build on arm. I see the following build failure building an arm LINT kernel: cc1: warnings being treated as errors In file included from /usr/home/rstone/freebsd/head_2/sys/arn/arm/trap.c:900: /usr/home/rstone/freebsd/head_2/sys/arm/arm/../../kern/subr_syscall.c: In function 'syscallenter': /usr/home/rstone/freebsd/head_2/sys/arm/arm/../../kern/subr_syscall.c:80: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] /usr/home/rstone/freebsd/head_2/sys/arm/arm/../../kern/subr_syscall.c:154: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r244445 - in head/sys: kern sys tools
Author: jeff Date: Wed Dec 19 20:10:00 2012 New Revision: 25 URL: http://svnweb.freebsd.org/changeset/base/25 Log: - Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/subr_syscall.c head/sys/sys/ktr.h head/sys/tools/vnode_if.awk Modified: head/sys/kern/subr_syscall.c == --- head/sys/kern/subr_syscall.cWed Dec 19 20:08:06 2012 (r24) +++ head/sys/kern/subr_syscall.cWed Dec 19 20:10:00 2012 (r25) @@ -77,13 +77,12 @@ syscallenter(struct thread *td, struct s if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(sa-code, sa-narg, sa-args); #endif - - CTR6(KTR_SYSC, -syscall: td=%p pid %d %s (%#lx, %#lx, %#lx), - td, td-td_proc-p_pid, syscallname(p, sa-code), - sa-args[0], sa-args[1], sa-args[2]); + KTR_START4(KTR_SYSC, syscall, syscallname(p, sa-code), + td, pid:%d, td-td_proc-p_pid, arg0:%p, sa-args[0], + arg1:%p, sa-args[1], arg2:%p, sa-args[2]); if (error == 0) { + STOPEVENT(p, S_SCE, sa-narg); if (p-p_flag P_TRACED p-p_stops S_PT_SCE) { PROC_LOCK(p); @@ -150,10 +149,12 @@ syscallenter(struct thread *td, struct s sa-callp, NULL, (error) ? -1 : td-td_retval[0]); #endif syscall_thread_exit(td, sa-callp); - CTR4(KTR_SYSC, syscall: p=%p error=%d return %#lx %#lx, - p, error, td-td_retval[0], td-td_retval[1]); } retval: + KTR_STOP4(KTR_SYSC, syscall, syscallname(p, sa-code), + td, pid:%d, td-td_proc-p_pid, error:%d, error, + retval0:%#lx, td-td_retval[0], retval1:%#lx, + td-td_retval[1]); if (traced) { PROC_LOCK(p); td-td_dbgflags = ~TDB_SCE; @@ -176,9 +177,6 @@ syscallret(struct thread *td, int error, */ userret(td, td-td_frame); - CTR4(KTR_SYSC, syscall %s exit thread %p pid %d proc %s, - syscallname(p, sa-code), td, td-td_proc-p_pid, td-td_name); - #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) { ktrsysret(sa-code, (td-td_pflags TDP_NERRNO) == 0 ? Modified: head/sys/sys/ktr.h == --- head/sys/sys/ktr.h Wed Dec 19 20:08:06 2012(r24) +++ head/sys/sys/ktr.h Wed Dec 19 20:10:00 2012(r25) @@ -244,6 +244,50 @@ void ktr_tracepoint(u_int mask, const ch point, a0, (v0), a1, (v1), a2, (v2), a3, (v3)) /* + * Start functions denote the start of a region of code or operation + * and should be paired with stop functions for timing of nested + * sequences. + * + * Specifying extra attributes with the name key will result in + * multi-part keys. For example a block device and offset pair + * might be used to describe a buf undergoing I/O. + */ +#defineKTR_START0(m, egroup, ident, key) \ + KTR_EVENT0(m, egroup, ident, start:0x%jX, (uintmax_t)key) +#defineKTR_START1(m, egroup, ident, key, a0, v0) \ + KTR_EVENT1(m, egroup, ident, start:0x%jX, (uintmax_t)key, a0, (v0)) +#defineKTR_START2(m, egroup, ident, key, a0, v0, a1, v1) \ + KTR_EVENT2(m, egroup, ident, start:0x%jX, (uintmax_t)key, \ + a0, (v0), a1, (v1)) +#defineKTR_START3(m, egroup, ident, key, a0, v0, a1, v1, a2, v2)\ + KTR_EVENT3(m, egroup, ident, start:0x%jX, (uintmax_t)key, \ + a0, (v0), a1, (v1), a2, (v2)) +#defineKTR_START4(m, egroup, ident, key, \ + a0, v0, a1, v1, a2, v2, a3, v3) \ + KTR_EVENT4(m, egroup, ident, start:0x%jX, (uintmax_t)key, \ + a0, (v0), a1, (v1), a2, (v2), a3, (v3)) + +/* + * Stop functions denote the end of a region of code or operation + * and should be paired with start functions for timing of nested + * sequences. + */ +#defineKTR_STOP0(m, egroup, ident, key) \ + KTR_EVENT0(m, egroup, ident, stop:0x%jX, (uintmax_t)key) +#defineKTR_STOP1(m, egroup, ident, key, a0, v0) \ + KTR_EVENT1(m, egroup, ident, stop:0x%jX, (uintmax_t)key, a0, (v0)) +#defineKTR_STOP2(m, egroup, ident, key, a0, v0, a1, v1) \ + KTR_EVENT2(m, egroup, ident, stop:0x%jX, (uintmax_t)key, \ + a0, (v0), a1, (v1)) +#defineKTR_STOP3(m, egroup, ident, key, a0, v0, a1, v1, a2, v2)\ + KTR_EVENT3(m, egroup, ident, stop:0x%jX, (uintmax_t)key, \ + a0, (v0), a1, (v1), a2, (v2))