Time namespace

From CRIU
Revision as of 01:42, 6 February 2019 by Dsafonov (talk | contribs) (Add timens patch v1 to links)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Two things (for now) we want to solve with this:

  1. Shift timer's offsets
  2. Make start-time remain "unchanged" after C/R
  3. Continuous flow of monotonic time (CLOCK_MONOTONIC).

What about other kinds of counters like perf events and trace events?

TODO

Required in RFC

  • selftests to test all we've added
  • TIME_NS iffdefery everywhere

Maybe later

  • CLONE_NEWTIME reuses the last free flag from sys_clone() - any way to still keep extensibility for the syscall?
  • arm64/arm32/s390/power64 - add archs vvar support (nit: big/little-endianess for timespec::nsec)
  • REALTIME-related:
    • REALTIME offsets
    • vvar offsets will need synchronization (like gtod_read_begin()/gtod_read_retry())
    • vfs modification/creation time should work
    • starttime in /proc/pid/stat
    • btime in /proc/stat
    • utime()/utimes()/futimesat() (with times == NULL)
    • utimensat()/futimens() - with UTIME_NOW
    • mq_timedsend()/mq_timedreceive()
    • semtimedop()
    • timerfd
    • timer_create()
    • COARSE times
    • clock_nanosleep()
  • Adjtime (too complicated for PoC)
  • Cpu time for thread/pid/pgid (times())
  • /proc/stat ticks? (top uses them e.g.)
  • pid creation time (probably different unrelated API)
  • clock_tai - if we care about isolation from host's time

Git

Links