/
usr
/
share
/
systemtap
/
tapset
/
linux
/
/usr/share/systemtap/tapset/linux
mkdir
upload
Name
Size
Mode
Actions
arm/
-
0755
rm
arm64/
-
0755
rm
i386/
-
0755
rm
ia64/
-
0755
rm
mips/
-
0755
rm
powerpc/
-
0755
rm
riscv/
-
0755
rm
s390/
-
0755
rm
x86_64/
-
0755
rm
atomic.stp
1563
0644
edit
dl
rm
aux_syscalls.stp
151702
0644
edit
dl
rm
context-caller.stp
3148
0644
edit
dl
rm
context-envvar.stp
1761
0644
edit
dl
rm
context-symbols.stp
12276
0644
edit
dl
rm
context-unwind.stp
3283
0644
edit
dl
rm
context.stp
19015
0644
edit
dl
rm
context.stpm
125
0644
edit
dl
rm
conversions-guru.stp
5876
0644
edit
dl
rm
conversions.stp
17273
0644
edit
dl
rm
ctime.stp
5750
0644
edit
dl
rm
dentry.stp
10667
0644
edit
dl
rm
dev.stp
2074
0644
edit
dl
rm
endian.stp
602
0644
edit
dl
rm
errno.stpm
57
0644
edit
dl
rm
guru-delay.stp
1230
0644
edit
dl
rm
guru-signal.stp
1092
0644
edit
dl
rm
inet.stp
1456
0644
edit
dl
rm
inet.stpm
383
0644
edit
dl
rm
inet_sock.stp
1282
0644
edit
dl
rm
ioblock.stp
15597
0644
edit
dl
rm
ioscheduler.stp
14098
0644
edit
dl
rm
ip.stp
5483
0644
edit
dl
rm
ipmib-filter-default.stp
965
0644
edit
dl
rm
ipmib.stp
12981
0644
edit
dl
rm
irq.stp
5120
0644
edit
dl
rm
json.stp
9194
0644
edit
dl
rm
json.stpm
6256
0644
edit
dl
rm
kprocess.stp
4750
0644
edit
dl
rm
kretprobe.stp
2153
0644
edit
dl
rm
linuxmib-filter-default.stp
876
0644
edit
dl
rm
linuxmib.stp
3718
0644
edit
dl
rm
loadavg.stp
1995
0644
edit
dl
rm
logging.stp
2585
0644
edit
dl
rm
memory.stp
19219
0644
edit
dl
rm
netfilter.stp
36356
0644
edit
dl
rm
networking.stp
9656
0644
edit
dl
rm
nfs.stp
38997
0644
edit
dl
rm
nfsd.stp
47379
0644
edit
dl
rm
nfsderrno.stp
11979
0644
edit
dl
rm
nfs_proc.stp
58325
0644
edit
dl
rm
nfs_proc.stpm
1288
0644
edit
dl
rm
panic.stp
1092
0644
edit
dl
rm
perf.stp
5284
0644
edit
dl
rm
proc_mem.stp
12702
0644
edit
dl
rm
pstrace.stp
773
0644
edit
dl
rm
rcu.stp
928
0644
edit
dl
rm
rlimit.stp
1382
0644
edit
dl
rm
rpc.stp
38578
0644
edit
dl
rm
scheduler.stp
11661
0644
edit
dl
rm
scsi.stp
9721
0644
edit
dl
rm
signal.stp
29371
0644
edit
dl
rm
socket.stp
35024
0644
edit
dl
rm
syscalls.stpm
14643
0644
edit
dl
rm
syscalls_cfg_trunc.stp
111
0644
edit
dl
rm
syscall_any.stp
1560
0644
edit
dl
rm
syscall_table.stp
1475
0644
edit
dl
rm
sysc_accept.stp
7868
0644
edit
dl
rm
sysc_accept4.stp
7864
0644
edit
dl
rm
sysc_access.stp
2911
0644
edit
dl
rm
sysc_acct.stp
2583
0644
edit
dl
rm
sysc_add_key.stp
3532
0644
edit
dl
rm
sysc_adjtimex.stp
5672
0644
edit
dl
rm
sysc_alarm.stp
2833
0644
edit
dl
rm
sysc_bdflush.stp
3113
0644
edit
dl
rm
sysc_bind.stp
6965
0644
edit
dl
rm
sysc_bpf.stp
2738
0644
edit
dl
rm
sysc_brk.stp
2629
0644
edit
dl
rm
sysc_capget.stp
3101
0644
edit
dl
rm
sysc_capset.stp
3102
0644
edit
dl
rm
sysc_chdir.stp
2616
0644
edit
dl
rm
sysc_chmod.stp
2959
0644
edit
dl
rm
sysc_chown.stp
3775
0644
edit
dl
rm
sysc_chown16.stp
3115
0644
edit
dl
rm
sysc_chroot.stp
2679
0644
edit
dl
rm
sysc_clock_adjtime.stp
5243
0644
edit
dl
rm
sysc_clock_getres.stp
4248
0644
edit
dl
rm
sysc_clock_gettime.stp
4035
0644
edit
dl
rm
sysc_clock_nanosleep.stp
8041
0644
edit
dl
rm
sysc_clock_settime.stp
5554
0644
edit
dl
rm
sysc_clone.stp
6708
0644
edit
dl
rm
sysc_close.stp
2771
0644
edit
dl
rm
sysc_connect.stp
7452
0644
edit
dl
rm
sysc_copy_file_range.stp
3769
0644
edit
dl
rm
sysc_creat.stp
2728
0644
edit
dl
rm
sysc_delete_module.stp
3366
0644
edit
dl
rm
sysc_dup.stp
2383
0644
edit
dl
rm
sysc_dup2.stp
2991
0644
edit
dl
rm
sysc_dup3.stp
3073
0644
edit
dl
rm
sysc_epoll_create.stp
5742
0644
edit
dl
rm
sysc_epoll_ctl.stp
3998
0644
edit
dl
rm
sysc_epoll_pwait.stp
4157
0644
edit
dl
rm
sysc_epoll_wait.stp
4850
0644
edit
dl
rm
sysc_eventfd.stp
5411
0644
edit
dl
rm
sysc_execve.stp
6257
0644
edit
dl
rm
sysc_execveat.stp
6942
0644
edit
dl
rm
sysc_exit.stp
1984
0644
edit
dl
rm
sysc_exit_group.stp
2146
0644
edit
dl
rm
sysc_faccessat.stp
3736
0644
edit
dl
rm
sysc_faccessat2.stp
4434
0644
edit
dl
rm
sysc_fadvise64.stp
8639
0644
edit
dl
rm
sysc_fallocate.stp
3918
0644
edit
dl
rm
sysc_fanotify_init.stp
3432
0644
edit
dl
rm
sysc_fanotify_mark.stp
7572
0644
edit
dl
rm
sysc_fchdir.stp
2525
0644
edit
dl
rm
sysc_fchmod.stp
2880
0644
edit
dl
rm
sysc_fchmodat.stp
3734
0644
edit
dl
rm
sysc_fchown.stp
3722
0644
edit
dl
rm
sysc_fchown16.stp
3023
0644
edit
dl
rm
sysc_fchownat.stp
3903
0644
edit
dl
rm
sysc_fcntl.stp
4806
0644
edit
dl
rm
sysc_fdatasync.stp
2692
0644
edit
dl
rm
sysc_fgetxattr.stp
3720
0644
edit
dl
rm
sysc_finit_module.stp
3382
0644
edit
dl
rm
sysc_flistxattr.stp
3000
0644
edit
dl
rm
sysc_flock.stp
2579
0644
edit
dl
rm
sysc_fork.stp
2586
0644
edit
dl
rm
sysc_fremovexattr.stp
3229
0644
edit
dl
rm
sysc_fsetxattr.stp
4187
0644
edit
dl
rm
sysc_fstat.stp
6163
0644
edit
dl
rm
sysc_fstatat.stp
5789
0644
edit
dl
rm
sysc_fstatfs.stp
3266
0644
edit
dl
rm
sysc_fstatfs64.stp
3240
0644
edit
dl
rm
sysc_fsync.stp
2419
0644
edit
dl
rm
sysc_ftruncate.stp
6212
0644
edit
dl
rm
sysc_futex.stp
5810
0644
edit
dl
rm
sysc_futimesat.stp
6639
0644
edit
dl
rm
sysc_getcpu.stp
3034
0644
edit
dl
rm
sysc_getcwd.stp
2747
0644
edit
dl
rm
sysc_getdents.stp
5618
0644
edit
dl
rm
sysc_getegid.stp
3542
0644
edit
dl
rm
sysc_geteuid.stp
3484
0644
edit
dl
rm
sysc_getgid.stp
3402
0644
edit
dl
rm
sysc_getgroups.stp
4274
0644
edit
dl
rm
sysc_gethostname.stp
1249
0644
edit
dl
rm
sysc_getitimer.stp
5355
0644
edit
dl
rm
sysc_getpeername.stp
7522
0644
edit
dl
rm
sysc_getpgid.stp
2859
0644
edit
dl
rm
sysc_getpgrp.stp
2090
0644
edit
dl
rm
sysc_getpid.stp
2031
0644
edit
dl
rm
sysc_getppid.stp
2112
0644
edit
dl
rm
sysc_getpriority.stp
2943
0644
edit
dl
rm
sysc_getrandom.stp
3184
0644
edit
dl
rm
sysc_getresgid.stp
4172
0644
edit
dl
rm
sysc_getresuid.stp
3972
0644
edit
dl
rm
sysc_getrlimit.stp
4460
0644
edit
dl
rm
sysc_getrusage.stp
3803
0644
edit
dl
rm
sysc_getsid.stp
2509
0644
edit
dl
rm
sysc_getsockname.stp
7550
0644
edit
dl
rm
sysc_getsockopt.stp
8520
0644
edit
dl
rm
sysc_gettid.stp
2057
0644
edit
dl
rm
sysc_gettimeofday.stp
4078
0644
edit
dl
rm
sysc_getuid.stp
3427
0644
edit
dl
rm
sysc_getxattr.stp
3812
0644
edit
dl
rm
sysc_get_mempolicy.stp
4671
0644
edit
dl
rm
sysc_get_robust_list.stp
4572
0644
edit
dl
rm
sysc_init_module.stp
3241
0644
edit
dl
rm
sysc_inotify_add_watch.stp
3861
0644
edit
dl
rm
sysc_inotify_init.stp
5548
0644
edit
dl
rm
sysc_inotify_rm_watch.stp
3277
0644
edit
dl
rm
sysc_ioctl.stp
3536
0644
edit
dl
rm
sysc_ioperm.stp
2819
0644
edit
dl
rm
sysc_ioprio_get.stp
3018
0644
edit
dl
rm
sysc_ioprio_set.stp
3247
0644
edit
dl
rm
sysc_io_cancel.stp
3318
0644
edit
dl
rm
sysc_io_destroy.stp
2816
0644
edit
dl
rm
sysc_io_getevents.stp
4994
0644
edit
dl
rm
sysc_io_setup.stp
3838
0644
edit
dl
rm
sysc_io_submit.stp
3983
0644
edit
dl
rm
sysc_kcmp.stp
3007
0644
edit
dl
rm
sysc_kexec_file_load.stp
4041
0644
edit
dl
rm
sysc_kexec_load.stp
4513
0644
edit
dl
rm
sysc_keyctl.stp
3722
0644
edit
dl
rm
sysc_kill.stp
2591
0644
edit
dl
rm
sysc_lchown.stp
3880
0644
edit
dl
rm
sysc_lchown16.stp
3194
0644
edit
dl
rm
sysc_lgetxattr.stp
3912
0644
edit
dl
rm
sysc_link.stp
2885
0644
edit
dl
rm
sysc_linkat.stp
4005
0644
edit
dl
rm
sysc_listen.stp
6624
0644
edit
dl
rm
sysc_listxattr.stp
3318
0644
edit
dl
rm
sysc_llistxattr.stp
3379
0644
edit
dl
rm
sysc_llseek.stp
3371
0644
edit
dl
rm
sysc_lookup_dcookie.stp
4089
0644
edit
dl
rm
sysc_lremovexattr.stp
4001
0644
edit
dl
rm
sysc_lseek.stp
4500
0644
edit
dl
rm
sysc_lsetxattr.stp
4097
0644
edit
dl
rm
sysc_lstat.stp
6455
0644
edit
dl
rm
sysc_madvise.stp
2976
0644
edit
dl
rm
sysc_mbind.stp
4303
0644
edit
dl
rm
sysc_membarrier.stp
3017
0644
edit
dl
rm
sysc_memfd_create.stp
3247
0644
edit
dl
rm
sysc_memfd_secret.stp
2815
0644
edit
dl
rm
sysc_migrate_pages.stp
4374
0644
edit
dl
rm
sysc_mincore.stp
2900
0644
edit
dl
rm
sysc_mkdir.stp
2897
0644
edit
dl
rm
sysc_mkdirat.stp
3445
0644
edit
dl
rm
sysc_mknod.stp
2958
0644
edit
dl
rm
sysc_mknodat.stp
3644
0644
edit
dl
rm
sysc_mlock.stp
2618
0644
edit
dl
rm
sysc_mlock2.stp
2882
0644
edit
dl
rm
sysc_mlockall.stp
2771
0644
edit
dl
rm
sysc_mmap2.stp
6229
0644
edit
dl
rm
sysc_modify_ldt.stp
3112
0644
edit
dl
rm
sysc_mount.stp
4499
0644
edit
dl
rm
sysc_move_pages.stp
4725
0644
edit
dl
rm
sysc_mprotect.stp
2966
0644
edit
dl
rm
sysc_mq_getsetattr.stp
4460
0644
edit
dl
rm
sysc_mq_notify.stp
3936
0644
edit
dl
rm
sysc_mq_open.stp
5385
0644
edit
dl
rm
sysc_mq_timedreceive.stp
6183
0644
edit
dl
rm
sysc_mq_timedsend.stp
5928
0644
edit
dl
rm
sysc_mq_unlink.stp
3018
0644
edit
dl
rm
sysc_mremap.stp
3577
0644
edit
dl
rm
sysc_msgctl.stp
8255
0644
edit
dl
rm
sysc_msgget.stp
4423
0644
edit
dl
rm
sysc_msgrcv.stp
10689
0644
edit
dl
rm
sysc_msgsnd.stp
8866
0644
edit
dl
rm
sysc_msync.stp
2851
0644
edit
dl
rm
sysc_munlock.stp
2744
0644
edit
dl
rm
sysc_munlockall.stp
2342
0644
edit
dl
rm
sysc_munmap.stp
2709
0644
edit
dl
rm
sysc_name_to_handle_at.stp
4150
0644
edit
dl
rm
sysc_nanosleep.stp
5824
0644
edit
dl
rm
sysc_nfsservctl.stp
2284
0644
edit
dl
rm
sysc_nice.stp
2440
0644
edit
dl
rm
sysc_ni_syscall.stp
1433
0644
edit
dl
rm
sysc_open.stp
4329
0644
edit
dl
rm
sysc_openat.stp
3916
0644
edit
dl
rm
sysc_open_by_handle_at.stp
4298
0644
edit
dl
rm
sysc_pause.stp
2564
0644
edit
dl
rm
sysc_perf_event_open.stp
3808
0644
edit
dl
rm
sysc_personality.stp
3077
0644
edit
dl
rm
sysc_pipe.stp
10596
0644
edit
dl
rm
sysc_pivot_root.stp
3314
0644
edit
dl
rm
sysc_pkey_alloc.stp
3057
0644
edit
dl
rm
sysc_pkey_free.stp
2719
0644
edit
dl
rm
sysc_pkey_mprotect.stp
3392
0644
edit
dl
rm
sysc_poll.stp
2769
0644
edit
dl
rm
sysc_ppoll.stp
6493
0644
edit
dl
rm
sysc_prctl.stp
2993
0644
edit
dl
rm
sysc_pread.stp
5427
0644
edit
dl
rm
sysc_preadv.stp
5283
0644
edit
dl
rm
sysc_preadv2.stp
5667
0644
edit
dl
rm
sysc_prlimit64.stp
3495
0644
edit
dl
rm
sysc_process_vm_readv.stp
4775
0644
edit
dl
rm
sysc_process_vm_writev.stp
4897
0644
edit
dl
rm
sysc_pselect6.stp
6457
0644
edit
dl
rm
sysc_pselect7.stp
3668
0644
edit
dl
rm
sysc_ptrace.stp
3661
0644
edit
dl
rm
sysc_pwrite.stp
7239
0644
edit
dl
rm
sysc_pwritev.stp
5414
0644
edit
dl
rm
sysc_pwritev2.stp
5774
0644
edit
dl
rm
sysc_quotactl.stp
4691
0644
edit
dl
rm
sysc_read.stp
3721
0644
edit
dl
rm
sysc_readahead.stp
3601
0644
edit
dl
rm
sysc_readdir.stp
4043
0644
edit
dl
rm
sysc_readlink.stp
3114
0644
edit
dl
rm
sysc_readlinkat.stp
3833
0644
edit
dl
rm
sysc_readv.stp
3502
0644
edit
dl
rm
sysc_reboot.stp
3253
0644
edit
dl
rm
sysc_recv.stp
7260
0644
edit
dl
rm
sysc_recvfrom.stp
8554
0644
edit
dl
rm
sysc_recvmmsg.stp
6462
0644
edit
dl
rm
sysc_recvmsg.stp
10962
0644
edit
dl
rm
sysc_remap_file_pages.stp
3935
0644
edit
dl
rm
sysc_removexattr.stp
3320
0644
edit
dl
rm
sysc_rename.stp
3038
0644
edit
dl
rm
sysc_renameat.stp
4191
0644
edit
dl
rm
sysc_renameat2.stp
4500
0644
edit
dl
rm
sysc_request_key.stp
4138
0644
edit
dl
rm
sysc_restart_syscall.stp
2565
0644
edit
dl
rm
sysc_rmdir.stp
2657
0644
edit
dl
rm
sysc_rt_sigaction.stp
6952
0644
edit
dl
rm
sysc_rt_sigpending.stp
4799
0644
edit
dl
rm
sysc_rt_sigprocmask.stp
9105
0644
edit
dl
rm
sysc_rt_sigqueueinfo.stp
4750
0644
edit
dl
rm
sysc_rt_sigreturn.stp
1639
0644
edit
dl
rm
sysc_rt_sigsuspend.stp
3879
0644
edit
dl
rm
sysc_rt_sigtimedwait.stp
6024
0644
edit
dl
rm
sysc_rt_tgsigqueueinfo.stp
4460
0644
edit
dl
rm
sysc_sched_getaffinity.stp
4102
0644
edit
dl
rm
sysc_sched_getattr.stp
3671
0644
edit
dl
rm
sysc_sched_getparam.stp
3236
0644
edit
dl
rm
sysc_sched_getscheduler.stp
3296
0644
edit
dl
rm
sysc_sched_get_priority_max.stp
3640
0644
edit
dl
rm
sysc_sched_get_priority_min.stp
3640
0644
edit
dl
rm
sysc_sched_rr_get_interval.stp
4864
0644
edit
dl
rm
sysc_sched_setaffinity.stp
3960
0644
edit
dl
rm
sysc_sched_setattr.stp
3445
0644
edit
dl
rm
sysc_sched_setparam.stp
3221
0644
edit
dl
rm
sysc_sched_setscheduler.stp
3666
0644
edit
dl
rm
sysc_sched_yield.stp
2315
0644
edit
dl
rm
sysc_seccomp.stp
3365
0644
edit
dl
rm
sysc_select.stp
6359
0644
edit
dl
rm
sysc_semctl.stp
8206
0644
edit
dl
rm
sysc_semget.stp
4596
0644
edit
dl
rm
sysc_semop.stp
5770
0644
edit
dl
rm
sysc_semtimedop.stp
9936
0644
edit
dl
rm
sysc_send.stp
7369
0644
edit
dl
rm
sysc_sendfile.stp
4912
0644
edit
dl
rm
sysc_sendmmsg.stp
9305
0644
edit
dl
rm
sysc_sendmsg.stp
12110
0644
edit
dl
rm
sysc_sendto.stp
8357
0644
edit
dl
rm
sysc_setdomainname.stp
3729
0644
edit
dl
rm
sysc_setfsgid.stp
4796
0644
edit
dl
rm
sysc_setfsuid.stp
4839
0644
edit
dl
rm
sysc_setgid.stp
4573
0644
edit
dl
rm
sysc_setgroups.stp
4519
0644
edit
dl
rm
sysc_sethostname.stp
3274
0644
edit
dl
rm
sysc_setitimer.stp
6286
0644
edit
dl
rm
sysc_setns.stp
2804
0644
edit
dl
rm
sysc_setpgid.stp
2760
0644
edit
dl
rm
sysc_setpriority.stp
3218
0644
edit
dl
rm
sysc_setregid.stp
6660
0644
edit
dl
rm
sysc_setresgid.stp
7040
0644
edit
dl
rm
sysc_setresuid.stp
7055
0644
edit
dl
rm
sysc_setreuid.stp
6630
0644
edit
dl
rm
sysc_setrlimit.stp
4030
0644
edit
dl
rm
sysc_setsid.stp
2101
0644
edit
dl
rm
sysc_setsockopt.stp
8444
0644
edit
dl
rm
sysc_settimeofday.stp
6646
0644
edit
dl
rm
sysc_setuid.stp
4572
0644
edit
dl
rm
sysc_setxattr.stp
3993
0644
edit
dl
rm
sysc_set_mempolicy.stp
4171
0644
edit
dl
rm
sysc_set_robust_list.stp
4358
0644
edit
dl
rm
sysc_set_tid_address.stp
3195
0644
edit
dl
rm
sysc_sgetmask.stp
2169
0644
edit
dl
rm
sysc_shmat.stp
6777
0644
edit
dl
rm
sysc_shmctl.stp
8139
0644
edit
dl
rm
sysc_shmdt.stp
3982
0644
edit
dl
rm
sysc_shmget.stp
4501
0644
edit
dl
rm
sysc_shutdown.stp
6909
0644
edit
dl
rm
sysc_sigaction.stp
5782
0644
edit
dl
rm
sysc_sigaltstack.stp
4267
0644
edit
dl
rm
sysc_signal.stp
2867
0644
edit
dl
rm
sysc_signalfd.stp
12464
0644
edit
dl
rm
sysc_sigpending.stp
3712
0644
edit
dl
rm
sysc_sigprocmask.stp
4172
0644
edit
dl
rm
sysc_sigreturn.stp
1461
0644
edit
dl
rm
sysc_sigsuspend.stp
4575
0644
edit
dl
rm
sysc_socket.stp
7438
0644
edit
dl
rm
sysc_socketpair.stp
8297
0644
edit
dl
rm
sysc_splice.stp
3363
0644
edit
dl
rm
sysc_ssetmask.stp
2810
0644
edit
dl
rm
sysc_stat.stp
6535
0644
edit
dl
rm
sysc_statfs.stp
3491
0644
edit
dl
rm
sysc_statfs64.stp
3459
0644
edit
dl
rm
sysc_statx.stp
4118
0644
edit
dl
rm
sysc_stime.stp
3083
0644
edit
dl
rm
sysc_swapoff.stp
2875
0644
edit
dl
rm
sysc_swapon.stp
3121
0644
edit
dl
rm
sysc_symlink.stp
3028
0644
edit
dl
rm
sysc_symlinkat.stp
4060
0644
edit
dl
rm
sysc_sync.stp
1925
0644
edit
dl
rm
sysc_syncfs.stp
2571
0644
edit
dl
rm
sysc_sync_file_range.stp
6011
0644
edit
dl
rm
sysc_sysctl.stp
3095
0644
edit
dl
rm
sysc_sysfs.stp
3648
0644
edit
dl
rm
sysc_sysinfo.stp
3286
0644
edit
dl
rm
sysc_syslog.stp
2826
0644
edit
dl
rm
sysc_tee.stp
2743
0644
edit
dl
rm
sysc_tgkill.stp
2883
0644
edit
dl
rm
sysc_time.stp
3505
0644
edit
dl
rm
sysc_timerfd.stp
1829
0644
edit
dl
rm
sysc_timerfd_create.stp
3394
0644
edit
dl
rm
sysc_timerfd_gettime.stp
4219
0644
edit
dl
rm
sysc_timerfd_settime.stp
5282
0644
edit
dl
rm
sysc_timer_create.stp
4975
0644
edit
dl
rm
sysc_timer_delete.stp
2942
0644
edit
dl
rm
sysc_timer_getoverrun.stp
3207
0644
edit
dl
rm
sysc_timer_gettime.stp
4670
0644
edit
dl
rm
sysc_timer_settime.stp
6075
0644
edit
dl
rm
sysc_times.stp
3167
0644
edit
dl
rm
sysc_tkill.stp
2695
0644
edit
dl
rm
sysc_truncate.stp
7031
0644
edit
dl
rm
sysc_tux.stp
1068
0644
edit
dl
rm
sysc_umask.stp
2522
0644
edit
dl
rm
sysc_umount.stp
5360
0644
edit
dl
rm
sysc_uname.stp
5145
0644
edit
dl
rm
sysc_unlink.stp
2866
0644
edit
dl
rm
sysc_unlinkat.stp
3380
0644
edit
dl
rm
sysc_unshare.stp
2814
0644
edit
dl
rm
sysc_uselib.stp
2871
0644
edit
dl
rm
sysc_userfaultfd.stp
3005
0644
edit
dl
rm
sysc_ustat.stp
5333
0644
edit
dl
rm
sysc_utime.stp
6173
0644
edit
dl
rm
sysc_utimensat.stp
7044
0644
edit
dl
rm
sysc_utimes.stp
6331
0644
edit
dl
rm
sysc_vfork.stp
2029
0644
edit
dl
rm
sysc_vhangup.stp
2128
0644
edit
dl
rm
sysc_vmsplice.stp
6337
0644
edit
dl
rm
sysc_wait4.stp
5097
0644
edit
dl
rm
sysc_waitid.stp
4253
0644
edit
dl
rm
sysc_waitpid.stp
3460
0644
edit
dl
rm
sysc_write.stp
3939
0644
edit
dl
rm
sysc_writev.stp
3656
0644
edit
dl
rm
target_set.stp
1769
0644
edit
dl
rm
task.stp
22880
0644
edit
dl
rm
task.stpm
253
0644
edit
dl
rm
task_ancestry.stp
1621
0644
edit
dl
rm
task_time.stp
7861
0644
edit
dl
rm
tcp.stp
22642
0644
edit
dl
rm
tcpmib-filter-default.stp
885
0644
edit
dl
rm
tcpmib.stp
10824
0644
edit
dl
rm
timestamp.stp
1761
0644
edit
dl
rm
timestamp_gtod.stp
1629
0644
edit
dl
rm
timestamp_monotonic.stp
5589
0644
edit
dl
rm
tty.stp
7351
0644
edit
dl
rm
tzinfo.stp
803
0644
edit
dl
rm
ucontext-symbols.stp
8842
0644
edit
dl
rm
ucontext-unwind.stp
7645
0644
edit
dl
rm
ucontext.stp
2237
0644
edit
dl
rm
udp.stp
6097
0644
edit
dl
rm
utrace.stp
1363
0644
edit
dl
rm
vfs.stp
33826
0644
edit
dl
rm
Edit:
/usr/share/systemtap/tapset/linux/nfsd.stp
(47379B)
// nfs tapset // Copyright (C) 2006-2007 IBM Corp. // Copyright (C) 2007 Intel Corporation. // Copyright (C) 2007 Bull S.A.S // Copyright (C) 2010,2014-2019 Red Hat Inc. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General // Public License (GPL); either version 2, or (at your option) any // later version. %{ #include <linux/stat.h> #include <linux/sunrpc/svc.h> #include <linux/nfs3.h> #include <linux/nfs4.h> %} /* *1 : nfsd.proc2.lookup *2 : nfsd.proc3.lookup *3 : nfsd.proc2.read *4 : nfsd.proc3.read *5 : nfsd.proc2.write *6 : nfsd.proc3.write *7 : nfsd.proc3.commit *8 : nfsd.proc2.create *9 : nfsd.proc3.create *10: nfsd.proc2.remove *11: nfsd.proc3.remove *12 :nfsd.proc2.rename.ffh *13 :nfsd.proc2.rename.tfh *14 :nfsd.proc3.rename.ffh *15 :nfsd.proc3.rename.tfh */ # In newer kernels, the 'rq_argp' and 'rq_resp' pointers in a # 'svc_rqst' structure are a void pointers that we need to cast to the # right nfsd private types, based on the protocol version. These # macros make all the casting easier. @define nfsd2_createargs(ptr) %( @cast(@ptr, "nfsd_createargs", "kernel:nfsd") %) @define nfsd2_diropargs(ptr) %( @cast(@ptr, "nfsd_diropargs", "kernel:nfsd") %) @define nfsd2_readargs(ptr) %( @cast(@ptr, "nfsd_readargs", "kernel:nfsd") %) @define nfsd2_renameargs(ptr) %( @cast(@ptr, "nfsd_renameargs", "kernel:nfsd") %) @define nfsd2_writeargs(ptr) %( @cast(@ptr, "nfsd_writeargs", "kernel:nfsd") %) @define nfsd3_commitargs(ptr) %( @cast(@ptr, "nfsd3_commitargs", "kernel:nfsd") %) @define nfsd3_createargs(ptr) %( @cast(@ptr, "nfsd3_createargs", "kernel:nfsd") %) @define nfsd3_diropargs(ptr) %( @cast(@ptr, "nfsd3_diropargs", "kernel:nfsd") %) @define nfsd3_readargs(ptr) %( @cast(@ptr, "nfsd3_readargs", "kernel:nfsd") %) @define nfsd3_renameargs(ptr) %( @cast(@ptr, "nfsd3_renameargs", "kernel:nfsd") %) @define nfsd3_writeargs(ptr) %( @cast(@ptr, "nfsd3_writeargs", "kernel:nfsd") %) @define nfsd3_writeres(ptr) %( @cast(@ptr, "nfsd3_writeres", "kernel:nfsd") %) @define nfsd4_compound_state(ptr) %( @cast(@ptr, "nfsd4_compound_state", "kernel:nfsd") %) /* Get file handle data from struct svc_fh. */ @__private30 function __svc_fh:string(fhp:long) { svc_fh = &@cast(fhp, "svc_fh", "kernel:nfsd")->fh_handle return sprintf("%d: %08x %08x %08x %08x %08x %08x", svc_fh->fh_size, svc_fh->fh_base->fh_pad[0], svc_fh->fh_base->fh_pad[1], svc_fh->fh_base->fh_pad[2], svc_fh->fh_base->fh_pad[3], svc_fh->fh_base->fh_pad[4], svc_fh->fh_base->fh_pad[5]) } function nfs3_cmode:string(cmode:long) %{ /* pure */ int cmode = (int)(long)STAP_ARG_cmode; switch (cmode) { case NFS3_CREATE_UNCHECKED: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "UNCHECKED"); break; case NFS3_CREATE_GUARDED: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "GUARDED"); break; case NFS3_CREATE_EXCLUSIVE: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "EXCLUSIVE"); break; default: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "Bad Value(%d)", cmode); } CATCH_DEREF_FAULT(); %} function nfs4_ctype:string(cmode:long) %{ /* pure */ int cmode = (int)(long)STAP_ARG_cmode; switch (cmode) { case NF4BAD: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4BAD"); break; case NF4REG: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4REG"); break; case NF4DIR: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4DIR"); break; case NF4BLK: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4BLK"); break; case NF4CHR: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4CHR"); break; case NF4LNK: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4LNK"); break; case NF4SOCK: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4SOCK"); break; case NF4FIFO: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4FIFO"); break; case NF4ATTRDIR: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4ATTRDIR"); break; case NF4NAMEDATTR: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "NF4NAMEDATTR"); break; default: snprintf(STAP_RETVALUE, MAXSTRINGLEN, "Bad Value(%d)", cmode); } CATCH_DEREF_FAULT(); %} function ftype:string(type:long) %{ /* pure */ int type = (int)(long)STAP_ARG_type; if (S_ISLNK(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISLNK)", type); } else if (S_ISREG(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISREG)", type); } else if (S_ISDIR(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISDIR)", type); } else if (S_ISCHR(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISCHR)", type); } else if (S_ISBLK(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISBLK)", type); } else if (S_ISFIFO(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISFIFO)", type); } else if (S_ISSOCK(type)) { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (ISSOCK)", type); } else { snprintf(STAP_RETVALUE, MAXSTRINGLEN, "0%o (Unknown)", type); } %} @__private30 function __rqstp_uid:long(rqstp:long) %{ /* pure */ // Notice we're using the 'init_user_ns' here, not // 'current_user_ns()'. This matches up with the use in // net/sunrpc/auth_generic.c. struct svc_rqst *rqstp = (struct svc_rqst *)(uintptr_t)STAP_ARG_rqstp; #ifndef STAPCONF_LINUX_UIDGID_H uid_t cr_uid = KUIDT_INIT(kread(&(rqstp->rq_cred.cr_uid))); #else kuid_t cr_uid; /* Make sure the cr_uid struct is valid to read. */ (void)kderef_buffer(NULL, &(rqstp->rq_cred.cr_uid), sizeof(kuid_t)); cr_uid = KUIDT_INIT(__kuid_val(rqstp->rq_cred.cr_uid)); #endif #if defined(CONFIG_USER_NS) || (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) STAP_RETVALUE = from_kuid_munged(&init_user_ns, cr_uid); #else STAP_RETVALUE = cr_uid; #endif CATCH_DEREF_FAULT(); %} @__private30 function __rqstp_gid:long(rqstp:long) %{ /* pure */ // Notice we're using the 'init_user_ns' here, not // 'current_user_ns()'. This matches up with the use in // net/sunrpc/auth_generic.c. struct svc_rqst *rqstp = (struct svc_rqst *)(uintptr_t)STAP_ARG_rqstp; #ifndef STAPCONF_LINUX_UIDGID_H gid_t cr_gid = KGIDT_INIT(kread(&(rqstp->rq_cred.cr_gid))); #else kgid_t cr_gid; /* Make sure the cr_gid struct is valid to read. */ (void)kderef_buffer(NULL, &(rqstp->rq_cred.cr_gid), sizeof(kgid_t)); cr_gid = KGIDT_INIT(__kgid_val(rqstp->rq_cred.cr_gid)); #endif #if defined(CONFIG_USER_NS) || (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) STAP_RETVALUE = from_kgid_munged(&init_user_ns, cr_gid); #else STAP_RETVALUE = cr_gid; #endif CATCH_DEREF_FAULT(); %} /** * probe nfsd.dispatch - NFS server receives an operation from client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @xid: transmission id * @prog: program number * @proc: procedure number */ probe nfsd.dispatch = kernel.function("nfsd_dispatch") !, module("nfsd").function("nfsd_dispatch") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = $rqstp->rq_vers xid = $rqstp->rq_xid prog = $rqstp->rq_prog proc = $rqstp->rq_proc name = "nfsd.dispatch" argstr = sprintf("%d,%d",version,proto) } probe nfsd.dispatch.return = kernel.function("nfsd_dispatch").return !, module("nfsd").function("nfsd_dispatch").return ? { name = "nfsd.dispatch.return" retstr = sprintf("%d",$return) } probe nfsd.proc.entries = nfsd.proc.lookup, nfsd.proc.read, nfsd.proc.write, nfsd.proc.commit, nfsd.proc.remove, nfsd.proc.rename, nfsd.proc.create {} probe nfsd.proc.return = nfsd.proc.lookup.return, nfsd.proc.read.return, nfsd.proc.write.return, nfsd.proc.commit.return, nfsd.proc.remove.return, nfsd.proc.rename.return, nfsd.proc.create.return {} /** * probe nfsd.proc.lookup - NFS server opening or searching for a file for client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @fh: file handle of parent dir (the first part is the length of the file handle) * @filename: file name * @filelen: the length of file name * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.lookup = nfsd.proc4.lookup ?, nfsd.proc3.lookup, nfsd.proc2.lookup ? {} probe nfsd.proc.lookup.return = nfsd.proc4.lookup.return ?, nfsd.proc3.lookup.return, nfsd.proc2.lookup.return ? {} probe nfsd.proc2.lookup = kernel.function("nfsd_proc_lookup") !, module("nfsd").function("nfsd_proc_lookup") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 2 if (@defined($rqstp->rq_argp)) { fh = & @nfsd2_diropargs($rqstp->rq_argp)->fh filelen = @nfsd2_diropargs($rqstp->rq_argp)->len filename = kernel_string_n(@nfsd2_diropargs($rqstp->rq_argp)->name, @nfsd2_diropargs($rqstp->rq_argp)->len) } else { fh = & @nfsd2_diropargs($argp)->fh filelen = $argp->len filename = kernel_string_n($argp->name, $argp->len) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc2.lookup" argstr = sprintf("%s", filename) } probe nfsd.proc2.lookup.return = kernel.function("nfsd_proc_lookup").return !, module("nfsd").function("nfsd_proc_lookup").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc2.lookup.return" version = 2 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc3.lookup = kernel.function("nfsd3_proc_lookup") !, module("nfsd").function("nfsd3_proc_lookup") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_diropargs($rqstp->rq_argp)->fh filelen = @nfsd3_diropargs($rqstp->rq_argp)->len filename = kernel_string_n(@nfsd3_diropargs($rqstp->rq_argp)->name, @nfsd3_diropargs($rqstp->rq_argp)->len) } else { fh = & @nfsd3_diropargs($argp)->fh filelen = $argp->len filename = kernel_string_n($argp->name, $argp->len) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.lookup" argstr = sprintf("%s", filename) } probe nfsd.proc3.lookup.return = kernel.function("nfsd3_proc_lookup").return !, module("nfsd").function("nfsd3_proc_lookup").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.lookup.return" version = 3 retstr = sprintf("%s", nfsderror($return)) } /* * Several of the nfsd.proc4.* entry probes use '.call'. Why? On * kernels <= 2.6.18 (i.e. RHEL4 and RHEL5), those are inline * functions. Besides having different arguments, because those * functions are inline systemtap has trouble finding their arguments * (PR 1155). Finally, those functions are just simple wrappers * around their nfsd_* counterparts (for example, nfsd4_lookup() is a * wrapper for nfsd_lookup). As a comment in fs/nfsd/nfs4proc.c says: * * Note: some routines in this file are just trivial wrappers * (e.g. nfsd4_lookup()) defined solely for the sake of consistent * naming. * * So, we'll just ignore those inline wrappers by specifying * '.call'. which means the function must be a "real" (non-inline) * function. */ probe nfsd.proc4.lookup = kernel.function("nfsd4_lookup").call !, module("nfsd").function("nfsd4_lookup").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = & @nfsd4_compound_state($cstate)->current_fh if (@defined($u)) { filelen = $u->lookup->lo_len filename = kernel_string_n($u->lookup->lo_name, $u->lookup->lo_len) } else { filelen = $lookup->lo_len filename = kernel_string_n($lookup->lo_name, $lookup->lo_len) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.lookup" argstr = sprintf("%s", filename) } probe nfsd.proc4.lookup.return = kernel.function("nfsd4_lookup").return !, module("nfsd").function("nfsd4_lookup").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.lookup.return" version = 4 retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.proc.read - NFS server reading file for client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @fh: file handle (the first part is the length of the file handle) * @size: read bytes * @count: read bytes * @offset: the offset of file * @vec: struct kvec, includes buf address in kernel address and length of each buffer * @vlen: read blocks * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.read = nfsd.proc4.read ?, nfsd.proc3.read, nfsd.proc2.read ? {} probe nfsd.proc.read.return = nfsd.proc4.read.return ?, nfsd.proc3.read.return, nfsd.proc2.read.return ? {} probe nfsd.proc2.read = kernel.function("nfsd_proc_read") !, module("nfsd").function("nfsd_proc_read") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 2 if (@defined($rqstp->rq_argp)) { fh = & @nfsd2_readargs($rqstp->rq_argp)->fh count = @nfsd2_readargs($rqstp->rq_argp)->count offset = @nfsd2_readargs($rqstp->rq_argp)->offset vec = $rqstp->rq_vec vlen = @nfsd2_readargs($rqstp->rq_argp)->vlen } else { fh = & @nfsd2_readargs($argp)->fh count = $argp->count offset = $argp->offset vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = $argp->vlen } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc2.read" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc2.read.return = kernel.function("nfsd_proc_read").return !, module("nfsd").function("nfsd_proc_read").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc2.read.return" version = 2 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc3.read = kernel.function("nfsd3_proc_read") !, module("nfsd").function("nfsd3_proc_read") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_readargs($rqstp->rq_argp)->fh count = @nfsd3_readargs($rqstp->rq_argp)->count offset = @nfsd3_readargs($rqstp->rq_argp)->offset vec = $rqstp->rq_vec vlen = @nfsd3_readargs($rqstp->rq_argp)->vlen } else { fh = & @nfsd3_readargs($argp)->fh count = $argp->count offset = $argp->offset vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = $argp->vlen } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.read" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc3.read.return = kernel.function("nfsd3_proc_read").return !, module("nfsd").function("nfsd3_proc_read").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.read.return" version = 3 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc4.read = kernel.function("nfsd4_read").call !, module("nfsd").function("nfsd4_read").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = & @nfsd4_compound_state($cstate)->current_fh if (@defined($u)) { count = $u->read->rd_length offset = $u->read->rd_offset vec = $rqstp->rq_vec vlen = $u->read->rd_vlen } else { count = $read->rd_length offset = $read->rd_offset vec = $rqstp->rq_vec vlen = $read->rd_vlen } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.read" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc4.read.return = kernel.function("nfsd4_read").return !, module("nfsd").function("nfsd4_read").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.read.return" version = 4 retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.proc.write - NFS server writing data to file for client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @fh: file handle (the first part is the length of the file handle) * @size: read bytes * @count: read bytes * @offset: the offset of file * @vec: struct kvec, includes buf address in kernel address and length of each buffer * @vlen: read blocks * @stable: argp->stable * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.write = nfsd.proc4.write ?, nfsd.proc3.write, nfsd.proc2.write ? {} probe nfsd.proc.write.return = nfsd.proc4.write.return ?, nfsd.proc3.write.return, nfsd.proc2.write.return ? {} probe nfsd.proc2.write = kernel.function("nfsd_proc_write") !, module("nfsd").function("nfsd_proc_write") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 2 if (@defined($rqstp->rq_argp)) { fh = & @nfsd2_writeargs($rqstp->rq_argp)->fh count = @nfsd2_writeargs($rqstp->rq_argp)->len offset = @nfsd2_writeargs($rqstp->rq_argp)->offset vec = $rqstp->rq_vec vlen = @choose_defined(@nfsd2_writeargs($rqstp->rq_argp)->vlen, 0) } else { fh = & @nfsd2_writeargs($argp)->fh count = $argp->len offset = $argp->offset vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = @choose_defined($argp->vlen, 0) } stable = 1 # hardcoded in nfsd_proc_write() uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc2.write" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc2.write.return = kernel.function("nfsd_proc_write").return !, module("nfsd").function("nfsd_proc_write").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc2.write.return" version = 2 retstr = sprintf("%s", nfsderror($return)) if (@defined(@entry($rqstp->rq_argp))) { count = ($return == 0 ? @entry(@nfsd2_writeargs($rqstp->rq_argp)->len) : $return) } else { count = ($return == 0 ? @entry($argp->len) : $return) } stable = 1 } probe nfsd.proc3.write = kernel.function("nfsd3_proc_write") !, module("nfsd").function("nfsd3_proc_write") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_writeargs($rqstp->rq_argp)->fh count = @nfsd3_writeargs($rqstp->rq_argp)->count offset = @nfsd3_writeargs($rqstp->rq_argp)->offset vec = $rqstp->rq_vec vlen = @choose_defined(@nfsd3_writeargs($rqstp->rq_argp)->vlen, 0) stable = @nfsd3_writeargs($rqstp->rq_argp)->stable } else { fh = & @nfsd3_writeargs($argp)->fh count = $argp->count offset = $argp->offset vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = @choose_defined($argp->vlen, 0) stable = $argp->stable } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.write" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc3.write.return = kernel.function("nfsd3_proc_write").return !, module("nfsd").function("nfsd3_proc_write").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.write.return" version = 3 retstr = sprintf("%s", nfsderror($return)) if (@defined(@entry($rqstp->rq_resp))) { count = @entry(@nfsd3_writeres($rqstp->rq_resp)->count) stable = @entry(@nfsd3_writeres($rqstp->rq_resp)->committed) } else { count = @entry($resp->count) stable = @entry($resp->committed) } } probe nfsd.proc4.write = kernel.function("nfsd4_write").call !, module("nfsd").function("nfsd4_write").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = & @nfsd4_compound_state($cstate)->current_fh vec = $rqstp->rq_vec if (@defined($u)) { count = $u->write->wr_buflen offset = $u->write->wr_offset vlen = @choose_defined($u->write->wr_vlen, 0) stable = $u->write->wr_stable_how } else { count = $write->wr_buflen offset = $write->wr_offset vlen = @choose_defined($write->wr_vlen, 0) stable = $write->wr_stable_how } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.write" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc4.write.return = kernel.function("nfsd4_write").return !, module("nfsd").function("nfsd4_write").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.write.return" version = 4 if (@defined(@entry($u))) { count = @entry($u->write->wr_bytes_written) stable = @entry($u->write->wr_how_written) } else { count = @entry($write->wr_bytes_written) stable = @entry($write->wr_how_written) } retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.proc.commit - NFS server performing a commit operation for client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @fh: file handle (the first part is the length of the file handle) * @size: read bytes * @count: read bytes * @offset: the offset of file * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.commit = nfsd.proc4.commit ?, nfsd.proc3.commit {} probe nfsd.proc.commit.return = nfsd.proc4.commit.return ?, nfsd.proc3.commit.return {} probe nfsd.proc3.commit = kernel.function("nfsd3_proc_commit") !, module("nfsd").function("nfsd3_proc_commit") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_commitargs($rqstp->rq_argp)->fh count = @nfsd3_commitargs($rqstp->rq_argp)->count offset = @nfsd3_commitargs($rqstp->rq_argp)->offset } else { fh = & @nfsd3_commitargs($argp)->fh count = $argp->count offset = $argp->offset } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.commit" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc3.commit.return = kernel.function("nfsd3_proc_commit").return !, module("nfsd").function("nfsd3_proc_commit").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.commit.return" version = 3 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc4.commit = kernel.function("nfsd4_commit").call !, module("nfsd").function("nfsd4_commit").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = & @nfsd4_compound_state($cstate)->current_fh if (@defined($u)) { count = $u->commit->co_count offset = $u->commit->co_offset } else { count = $commit->co_count offset = $commit->co_offset } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.commit" argstr = sprintf("%d,%d",count,offset) size = count units = "bytes" } probe nfsd.proc4.commit.return = kernel.function("nfsd4_commit").return !, module("nfsd").function("nfsd4_commit").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.commit.return" version = 4 retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.proc.create - NFS server creating a file for client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @fh: file handle (the first part is the length of the file handle) * @filename: file name * @filelen: length of file name * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.create = nfsd.proc4.create ?, nfsd.proc3.create, nfsd.proc2.create ? {} probe nfsd.proc.create.return = nfsd.proc4.create.return ?, nfsd.proc3.create.return, nfsd.proc2.create.return ? {} probe nfsd.proc2.create = kernel.function("nfsd_proc_create") !, module("nfsd").function("nfsd_proc_create") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 2 if (@defined($rqstp->rq_argp)) { fh = & @nfsd2_createargs($rqstp->rq_argp)->fh filelen = @nfsd2_createargs($rqstp->rq_argp)->len filename = kernel_string_n(@nfsd2_createargs($rqstp->rq_argp)->name, @nfsd2_createargs($rqstp->rq_argp)->len) } else { fh = & @nfsd2_createargs($argp)->fh filelen = $argp->len filename = kernel_string_n($argp->name, $argp->len) } createmode = 0 # gets computed by nfsd_proc_create uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc2.create" argstr = sprintf("%s", filename) } probe nfsd.proc2.create.return = kernel.function("nfsd_proc_create").return !, module("nfsd").function("nfsd_proc_create").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc2.create.return" version = 2 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc3.create = kernel.function("nfsd3_proc_create") !, module("nfsd").function("nfsd3_proc_create") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_createargs($rqstp->rq_argp)->fh filelen = @nfsd3_createargs($rqstp->rq_argp)->len filename = kernel_string_n(@nfsd3_createargs($rqstp->rq_argp)->name, @nfsd3_createargs($rqstp->rq_argp)->len) createmode = @nfsd3_createargs($rqstp->rq_argp)->createmode } else { fh = & @nfsd3_createargs($argp)->fh filelen = $argp->len filename = kernel_string_n($argp->name, $argp->len) createmode = $argp->createmode } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.create" argstr = sprintf("%s (mode=%s)", filename, nfs3_cmode(createmode)) } probe nfsd.proc3.create.return = kernel.function("nfsd3_proc_create").return !, module("nfsd").function("nfsd3_proc_create").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.create.return" version = 3 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc4.create = kernel.function("nfsd4_create").call !, module("nfsd").function("nfsd4_create").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = (@defined($cstate) ? & @nfsd4_compound_state($cstate)->current_fh : $current_fh) if (@defined($u)) { filelen = $u->create->cr_namelen filename = kernel_string_n($u->create->cr_name, $u->create->cr_namelen) createmode = $u->create->cr_type } else { filelen = $create->cr_namelen filename = kernel_string_n($create->cr_name, $create->cr_namelen) createmode = $create->cr_type } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.create" argstr = sprintf("%s (type=%s)", filename, nfs4_ctype(createmode)) } probe nfsd.proc4.create.return = kernel.function("nfsd4_create").return !, module("nfsd").function("nfsd4_create").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.create.return" version = 4 retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.proc.remove - NFS server removing a file for client * * @client_ip: the ip address of client * @proto: transfer protocol * @version: nfs version * @fh: file handle (the first part is the length of the file handle) * @filename: file name * @filelen: length of file name * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.remove = nfsd.proc4.remove ?, nfsd.proc3.remove, nfsd.proc2.remove ? {} probe nfsd.proc.remove.return = nfsd.proc4.remove.return ?, nfsd.proc3.remove.return, nfsd.proc2.remove.return ? {} probe nfsd.proc2.remove = kernel.function("nfsd_proc_remove") !, module("nfsd").function("nfsd_proc_remove") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 2 if (@defined($rqstp->rq_argp)) { fh = & @nfsd2_diropargs($rqstp->rq_argp)->fh filelen = @nfsd2_diropargs($rqstp->rq_argp)->len filename = kernel_string_n(@nfsd2_diropargs($rqstp->rq_argp)->name, @nfsd2_diropargs($rqstp->rq_argp)->len) } else { fh = & @nfsd2_diropargs($argp)->fh filelen = $argp->len filename = kernel_string_n($argp->name, $argp->len) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc2.remove" argstr = sprintf("%s", filename) } probe nfsd.proc2.remove.return = kernel.function("nfsd_proc_remove").return !, module("nfsd").function("nfsd_proc_remove").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc2.remove.return" version = 2 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc3.remove = kernel.function("nfsd3_proc_remove") !, module("nfsd").function("nfsd3_proc_remove") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_diropargs($rqstp->rq_argp)->fh filelen = @nfsd3_diropargs($rqstp->rq_argp)->len filename = kernel_string_n(@nfsd3_diropargs($rqstp->rq_argp)->name, @nfsd3_diropargs($rqstp->rq_argp)->len) } else { fh = & @nfsd3_diropargs($argp)->fh filelen = $argp->len filename = kernel_string_n($argp->name, $argp->len) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.remove" argstr = sprintf("%s", filename) } probe nfsd.proc3.remove.return = kernel.function("nfsd3_proc_remove").return !, module("nfsd").function("nfsd3_proc_remove").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.remove.return" version = 3 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc4.remove = kernel.function("nfsd4_remove").call !, module("nfsd").function("nfsd4_remove").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = & @nfsd4_compound_state($cstate)->current_fh if (@defined($u)) { filelen = $u->remove->rm_namelen filename = kernel_string_n($u->remove->rm_name, $u->remove->rm_namelen) } else { filelen = $remove->rm_namelen filename = kernel_string_n($remove->rm_name, $remove->rm_namelen) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.remove" argstr = sprintf("%s", filename) } probe nfsd.proc4.remove.return = kernel.function("nfsd4_remove").return !, module("nfsd").function("nfsd4_remove").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.remove.return" version = 4 retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.proc.rename - NFS Server renaming a file for client * * @client_ip: the ip address of client * @fh: file handler of old path * @tfh: file handler of new path * @filename: old file name * @tname: new file name * @flen: length of old file name * @tlen: length of new file name * @uid: requester's user id * @gid: requester's group id */ probe nfsd.proc.rename = nfsd.proc4.rename ?, nfsd.proc3.rename, nfsd.proc2.rename ? {} probe nfsd.proc.rename.return = nfsd.proc4.rename.return ?, nfsd.proc3.rename.return, nfsd.proc2.rename.return ? {} probe nfsd.proc2.rename = kernel.function("nfsd_proc_rename") !, module("nfsd").function("nfsd_proc_rename") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 2 if (@defined($rqstp->rq_argp)) { fh = & @nfsd2_renameargs($rqstp->rq_argp)->ffh tfh = & @nfsd2_renameargs($rqstp->rq_argp)->tfh filelen = @nfsd2_renameargs($rqstp->rq_argp)->flen filename = kernel_string_n(@nfsd2_renameargs($rqstp->rq_argp)->fname, @nfsd2_renameargs($rqstp->rq_argp)->flen) tlen = @nfsd2_renameargs($rqstp->rq_argp)->tlen tname = kernel_string_n(@nfsd2_renameargs($rqstp->rq_argp)->tname, @nfsd2_renameargs($rqstp->rq_argp)->tlen) } else { fh = & @nfsd2_renameargs($argp)->ffh tfh = & @nfsd2_renameargs($argp)->tfh filelen = $argp->flen filename = kernel_string_n($argp->fname, $argp->flen) tlen = $argp->tlen tname = kernel_string_n($argp->tname, $argp->tlen) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc2.rename" argstr = sprintf("%s to %s", filename, tname) } probe nfsd.proc2.rename.return = kernel.function("nfsd_proc_rename").return !, module("nfsd").function("nfsd_proc_rename").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc2.rename.return" version = 2 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc3.rename = kernel.function("nfsd3_proc_rename") !, module("nfsd").function("nfsd3_proc_rename") ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 3 if (@defined($rqstp->rq_argp)) { fh = & @nfsd3_renameargs($rqstp->rq_argp)->ffh tfh = & @nfsd3_renameargs($rqstp->rq_argp)->tfh filelen = @nfsd3_renameargs($rqstp->rq_argp)->flen filename = kernel_string_n(@nfsd3_renameargs($rqstp->rq_argp)->fname, @nfsd3_renameargs($rqstp->rq_argp)->flen) tlen = @nfsd3_renameargs($rqstp->rq_argp)->tlen tname = kernel_string_n(@nfsd3_renameargs($rqstp->rq_argp)->tname, @nfsd3_renameargs($rqstp->rq_argp)->tlen) } else { fh = & @nfsd3_renameargs($argp)->ffh tfh = & @nfsd3_renameargs($argp)->tfh filelen = $argp->flen filename = kernel_string_n($argp->fname, $argp->flen) tlen = $argp->tlen tname = kernel_string_n($argp->tname, $argp->tlen) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc3.rename" argstr = sprintf("%s to %s", filename, tname) } probe nfsd.proc3.rename.return = kernel.function("nfsd3_proc_rename").return !, module("nfsd").function("nfsd3_proc_rename").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc3.rename.return" version = 3 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.proc4.rename = kernel.function("nfsd4_rename").call !, module("nfsd").function("nfsd4_rename").call ? { client_ip = addr_from_rqst_str($rqstp) proto = $rqstp->rq_prot version = 4 fh = & @nfsd4_compound_state($cstate)->save_fh tfh = & @nfsd4_compound_state($cstate)->current_fh if (@defined($rename)) { filelen = $rename->rn_snamelen filename = kernel_string_n($rename->rn_sname, $rename->rn_snamelen) tlen = $rename->rn_tnamelen tname = kernel_string_n($rename->rn_tname, $rename->rn_tnamelen) } else { filelen = $u->rename->rn_snamelen filename = kernel_string_n($u->rename->rn_sname, $u->rename->rn_snamelen) tlen = $u->rename->rn_tnamelen tname = kernel_string_n($u->rename->rn_tname, $u->rename->rn_tnamelen) } uid = __rqstp_uid($rqstp) gid = __rqstp_gid($rqstp) name = "nfsd.proc4.rename" argstr = sprintf("%s to %s", filename, tname) } probe nfsd.proc4.rename.return = kernel.function("nfsd4_rename").return !, module("nfsd").function("nfsd4_rename").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) name = "nfsd.proc4.rename.return" version = 4 retstr = sprintf("%s", nfsderror($return)) } probe nfsd.entries = nfsd.open, nfsd.read, nfsd.write, nfsd.lookup, nfsd.commit, nfsd.create, nfsd.createv3 ?, nfsd.unlink, nfsd.rename, nfsd.close ? {} probe nfsd.return = nfsd.open.return, nfsd.read.return, nfsd.write.return, nfsd.lookup.return, nfsd.commit.return, nfsd.create.return, nfsd.createv3.return ?, nfsd.unlink.return, nfsd.rename.return, nfsd.close.return ? {} /** * probe nfsd.open - NFS server opening a file for client * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @access: indicates the type of open (read/write/commit/readdir...) * @type: type of file (regular file or dir) */ probe nfsd.open = kernel.function("nfsd_open") !, module("nfsd").function("nfsd_open") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) access = @choose_defined($access, $may_flags) type = $type name = "nfsd.open" argstr = sprintf("access: %d type: %s", access, ftype(type)) } probe nfsd.open.return = kernel.function("nfsd_open").return !, module("nfsd").function("nfsd_open").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.open.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.close - NFS server closing a file for client * * @filename: file name * * This probe point does not exist in kernels starting with 4.2. */ probe nfsd.close = __nfsd.call_close ?, __nfsd.inlined_close ? { client_ip ="N/A" name = "nfsd.close" argstr = sprintf("%s",filename) } /* * Why split nfsd.close up into '__nfsd.call_close' and * '__nfds.inlined_close'? We need the '@choose_defined()' since * SystemTap has trouble accessing the arguments of inlined functions * (PR 1155). But, if we only used '@choose_defined()', we wouldn't * automatically notice a change in the argument name. */ probe __nfsd.call_close = kernel.function("nfsd_close").call !, module("nfsd").function("nfsd_close").call ? { filename = __file_filename($filp) } probe __nfsd.inlined_close = kernel.function("nfsd_close").inline !, module("nfsd").function("nfsd_close").inline ? { filename = __file_filename(@choose_defined($filp, 0)) } probe nfsd.close.return = kernel.function("nfsd_close").return !, module("nfsd").function("nfsd_close").return ? { name = "nfsd.close.return" retstr = "N/A" } /** * probe nfsd.read - NFS server reading data from a file for client * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @file: argument file, indicates if the file has been opened. * @size: read bytes * @count: read bytes * @offset: the offset of file * @vec: struct kvec, includes buf address in kernel address and length of each buffer * @vlen: read blocks */ probe nfsd.read = kernel.function("nfsd_read") !, module("nfsd").function("nfsd_read") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) file = @choose_defined($file, 0) count = kernel_long($count) offset = $offset vec = $vec vlen = $vlen name = "nfsd.read" argstr = sprintf("count: %d offset: %d",count,offset) size = count units = "bytes" } probe nfsd.read.return = kernel.function("nfsd_read").return !, module("nfsd").function("nfsd_read").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.read.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.write - NFS server writing data to a file for client * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @file: argument file, indicates if the file has been opened. * @size: read bytes * @count: read bytes * @offset: the offset of file * @vec: struct kvec, includes buf address in kernel address and length of each buffer * @vlen: read blocks */ probe nfsd.write = kernel.function("nfsd_write") !, module("nfsd").function("nfsd_write") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) file = @choose_defined($file, 0) %( kernel_v >= "2.6.30" %? count = kernel_long($cnt) %: count = $cnt %) offset = $offset vec = $vec vlen = $vlen name = "nfsd.write" argstr = sprintf("count: %d offset: %d",count,offset) size = count units = "bytes" } probe nfsd.write.return = kernel.function("nfsd_write").return !, module("nfsd").function("nfsd_write").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.write.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.commit - NFS server committing all pending writes to stable storage * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @flag: indicates whether this execution is a sync operation * @size: read bytes * @count: read bytes * @offset: the offset of file */ probe nfsd.commit = kernel.function("nfsd_commit") !, module("nfsd").function("nfsd_commit") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) count = $count offset = $offset flag = $fhp->fh_export->ex_flags name = "nfsd.commit" argstr = sprintf("count: %d offset: %d",count,offset) size = count units = "bytes" } probe nfsd.commit.return = kernel.function("nfsd_commit").return !, module("nfsd").function("nfsd_commit").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.commit.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.lookup - NFS server opening or searching file for a file for client * * @client_ip: the ip address of client * @fh: file handle of parent dir(the first part is the length of the file handle) * @filename: file name * @filelen: the length of file name */ probe nfsd.lookup = kernel.function("nfsd_lookup") !, module("nfsd").function("nfsd_lookup") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) filelen = $len filename = kernel_string_n($name, $len) name = "nfsd.lookup" argstr = sprintf("name: %s", kernel_string_n($name, $len)) } probe nfsd.lookup.return = kernel.function("nfsd_lookup").return !, module("nfsd").function("nfsd_lookup").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.lookup.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.create - NFS server creating a file(regular,dir,device,fifo) for client * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @filename: file name * @filelen: the length of file name * @type: file type(regular,dir,device,fifo ...) * @iap_valid: Attribute flags * @iap_mode: file access mode * * Sometimes nfsd will call nfsd_create_v3 instead of this this probe point. */ probe nfsd.create = kernel.function("nfsd_create") !, module("nfsd").function("nfsd_create") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) filelen = $flen filename = kernel_string_n($fname, $flen) type = $type iap_valid = $iap->ia_valid iap_mode = $iap->ia_mode name = "nfsd.create" argstr = sprintf("name: %s type: %s", kernel_string_n($fname, $flen), ftype(type)) } probe nfsd.create.return = kernel.function("nfsd_create").return !, module("nfsd").function("nfsd_create").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.create.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.createv3 - NFS server creating a regular file or set file attributes for client * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @filename: file name * @filelen: the length of file name * @iap_valid: Attribute flags * @iap_mode: file access mode * @createmode: create mode .The possible values could be: NFS3_CREATE_EXCLUSIVE, NFS3_CREATE_UNCHECKED, or NFS3_CREATE_GUARDED * @truncp: trunp arguments, indicates if the file shouldbe truncate * @verifier: file attributes (atime,mtime,mode). It's used to reset file attributes for CREATE_EXCLUSIVE * * This probepoints is only called by nfsd3_proc_create and * nfsd4_open when op_claim_type is NFS4_OPEN_CLAIM_NULL. */ probe nfsd.createv3 = kernel.function("do_nfsd_create") !, module("nfsd").function("do_nfsd_create") !, kernel.function("nfsd_create_v3") !, module("nfsd").function("nfsd_create_v3") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) filelen = $flen filename = kernel_string_n($fname, $flen) iap_valid = $iap->ia_valid iap_mode = $iap->ia_mode truncp = $truncp verifier = $verifier createmode = $createmode name = "nfsd.createv3" argstr = sprintf("name: %s mode: %s", kernel_string_n($fname, $flen), nfs3_cmode(createmode)) } probe nfsd.createv3.return = kernel.function("do_nfsd_create").return !, module("nfsd").function("do_nfsd_create").return !, kernel.function("nfsd_create_v3").return !, module("nfsd").function("nfsd_create_v3").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.createv3.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.unlink - NFS server removing a file or a directory for client * * @client_ip: the ip address of client * @fh: file handle (the first part is the length of the file handle) * @filename: file name * @filelen: the length of file name * @type: file type (file or dir) */ probe nfsd.unlink = kernel.function("nfsd_unlink") !, module("nfsd").function("nfsd_unlink") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) filelen = $flen filename = kernel_string_n($fname, $flen) type = $type name = "nfsd.unlink" argstr = sprintf("name: %s", kernel_string_n($fname, $flen)) } probe nfsd.unlink.return = kernel.function("nfsd_unlink").return !, module("nfsd").function("nfsd_unlink").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($fhp)) name = "nfsd.unlink.return" retstr = sprintf("%s", nfsderror($return)) } /** * probe nfsd.rename -NFS server renaming a file for client * * @client_ip: the ip address of client * @fh: file handler of old path * @tfh: file handler of new path * @filename: old file name * @tname: new file name * @flen: length of old file name * @tlen: length of new file name */ probe nfsd.rename = kernel.function("nfsd_rename") !, module("nfsd").function("nfsd_rename") ? { client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($ffhp) tfh = __svc_fh($tfhp) filelen = $flen filename = kernel_string_n($fname, $flen) tlen = $tlen tname = kernel_string_n($tname, $tlen) name = "nfsd.rename" argstr = sprintf("%s to %s", kernel_string_n($fname, $flen), kernel_string_n($tname, $tlen)) } probe nfsd.rename.return = kernel.function("nfsd_rename").return !, module("nfsd").function("nfsd_rename").return ? { client_ip = addr_from_rqst_str(@entry($rqstp)) fh = __svc_fh(@entry($ffhp)) name = "nfsd.rename.return" retstr = sprintf("%s", nfsderror($return)) }
Save
cmd:
run