mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-01 06:45:35 +00:00
restore: Add threads restoration
Now threads restortion (and TLS as well) works. Threads test reports the following 2775 (main): Counter value: 3 tls_data = 1 2775 (main): ( 0) fsgs_base 7f9597aa46f0 2775 (main): ( 0) fsgs_base 0 2775 (thr3): Counter value: 4 tls_data = 4 2775 (thr3): ( 0) fsgs_base 42c57940 2775 (thr3): ( 0) fsgs_base 0 2775 (thr2): Counter value: 3 tls_data = 2 2775 (thr2): ( 0) fsgs_base 42456940 2775 (thr2): ( 0) fsgs_base 0 2775 (thr1): Counter value: 4 tls_data = 3 2775 (thr1): ( 0) fsgs_base 40c62940 2775 (thr1): ( 0) fsgs_base 0 2775 (main): Counter value: 4 tls_data = 1 2775 (main): ( 0) fsgs_base 7f9597aa46f0 2775 (main): ( 0) fsgs_base 0 2775 (thr1): Counter value: 5 tls_data = 3 2775 (thr1): ( 0) fsgs_base 40c62940 2775 (thr1): ( 0) fsgs_base 0 as expected. This commits merges all preliminary commits into the final one (sigreturn branch was always experimental and forced update). Still some problems remain: 1) While creating threads with clone() the flags are to be revisited. We use some predefined set here but it's not really correct. 2) No setup of pids in PCB thread zone. 3) No restore of FPU. But at least on some basic tasks restore works well. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
@@ -19,13 +19,13 @@
|
||||
#define __NR_pause 34
|
||||
#define __NR_nanosleep 35
|
||||
#define __NR_getpid 39
|
||||
#define __NR_clone 56
|
||||
#define __NR_exit 60
|
||||
#define __NR_unlink 87
|
||||
|
||||
#define __NR__sysctl 156
|
||||
#define __NR_prctl 157
|
||||
#define __NR_arch_prctl 158
|
||||
|
||||
#define __NR_futex 202
|
||||
#define __NR_set_thread_area 205
|
||||
#define __NR_get_thread_area 211
|
||||
|
||||
|
Reference in New Issue
Block a user