criu/images
Alexander Mikhalitsyn 1e0bed3d69 rseq: handle rseq/rseq_cs flags properly
Userspace may configure rseq cs abort policy by
setting RSEQ_CS_FLAG_NO_RESTART_ON_* flags.

In ("cr-dump: fixup thread IP when inside rseq cs") we have supported
the case when process was caught by CRIU during rseq cs execution by
fixing up IP to abort_ip. Thats a common case, but there is special flag
called RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL, in this case we have to leave
process IP as it was before CRIU seized it. Unfortunately, that's not
all that we need here. We also must preserve (struct rseq)->rseq_cs field.

You may ask like "why we need to preserve it by hands? CRIU is dumping
all process memory and restores it". That's true. But not so easy. The problem
here is that the kernel performs this field cleanup when it realized that
the process gets out of rseq cs. But during dump/restore procedures we are
executing parasite/restorer from the process context. It means that process
will get out of rseq cs in any case and (struct rseq)->rseq_cs will be cleared
by the kernel. So we need to restore this field by hands at the *last* stage
of restore just before releasing processes.

Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com>
2022-04-28 17:53:52 -07:00
..
google/protobuf build: Move @protobuf dir into @images 2016-02-15 15:32:27 +03:00
apparmor.proto lsm: support checkpoint/restore of stacked apparmor profiles 2021-09-03 10:31:00 -07:00
autofs.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
binfmt-misc.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
bpfmap-data.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
bpfmap-file.proto bpfmap: handle new field in fdinfo 2022-04-28 17:53:52 -07:00
cgroup.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
core-aarch64.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
core-arm.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
core-mips.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
core-ppc64.proto Fix some codespell warnings 2022-04-28 17:53:52 -07:00
core-s390.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
core-x86.proto Fix some codespell warnings 2022-04-28 17:53:52 -07:00
core.proto rseq: initial support 2022-04-28 17:53:52 -07:00
cpuinfo.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
creds.proto lsm: support checkpoint/restore of stacked apparmor profiles 2021-09-03 10:31:00 -07:00
eventfd.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
eventpoll.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
ext-file.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
fdinfo.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
fh.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
fifo.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
file-lock.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
fown.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
fs.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
fsnotify.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
ghost-file.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
img-streamer.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
inventory.proto inventory: save network lock method to reuse in restore 2021-09-03 10:31:00 -07:00
ipc-desc.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
ipc-msg.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
ipc-sem.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
ipc-shm.proto ipc: Add support for checkpoint/restore hugetlb System V shared memory 2022-04-28 17:53:52 -07:00
ipc-var.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
LICENSE images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
macvlan.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
Makefile rseq: initial support 2022-04-28 17:53:52 -07:00
memfd.proto memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory 2022-04-28 17:53:52 -07:00
mm.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
mnt.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
netdev.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
ns.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
opts.proto Fix some codespell warnings 2022-04-28 17:53:52 -07:00
packet-sock.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
pagemap.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
pidns.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
pipe-data.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
pipe.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
pstree.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
regfile.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
remap-file-path.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
rlimit.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
rpc.proto config/rpc: add new option --mntns-compat-mode for old mount engine 2022-04-28 17:53:52 -07:00
rseq.proto rseq: handle rseq/rseq_cs flags properly 2022-04-28 17:53:52 -07:00
sa.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
seccomp.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
siginfo.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
signalfd.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
sit.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
sk-inet.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
sk-netlink.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
sk-opts.proto sockets: c/r bufer size locks 2022-04-28 17:53:52 -07:00
sk-packet.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
sk-unix.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
stats.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
sysctl.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
tcp-stream.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
time.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
timens.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
timer.proto criu: dump and restore notify_thread_id of posix timer 2021-09-03 10:31:00 -07:00
timerfd.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
tty.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
tun.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
userns.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
utsns.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
vma.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00