criu/images
Radostin Stoyanov 3441f66b24 crtools/rpc/libcriu: Expose page compression
The compression paths have no supported user or RPC controls, and
clients cannot discover whether CRIU was built with LZ4.

Expose per-page and region compression, LZ4 acceleration, and worker
concurrency for LZ4 decoding and eligible large zero fills through the
CLI, configuration files, RPC, and libcriu. Add compression to the
feature-check API and document each interface.

Define --decompress-threads=0 as automatic worker concurrency and one as
the serial default with zero-fill workers disabled. Values above one
bound aggregate worker concurrency. Automatic mode derives a useful
width from CPU affinity and the work in each batch. Reduce explicit
requests above the available CPU count with a warning.

Document the independent two-slot encoded-input budget. A local restore
overlaps its next read only when it can reserve the second slot without
waiting; otherwise it keeps synchronous I/O.

Use the compression mode as the source of truth and validate every
related value. An explicit RPC OFF clears ambient compression settings
and rejects conflicting fields. Reject combinations unsupported by page
server, stream, TLS, and image-format paths, and cover option and RPC
precedence in the tests.

Assisted-by: Codex:GPT-5
Assisted-by: Claude:claude-fable-5
Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2026-07-14 10:17:01 +01:00
..
google/protobuf Keep images/google/protobuf directory 2025-11-02 07:48:22 -08: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 cgroup-v2: make new field is_threaded optional 2023-04-15 21:17:21 -07:00
core-aarch64.proto images: aarch64: add user_aarch64_gcs_entry 2025-12-07 19:20:00 +01:00
core-arm.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
core-loongarch64.proto images: add loongarch64 core image 2023-10-22 13:29:25 -07:00
core-mips.proto Remove execute bit from source file 2023-04-15 21:17:21 -07:00
core-ppc64.proto Fix some codespell warnings 2022-04-28 17:53:52 -07:00
core-riscv64.proto images: add riscv64 core image 2025-03-21 12:40:31 -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 compel: shstk: save CET state when CPU supports it 2024-09-11 16:02:11 -07:00
core.proto images: add timerslack_ns field to thread_core_entry 2026-03-19 21:35:31 -07:00
cpuinfo.proto images: re-license as Expat license (so-called MIT) 2021-09-03 10:31:00 -07:00
creds.proto cr: Task CapAmb support 2025-03-21 12:40:31 -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: Add protobuf definition for pidfd 2025-03-21 12:40:31 -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 images: Add compressed page metadata 2026-07-14 10:17:01 +01: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 images/Makefile: use msg-gen 2025-11-02 07:48:22 -08:00
memfd.proto memfd: dump and restore permissions. 2023-10-22 13:29:25 -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 net/sysctl: c/r ipv4/ping_group_range value 2025-03-21 12:40:31 -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: Add compressed page metadata 2026-07-14 10:17:01 +01:00
pidfd.proto images: Add protobuf definition for pidfd 2025-03-21 12:40:31 -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 pipes: restore pipe ownership to fix /proc/self/fd access 2026-03-25 21:09:15 -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 crtools/rpc/libcriu: Expose page compression 2026-07-14 10:17:01 +01: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 sk-tcp: Move TCP socket options from TcpStreamEntry to TcpOptsEntry 2024-09-11 16:02:11 -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 sk-tcp: Move TCP socket options from SkOptsEntry to TcpOptsEntry 2024-09-11 16:02:11 -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 sk-tcp: Move TCP socket options from SkOptsEntry to TcpOptsEntry 2024-09-11 16:02:11 -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 criu: Support binfmt_misc sandboxing 2026-02-17 17:07:29 +00: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