Difference between revisions of "Time namespace"
Jump to navigation
Jump to search
m (→Links) |
|||
Line 1: | Line 1: | ||
− | + | The time namespace support has been merged in the 5.6 kernel. The current implementation allows setting per-namespace offsets to the system monotonic and boot-time clocks. | |
− | |||
− | |||
− | |||
− | + | [https://github.com/checkpoint-restore/criu/pull/1002 The time namespace support] in CRIU has been merged in the [[Download/criu/3.14 | 3.14 release]]. | |
=TODO= | =TODO= | ||
− | == | + | ==Maybe later== |
− | * | + | * Make start-time remain "unchanged" after C/R |
− | |||
− | |||
− | |||
− | |||
* arm64/arm32/s390/power64 - add archs vvar support (nit: big/little-endianess for timespec::nsec) | * arm64/arm32/s390/power64 - add archs vvar support (nit: big/little-endianess for timespec::nsec) | ||
* REALTIME-related: | * REALTIME-related: | ||
Line 25: | Line 18: | ||
** mq_timedsend()/mq_timedreceive() | ** mq_timedsend()/mq_timedreceive() | ||
** semtimedop() | ** semtimedop() | ||
− | |||
− | |||
− | |||
− | |||
* Adjtime (too complicated for PoC) | * Adjtime (too complicated for PoC) | ||
* Cpu time for thread/pid/pgid (times()) | * Cpu time for thread/pid/pgid (times()) | ||
Line 34: | Line 23: | ||
* pid creation time (probably different unrelated API) | * pid creation time (probably different unrelated API) | ||
* clock_tai - if we care about isolation from host's time | * clock_tai - if we care about isolation from host's time | ||
+ | * What about other kinds of counters like perf events and trace events? | ||
=Git= | =Git= |
Revision as of 04:43, 23 April 2020
The time namespace support has been merged in the 5.6 kernel. The current implementation allows setting per-namespace offsets to the system monotonic and boot-time clocks.
The time namespace support in CRIU has been merged in the 3.14 release.
TODO
Maybe later
- Make start-time remain "unchanged" after C/R
- 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()
- 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
- What about other kinds of counters like perf events and trace events?
Git
Links
- 11/2019 PATCHv8 00/34 kernel: Introduce Time Namespace
- 02/2019 PATCH 00/32 kernel: Introduce Time Namespace
- 11/2018 [Ksummit-discuss] [TECH-TOPIC] Multiple time domains
- 09/2018 LWN: Time namespaces
- 09/2018 RFC 00/20 ns: Introduce Time Namespace
- 06/2018 The progress of Time namespace
- 04/2017 Two Objects not Namespaced by the Linux Kernel
- 00/2017 VirtualTimeKernel
- 00/2016 Article about usage of time namespace in VirtualTimeKernel
- 08/2015 What's missing from upstream kernel containers?
- 09/2009 LPC2009
- 00/2006 Multiple Instances of the Global Linux Namespaces
- 04/2006 LWN: Virtual time