[CRIU] [PATCH] criu: cgroup -- Don't use PAGE_SIZE inside parasite args

Tycho Andersen tycho.andersen at canonical.com
Thu Feb 25 07:43:29 PST 2016


On Thu, Feb 25, 2016 at 10:18:30AM +0300, Cyrill Gorcunov wrote:
> This cause problem on ppc64
> 
>  | gcc -c -O2 -g -Wall -Werror -DCONFIG_PPC64 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
>  | -fno-strict-aliasing -iquote /home/cyrill/criu/criu/include -iquote /home/cyrill/criu/images
>  | -iquote /home/cyrill/criu/criu/pie -iquote /home/cyrill/criu/criu/arch/ppc64
>  | -iquote /home/cyrill/criu/criu/arch/ppc64/include -iquote /home/cyrill/criu/ -I/usr/include/libnl3
>  | -iquote ppc64 -DCONFIG_PPC64 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE parasite-syscall.c -o parasite-syscall.o
>  | parasite-syscall.c: In function ‘parasite_dump_cgroup’:
>  | parasite-syscall.c:1283:2: error: size of unnamed array is negative
>  |   ca = parasite_args(ctl, struct parasite_dump_cgroup_args);
>  |   ^
>  | /home/cyrill/criu/scripts/nmk/scripts/rules.mk:53: recipe for target 'parasite-syscall.o' failed
> 
> Just use size parasite known to support.
> 
> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>

Acked-by: Tycho Andersen <tycho.andersen at canonical.com>

Just for my own education, I thought we always transferred PAGE_SIZE
number of bytes across for the parasite blob args. If PAGE_SIZE <
PARASITE_ARG_SIZE_MIN, how does that work?

Tycho

> ---
>  criu/include/parasite.h | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/criu/include/parasite.h b/criu/include/parasite.h
> index e3383d802d78..6ca56f7c36e4 100644
> --- a/criu/include/parasite.h
> +++ b/criu/include/parasite.h
> @@ -247,13 +247,12 @@ struct parasite_tty_args {
>  };
>  
>  struct parasite_dump_cgroup_args {
> -	/* We choose PAGE_SIZE here since that's how big parasite messages are,
> -	 * although this is probably longer than any /proc/pid/cgroup file will
> -	 * ever be on most systems (4k).
> +	/*
> +	 * 4K should be enough for most cases.
>  	 *
>  	 * The string is null terminated.
>  	 */
> -	char contents[PAGE_SIZE];
> +	char contents[PARASITE_ARG_SIZE_MIN];
>  };
>  
>  /* the parasite prefix is added by gen_offsets.sh */
> -- 
> 2.5.0
> 


More information about the CRIU mailing list