Line 1: |
Line 1: |
− | Two things (for now) we want to solve with this:
| + | 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. |
− | # Shift timer's offsets
| |
− | # Make start-time remain "unchanged" after C/R
| |
− | # Continuous flow of monotonic time (CLOCK_MONOTONIC).
| |
| | | |
− | What about other kinds of counters like perf events and trace events?
| + | [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=
| + | [https://lwn.net/Articles/766089/ LWN article about time namespaces] |
− | ==Required in RFC==
| |
− | * starttime in /proc/pid/stat
| |
− | * 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
| |
− | ** 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=
| |
− | * [https://github.com/0x7f454c46/linux/tree/wip/time-ns https://github.com/0x7f454c46/linux/tree/wip/time-ns]
| |
| | | |
| =Links= | | =Links= |
| + | * [https://lwn.net/Articles/817650/ 04/2020 <nowiki>[PATCH v3 0/6] arm64: add the time namespace support</nowiki>] |
| + | * [https://lore.kernel.org/lkml/158016896588.31887.14143226032971732742.tglx@nanos.tec.linutronix.de/ 01/2020<nowiki> [GIT pull] timers/core for 5.6-rc1</nowiki>] |
| + | * [https://lkml.kernel.org/r/20191112012724.250792-1-dima@arista.com 11/2019 PATCHv8 00/34 kernel: Introduce Time Namespace] |
| + | * [https://lkml.kernel.org/r/20190206001107.16488-1-dima@arista.com 02/2019 PATCH 00/32 kernel: Introduce Time Namespace] |
| + | * [https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2018-November/006210.html 11/2018 <nowiki>[Ksummit-discuss] [TECH-TOPIC] Multiple time domains</nowiki>] |
| + | * [https://lwn.net/Articles/766089/ 09/2018 LWN: Time namespaces] |
| + | * [https://lkml.org/lkml/2018/9/19/950 09/2018 RFC 00/20 ns: Introduce Time Namespace] |
| + | * [https://lists.openvz.org/pipermail/criu/2018-June/041486.html 06/2018 The progress of Time namespace] |
| + | * [https://blog.jessfraz.com/post/two-objects-not-namespaced-linux-kernel/ 04/2017 Two Objects not Namespaced by the Linux Kernel] |
| + | * [https://github.com/littlepretty/VirtualTimeKernel 00/2017 VirtualTimeKernel] |
| + | * [http://publish.illinois.edu/science-of-security-lablet/files/2014/05/DSSnet-A-Smart-Grid-Modeling-Platform-Combining-Electrical-Power-Distributtion-System-Simulation-and-Software-Defined-Networking-Emulation.pdf 00/2016 Article about usage of time namespace in VirtualTimeKernel] |
| + | * [https://pt.slideshare.net/kolyshkin/whats-missing-from-upstream-kernel-containers 08/2015 What's missing from upstream kernel containers?] |
| + | * [https://ckpt.wiki.kernel.org/index.php/LPC2009 09/2009 LPC2009] |
| + | * [https://www.landley.net/kdocs/ols/2006/ols2006v1-pages-101-112.pdf 00/2006 Multiple Instances of the Global Linux Namespaces] |
| + | * [https://lwn.net/Articles/180375/ 04/2006 LWN: Virtual time] |
| | | |
− | * [https://lists.openvz.org/pipermail/criu/2018-June/041486.html The progress of Time namespace]
| |
− | * [https://blog.jessfraz.com/post/two-objects-not-namespaced-linux-kernel/ Two Objects not Namespaced by the Linux Kernel]
| |
− | * [https://lwn.net/Articles/180375/ Virtual time]
| |
− | * [https://pt.slideshare.net/kolyshkin/whats-missing-from-upstream-kernel-containers What's missing from upstream kernel containers?]
| |
− | * [https://ckpt.wiki.kernel.org/index.php/LPC2009 LPC2009]
| |
− | * [https://www.landley.net/kdocs/ols/2006/ols2006v1-pages-101-112.pdf Multiple Instances of the Global Linux Namespaces]
| |
− | * [https://github.com/littlepretty/VirtualTimeKernel VirtualTimeKernel]
| |
| | | |
| [[Category: Empty articles]] | | [[Category: Empty articles]] |
| [[Category: Plans]] | | [[Category: Plans]] |