compel -- Use unsigned long for arguments

Submitted by Cyrill Gorcunov on Aug. 10, 2018, 2:53 p.m.

Details

Message ID 20180810145301.20460-1-gorcunov@gmail.com
State Accepted
Series "compel -- Use unsigned long for arguments"
Headers show

Commit Message

Cyrill Gorcunov Aug. 10, 2018, 2:53 p.m.
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@gmail.com>
---
 compel/include/uapi/infect.h | 2 +-
 compel/src/lib/infect.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

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);

Comments

Andrey Vagin Aug. 16, 2018, 10:46 p.m.
Applied, thanks

On Fri, Aug 10, 2018 at 05:53:01PM +0300, Cyrill Gorcunov wrote:
> 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@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
>
Andrey Vagin Aug. 16, 2018, 10:47 p.m.
Applied, thanks!

On Fri, Aug 10, 2018 at 05:53:01PM +0300, Cyrill Gorcunov wrote:
> 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@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
>