criu/include
Andrey Vagin bb98a82098 page-pipe: split dumping memory on chunks (v3)
The problem is that vmsplice() to a big pipe fails very often.

The kernel allocates a linear chunk of memory for pipe buffer
descriptos, but a big allocation in kernel can fail.

So we need to restrict maximal capacity of pipes. But the number of
pipes is restricted too, so we need to split dumping memory on chunks.

In this patch we calculates the pipe size for which vmsplice() will not
fail.

v2: s/batch/chunk and a few other small fixes
v3: Remove callbacks from page_pipes and reuse pipes
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-02-10 15:06:39 +04:00
..
asm-generic asm: Add builtin_memcpy, builtin_memcmp generic helpers 2013-05-23 16:51:14 +04:00
bug.h shmem: don't include restorer.h in shmem.c 2013-11-06 12:38:43 +04:00
compiler.h include/compiler.h: Cleanup 2013-02-15 17:34:38 +04:00
cpu.h cpu: Make cpu routines being per-acrh 2013-02-18 18:42:08 +04:00
cr-service-const.h service: move constants to cr-service-const.h 2013-12-18 14:26:10 +04:00
cr-service.h rpc: Introduce CLI's --action-script analogue 2014-01-30 15:58:45 +04:00
cr-show.h headers: Add \Newline-s for readability sake 2013-11-15 17:00:14 +04:00
cr_options.h rpc: Introduce CLI's --action-script analogue 2014-01-30 15:58:45 +04:00
criu-log.h log: Don't override -v0 with -v2 2014-02-04 20:54:25 +04:00
criu-plugin.h net: Add ability to dump external links with plugins 2013-12-26 22:39:04 +04:00
crtools.h v3 deduplication: add dedup comand to criu 2013-12-18 14:51:22 +04:00
err.h headers: Add err.h header 2013-04-02 20:27:51 +04:00
errno.h headers: Move ERESTART codes to errno.h 2013-11-14 22:22:21 +04:00
eventfd.h anon-inode: Don't readlink fd/fd multiple times 2014-02-02 22:14:29 +04:00
eventpoll.h anon-inode: Don't readlink fd/fd multiple times 2014-02-02 22:14:29 +04:00
fcntl.h headers: Move fcntl related data to include/fcntl.h 2013-11-14 22:13:10 +04:00
fdset.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
fifo.h collect: Shorten common images collecting code 2013-08-21 03:52:18 +04:00
file-ids.h files: Make fd_id_generate_special return ID into pointer 2014-02-05 16:17:49 +04:00
file-lock.h crtools: don't include crtools.h in other headers 2013-11-06 18:17:38 +04:00
files-reg.h fifo: Don't lookup reg path twice 2014-02-07 13:55:27 +04:00
files.h vma: Don't lookup file_desc for vma twice 2014-02-07 13:51:29 +04:00
fsnotify.h anon-inode: Don't readlink fd/fd multiple times 2014-02-02 22:14:29 +04:00
image-desc.h mm: Move VmaEntries from separate image into Mm one 2014-02-04 11:44:05 +04:00
image.h unix: add ability to set callbacks for external sockets (v5) 2013-12-20 15:28:41 +04:00
inet_diag.h headers: Unify include guards (in comments) and a few fixes 2012-12-25 22:40:24 +04:00
ipc_ns.h crtools: don't include crtools.h in other headers 2013-11-06 18:17:38 +04:00
irmap.h irmap: Introduce irmap on-disk cache 2014-01-30 16:20:16 +04:00
kcmp-ids.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
kcmp.h headers: Move kcmp_type to kcmp.h 2013-11-14 22:13:59 +04:00
kerndat.h mem: Fix zero_page_pfn type 2014-01-31 00:08:47 +04:00
libnetlink.h headers: Unify include guards (in comments) and a few fixes 2012-12-25 22:40:24 +04:00
list.h criu: Several formatting fixes 2014-01-14 09:33:19 +04:00
lock.h atomic: Use atomic_read instead of atomic_get 2013-08-16 19:37:06 +04:00
log.h plugin: allow to use logging function in plugins 2013-12-18 21:52:12 +04:00
magic.h img: Needed declarations for irmap-cache image file 2014-01-30 16:20:15 +04:00
mem.h mem: Move shmem preparation routine and rename 2014-02-03 23:34:12 +04:00
mman.h headers: Move MADV definitions to own mman.h 2013-11-14 22:48:30 +04:00
mount.h mount: Factor out mount tree build for NEWNS and non-NS cases 2013-12-12 16:19:48 +04:00
namespaces.h pre-dump: Collect mount info, root and nsmask 2014-01-30 16:20:15 +04:00
net.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
netfilter.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
netlink_diag.h headers: Add missing __CR_ at last endif 2013-11-15 16:59:57 +04:00
packet_diag.h headers: Unify include guards (in comments) and a few fixes 2012-12-25 22:40:24 +04:00
page-pipe.h page-pipe: split dumping memory on chunks (v3) 2014-02-10 15:06:39 +04:00
page-read.h page-read: Fix naming 2013-12-18 14:55:22 +04:00
page-xfer.h v3 deduplication: add auto-dedup local 2013-12-18 14:52:04 +04:00
parasite-syscall.h headers: Add \Newline-s for readability sake 2013-11-15 17:00:14 +04:00
parasite.h crtools: include sys/time.h in parasite.h 2013-11-06 16:41:45 +04:00
pid.h headers: Add missing __CR_ at last endif 2013-11-15 16:59:57 +04:00
pipes.h collect: Shorten common images collecting code 2013-08-21 03:52:18 +04:00
plugin.h net: Add ability to dump external links with plugins 2013-12-26 22:39:04 +04:00
posix-timer.h headers: Add missing __CR_ at last endif 2013-11-15 16:59:57 +04:00
prctl.h headers: Move prctl constants to prctl.h 2013-11-14 22:19:43 +04:00
proc_parse.h restore: Parse /proc/self/maps for self mappings 2014-02-07 13:32:21 +04:00
protobuf-desc.h pb: Number PB_ constants 2014-02-02 01:20:49 +04:00
protobuf.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
pstree.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
ptrace.h ptrace: include config.h in ptrace.h 2014-02-07 15:32:17 +04:00
rbtree.h x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
restorer.h headers: Drop uintX_t usage 2013-12-12 10:03:07 +04:00
rst-malloc.h whitespace-at-eol cleanup 2013-12-12 10:00:45 +04:00
rst_info.h mm: Read mmentry early 2014-02-04 11:44:04 +04:00
servicefd.h criu: Remove parent-img service fd 2014-01-24 16:12:46 +04:00
shmem.h mem: Move shmem preparation routine and rename 2014-02-03 23:34:12 +04:00
sigframe.h parasite: don't include restorer.h in parasite-syscall.c 2013-11-06 12:39:36 +04:00
signalfd.h anon-inode: Don't readlink fd/fd multiple times 2014-02-02 22:14:29 +04:00
sk-inet.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
sk-packet.h Make tpacket_req3 definition conditional 2014-02-10 14:31:02 +04:00
sk-queue.h crtools: move all stuff about vma together 2013-11-06 12:43:49 +04:00
sockets.h space-before-tab whitespace cleanup 2013-12-12 10:00:53 +04:00
stats.h stats: Fix restore pages stats 2014-02-04 14:03:10 +04:00
string.h string: Add strlcat helper 2013-11-29 15:36:07 +04:00
syscall-types.h syscalls: Add proper syscalls definition. 2013-07-01 16:19:21 +04:00
sysctl.h headers: Unify include guards (in comments) and a few fixes 2012-12-25 22:40:24 +04:00
tty.h crtools: don't include crtools.h in other headers 2013-11-06 18:17:38 +04:00
tun.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
unix_diag.h x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
util-pie.h headers: Drop uintX_t usage 2013-12-12 10:03:07 +04:00
util.h vma: Vma allocation helper is now function 2014-02-03 17:18:42 +04:00
uts_ns.h headers: Add extern specificator to functions 2013-11-15 17:00:58 +04:00
vdso.h vdso: Diet include/vdso.h 2013-06-13 19:41:09 +04:00
vma.h vma: Don't lookup file_desc for vma twice 2014-02-07 13:51:29 +04:00
xmalloc.h headers: util.h -- Move memory helpers to xmalloc.h 2013-04-02 21:15:27 +04:00