Difference between revisions of "Time namespace"

From CRIU
Jump to navigation Jump to search
Line 39: Line 39:
  
 
=Links=
 
=Links=
* [https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2018-November/006210.html 11/01/2018 <nowiki>[Ksummit-discuss] [TECH-TOPIC] Multiple time domains</nowiki>]
+
* [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://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://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://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://blog.jessfraz.com/post/two-objects-not-namespaced-linux-kernel/ 04/2017 Two Objects not Namespaced by the Linux Kernel]
* [https://lwn.net/Articles/180375/ 04/2006 LWN: Virtual time]
+
* [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://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://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://www.landley.net/kdocs/ols/2006/ols2006v1-pages-101-112.pdf 00/2006 Multiple Instances of the Global Linux Namespaces]
* [https://github.com/littlepretty/VirtualTimeKernel 00/2017 VirtualTimeKernel]
+
* [https://lwn.net/Articles/180375/ 04/2006 LWN: Virtual time]
* [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]
+
 
  
 
[[Category: Empty articles]]
 
[[Category: Empty articles]]
 
[[Category: Plans]]
 
[[Category: Plans]]

Revision as of 20:36, 10 November 2018

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