Difference between revisions of "What can change after C/R"

(Created page with "This page is very important (I believe). It describes what can change in a tasks' environment after a C/R cycle. If a software you're using depends on either item from the lis...")
 
(what can change: add a link to vdso page)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page is very important (I believe). It describes what can change in a tasks' environment after a C/R cycle. If a software you're using depends on either item from the list below, it may break after C/R
+
This page is very important (I believe). It describes what can change in a tasks' environment after a C/R cycle. If a software you're using depends on either item from the list below, it may break after C/R. The list is incomplete, but we do our best to make it contain relevant data.
  
 
; Per-task statistics
 
; Per-task statistics
Line 9: Line 9:
 
; Process start time
 
; Process start time
 
: It's in the 22nd field of the <code>/proc/$pid/stat</code> file
 
: It's in the 22nd field of the <code>/proc/$pid/stat</code> file
 +
 +
; Mount points IDs
 +
: The numbers from first 2 columns of <code>/proc/$pid/mountinfo</code>
 +
 +
; Sockets IDs
 +
: If you stat() a file descriptor with a socket the st_ino value can be used as unique socket ID. This value does changes after C/R as these IDs are global and we have no API to restore one.
 +
 +
; VDSO
 +
: The VDSO is a shared library linked into app by kernel. If the C/R cycle implies changing the kernel in between (e.g. [[live migration]] or seamless kernel upgrade), the [[Vdso|VDSO contents ''may'' change]]. However, its linkage with the application is preserved.
 +
 +
[[Category:Using]]

Latest revision as of 19:14, 31 July 2019

This page is very important (I believe). It describes what can change in a tasks' environment after a C/R cycle. If a software you're using depends on either item from the list below, it may break after C/R. The list is incomplete, but we do our best to make it contain relevant data.

Per-task statistics
Various counters, that can be obtained via /proc/$pid/status or getrusage()
Namespaces' IDs
Numbers you see in the /proc/$pid/ns/* links' targets
Process start time
It's in the 22nd field of the /proc/$pid/stat file
Mount points IDs
The numbers from first 2 columns of /proc/$pid/mountinfo
Sockets IDs
If you stat() a file descriptor with a socket the st_ino value can be used as unique socket ID. This value does changes after C/R as these IDs are global and we have no API to restore one.
VDSO
The VDSO is a shared library linked into app by kernel. If the C/R cycle implies changing the kernel in between (e.g. live migration or seamless kernel upgrade), the VDSO contents may change. However, its linkage with the application is preserved.