[CRIU] [PATCH] compel -- Use unsigned long for arguments

Cyrill Gorcunov gorcunov at gmail.com
Fri Aug 10 17:53:01 MSK 2018


When checkpointing applications with really big memory slab
(like in our vz7 test with 920G of memory) the int type get
cutted, we should use long int instead, just like we do in
other code pieces.

Otherwise get

 | pie: 756: Daemon waits for command
 | (01.193097) Wait for ack 12 on daemon socket
 | (01.193112) Fetched ack: 12 12 0
 | (01.193164) 988065 fdinfo 0: pos:                0 flags:           100002/0
 | (01.193201) fdinfo: type: 0xb flags: 0100002/0 pos:        0 fd: 0
 | (01.193279) 988065 fdinfo 1: pos:                0 flags:           100002/0
 | (01.193307) fdinfo: type: 0xb flags: 0100002/0 pos:        0 fd: 1
 | (01.193341) 988065 fdinfo 2: pos:                0 flags:           100002/0
 | (01.193365) fdinfo: type: 0xb flags: 0100002/0 pos:        0 fd: 2
 | (01.193375) ----------------------------------------
 | (01.193405) Error (criu/parasite-syscall.c:243): BUG at criu/parasite-syscall.c:243
 | pie: 756: Error (criu/pie/parasite.c:676): Trimmed message received (1>

Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
---
 compel/include/uapi/infect.h | 2 +-
 compel/src/lib/infect.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/compel/include/uapi/infect.h b/compel/include/uapi/infect.h
index f087f21f3..1da795074 100644
--- a/compel/include/uapi/infect.h
+++ b/compel/include/uapi/infect.h
@@ -56,7 +56,7 @@ extern int compel_cure(struct parasite_ctl *ctl);
 	})
 
 extern void *compel_parasite_args_p(struct parasite_ctl *ctl);
-extern void *compel_parasite_args_s(struct parasite_ctl *ctl, int args_size);
+extern void *compel_parasite_args_s(struct parasite_ctl *ctl, unsigned long args_size);
 
 extern int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 		unsigned long arg1,
diff --git a/compel/src/lib/infect.c b/compel/src/lib/infect.c
index d51b8aa88..8e39cf99e 100644
--- a/compel/src/lib/infect.c
+++ b/compel/src/lib/infect.c
@@ -1351,7 +1351,7 @@ void *compel_parasite_args_p(struct parasite_ctl *ctl)
 	return ctl->addr_args;
 }
 
-void *compel_parasite_args_s(struct parasite_ctl *ctl, int args_size)
+void *compel_parasite_args_s(struct parasite_ctl *ctl, unsigned long args_size)
 {
 	BUG_ON(args_size > ctl->args_size);
 	return compel_parasite_args_p(ctl);
-- 
2.14.4



More information about the CRIU mailing list