GSOC: PID namespace translation support for strace

Ákos Uzonyi uzonyi.akos at gmail.com
Sat Apr 4 21:46:08 UTC 2020


On Sat, 4 Apr 2020 at 18:28, Dmitry V. Levin <ldv at altlinux.org> wrote:
> On Sat, Apr 04, 2020 at 05:52:27PM +0200, Ákos Uzonyi wrote:
> > What do you think about a time class?
> > It would include syscalls used for timing purposes or getting/setting
> > the system clocks (timer related syscalls, nanosleep, alarm, clock_*,
> > (get|set)timeofday, time, stime, *adjtime*).
> >
> > I'm not sure, but maybe syscalls with a timeout parameter should be
> > also included (or they could be an other new class).
>
> Could you be more specific which of many time-related syscalls do you
> propose to include into the new class and why?
>
> For example, choose your favorite architecture and list all syscalls
> available on that architecture you'd like to see in that class, for one
> reason or another.  This would help you to define the criteria of
> selection for the proposed syscall class.

On x86, I have listed the time-related system calls. I don't think
they should be included in a single large class (they are quite
diverse), so I grouped them into 5 groups.

The first group looks quite good for a new %clock class, containing
syscalls that read, or modify the system clocks.

The second group could be also a new class - maybe named %timing -
containing syscalls that are explicitly used for doing something at a
specified point in the future. Maybe syscalls with a timeout parameter
(third group) should be included in the class too, as they can be used
for timing also (I made them a separate group, because they have other
use-cases).

The last two groups are time-related, but I don't think they worth a new class.

As my microproject I would like to implement the %clock class (and
maybe the %timing class later, if you find that a good idea).

* Getting/setting system clocks (%clock):
adjtimex
clock_adjtime
clock_getres
clock_gettime
clock_settime
gettimeofday
settimeofday
time

* Timing syscalls (%timing):
alarm
getitimer
setitimer
timer_create
timer_delete
timer_getoverrun
timer_settime
timer_gettime
timerfd_create
timerfd_settime
timerfd_gettime
nanosleep
clock_nanosleep

* Timeout parameters:
io_getevents
mq_timedreceive
mq_timedsend
epoll_wait
epoll_pwait
futex
select
pselect
ppoll
poll
recvmmsg
sigtimedwait
rt_sigtimedwait
semtimedop

 * File timestamps:
stat
fstat
lstat
statx
utime
utimes
utimensat
futimesat

 * Task scheduling related:
sched_rr_get_interval
times


More information about the Strace-devel mailing list