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