[PATCH v6] Implement -e trace=%statfs option for tracing statfs like syscalls

Dmitry V. Levin ldv at altlinux.org
Sun Mar 19 00:41:26 UTC 2017


On Sat, Mar 18, 2017 at 08:29:46PM +0530, Abhishek Tiwari wrote:
> This commit adds %statsfs option to trace statfs, statfs64, statvfs, statvfs64 syscalls. The following commands update linux/*/syscallent* files:

This line is too long.  The limit is 72 symbols, please wrap.

> 	git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 's/TD\(,[[:space:]]*SEN(statfs\)/TD|TSF\1/'

Do you really need this?

$ git grep 'TD,[[:space:]]*SEN(statfs' linux |wc -l
0

> 	git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 's/TF\(,[[:space:]]*SEN(statfs\)/TF|TSF\1/'

This line is too long.  As this command has been copied from commit
v4.16-23-g811638e, please copy the indentation, too.

> 	git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 's/0\(,[[:space:]]*SEN(osf_statfs\)/TSF\1/'
> 	git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 's/0\(,[[:space:]]*SEN(.*_statfs\)/TSF\1/'
> 	git grep -Fl 'statvfs' linux/*/syscallent* | xargs sed -i 's/0\(,[[:space:]]*SEN(.*_statvfs\)/TSF\1/'

Why do you need 3 commands where a single command would suffice?

Why these entries don't have TF flag set in the first place?
It's a bug that should be fixed with a separate commit.

[...]
> * tests/ksysent.c: Define TST to 0.
> * tests/nsyscalls.c: Likewise.

Why TST?

[...]
> --- 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" = %statfs
> +Trace statfs-related (statfs{,64}) system calls.

As these two syscalls are not all known statfs-related syscalls and we are
going to have more statfs-related classes soon, please change the wording
to avoid this confusion with %fstatfs and %%statfs.

[...]
> --- a/sysent.h
> +++ b/sysent.h
> @@ -22,5 +22,6 @@ 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_STATFS	040000  /* Trace narrower statfs-related syscalls. */

Please adjust indentation.

[...]
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -734,6 +734,7 @@ DECODER_TESTS = \
>  	rt_sigtimedwait.test \
>  	rt_tgsigqueueinfo.test \
>  	sched.test \
> +	trace_statfs.test \
>  	sched_get_priority_mxx.test \
>  	sched_rr_get_interval.test \
>  	sched_xetaffinity.test \

Please keep the list sorted.

[...]
> +done << EOF
> +17 statfs

Please add a test for statfs64 here as well.

[...]
> +done << EOF
> +11 fchdir
> +28 futex
> +10 fsync

Please add more tests here, too.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170319/ae8b33a5/attachment.bin>


More information about the Strace-devel mailing list