[PATCH v2] Implemented -e trace=%clock option for clock_* related syscalls
Rishi Bhatt
bhatt.rishi062 at gmail.com
Thu Mar 16 11:11:22 UTC 2017
Patched the changes that you have mentioned.
On Thu, Mar 16, 2017 at 7:45 AM, Dmitry V. Levin <ldv at altlinux.org> wrote:
> On Thu, Mar 16, 2017 at 12:17:08AM +0530, Rishi Bhatt wrote:
> > linux/*/syscallent.h part is modified automatically by:
> >
> > git grep -Fl 'SEN(clock_' linux/ | xargs sed -i \
> > 's/0\(,[[:space:]]*SEN(clock_\)/TC\1/'
>
> I think TC is too short, let's use 3-letter abbreviations for new classes,
> e.g. TCL.
>
Done
> > * syscall.c: Alias TC to TRACE_CLOCK around syscallent.h inclusion.
> > * sysent.h (TRACE_CLOCK): New definition.
> > * qualify.c (lookup_class): Add TRACE_CLOCK for "%clock".
> > * strace.1 (.SS Filtering): Add information about %clock syscall
> class.
> > * linux/32/syscallent.h: Add TSC flag for sched_* sycalls.
>
> For sched_* sycalls? Really? When you do a cut-n-paste from commit
> 811638e9c1805438a63c14f9704b8b00ac922623, please do not copy its typos.
>
> Sorry,won't happen again.
noted.
> > * linux/64/syscallent.h: Likewise.
> > * linux/alpha/syscallent.h: Likewise.
> > * linux/arm/syscallent.h: Likewise.
> > * linux/avr32/syscallent.h: Likewise.
> > * linux/bfin/syscallent.h: Likewise.
> > * linux/crisv10/syscallent.h: Likewise.
> > * linux/hppa/syscallent.h: Likewise.
> > * linux/i386/syscallent.h: Likewise.
> > * linux/ia64/syscallent.h: Likewise.
> > * linux/m68k/syscallent.h: Likewise.
> > * linux/microblaze/syscallent.h: Likewise.
> > * linux/mips/syscallent-n32.h: Likewise.
> > * linux/mips/syscallent-n64.h: Likewise.
> > * linux/mips/syscallent-o32.h: Likewise.
> > * linux/powerpc/syscallent.h: Likewise.
> > * linux/powerpc64/syscallent.h: Likewise.
> > * linux/s390/syscallent.h: Likewise.
> > * linux/s390x/syscallent.h: Likewise.
> > * linux/sh/syscallent.h: Likewise.
> > * linux/sh64/syscallent.h: Likewise.
> > * linux/sparc/syscallent.h: Likewise.
> > * linux/sparc64/syscallent.h: Likewise.
> > * linux/x32/syscallent.h: Likewise.
> > * linux/x86_64/syscallent.h: Likewise.
> > * linux/xtensa/syscallent.h: Likewise.
> > * tests/Makefile.am (DECODER_TESTS): Add clock.test.
> > * tests/ksysent.c: Define TC to 0.
> > * tests/nsyscalls.c: Define TC to 0
>
> Use "Likewise".
>
> > * tests/clock.test: New test.
>
> The idiom is
> * tests/clock.test: New test.
> * tests/Makefile.am (DECODER_TESTS): Add it.
>
> [...]
> > --- a/strace.1
> > +++ b/strace.1
> > @@ -429,6 +429,9 @@ Trace all memory mapping related system calls.
> > .BR "\-e\ trace" = %sched
> > Trace all scheduler-related (sched_*) system calls.
> > .TP
> > +.BR "\-e\ trace" = %clock
> > +Trace all clock-related (clock_*) system calls
>
> Please terminate sentences.
>
> > +.TP
> > \fB\-e\ abbrev\fR=\,\fIset\fR
> > Abbreviate the output from printing each member of large structures.
> > The default is
> > diff --git a/syscall.c b/syscall.c
> > index 569055f2..c7980c40 100644
> > --- a/syscall.c
> > +++ b/syscall.c
> > @@ -77,6 +77,7 @@
> > #define TS TRACE_SIGNAL
> > #define TM TRACE_MEMORY
> > #define TSC TRACE_SCHED
> > +#define TC TRACE_CLOCK
> > #define NF SYSCALL_NEVER_FAILS
> > #define MA MAX_ARGS
> > #define SI STACKTRACE_INVALIDATE_CACHE
> > @@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = {
> > #undef TS
> > #undef TM
> > #undef TSC
> > +#undef TC
> > #undef NF
> > #undef MA
> > #undef SI
> > diff --git a/sysent.h b/sysent.h
> > index f4eaa930..7e95ab3a 100644
> > --- a/sysent.h
> > +++ b/sysent.h
> > @@ -22,5 +22,5 @@ typedef struct sysent {
> > #define TRACE_INDIRECT_SUBCALL 02000 /* Syscall is an indirect
> socket/ipc subcall. */
> > #define COMPAT_SYSCALL_TYPES 04000 /* A compat syscall that uses
> compat types. */
> > #define TRACE_SCHED 010000 /* Trace scheduler-related
> syscalls. */
> > -
> > +#define TRACE_CLOCK 020000 /*Trace clock-related syscalls. */
>
> Why removing the empty line.
> i didn't get it?
> > #endif /* !STRACE_SYSENT_H */
> > diff --git a/tests/Makefile.am b/tests/Makefile.am
> > index c5c124c0..7a22d421 100644
> > --- a/tests/Makefile.am
> > +++ b/tests/Makefile.am
> > @@ -503,6 +503,7 @@ DECODER_TESTS = \
> > chown.test \
> > chown32.test \
> > chroot.test \
> > + clock.test \
> > clock_adjtime.test \
> > clock_nanosleep.test \
> > clock_xettime.test \
> > diff --git a/tests/clock.test b/tests/clock.test
> > new file mode 100755
> > index 00000000..8e3e1bd2
> > --- /dev/null
> > +++ b/tests/clock.test
> > @@ -0,0 +1,41 @@
> > +#!/bin/sh
> > +# Check -e trace=%clock option
>
> Please terminate sentences.
>
> This file is modelled after tests/sched.test which has been changed
> yesterday, please rebase.
>
> Done
> > +# Positive Test cases.
> > +CLOCK_TESTS='40 clock_nanosleep
> > +37 clock_adjtime
> > +36 clock_xettime'
> > +
> > +# Negative Test Cases.
> > +NON_CLOCK_TESTS='11 fchdir
> > +27 futex
> > +10 fsync'
> > +
> > +# Declaring the init.sh
> > +. "${srcdir=.}/init.sh"
> > +
> > +#
> > +# Tracing Clock_* related syscalls.
> > +#
> > +echo "$CLOCK_TESTS" | while read w i
> > +do
> > + run_prog ./$i > /dev/null
> > + run_strace -a$w -e trace=%clock,setitimer ./$i > "$EXP"
> > + match_diff "$LOG" "$EXP"
> > +
> > +done
> > +
> > +echo '+++ exited with 0 +++' > "$EXP"
> > +#
> > +# Tracing NON_CLOCK related syscalls
> > +# /dev/null for ignoring print statements
> > +# from the executable.
>
> Everybody knows what /dev/null is for, no need to mention it.
>
>
> --
> ldv
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Strace-devel mailing list
> Strace-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/strace-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170316/44c3cad3/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: v3-0001-Implemented-e-trace-clock-option.patch
Type: text/x-patch
Size: 45205 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170316/44c3cad3/attachment.bin>
More information about the Strace-devel
mailing list