[CRIU] [PATCH 1/2] ipc/sysctl: c/r fs.mqueue.msg_default fs.mqueue.msgsize_default

Pavel Emelyanov xemul at virtuozzo.com
Tue Jun 28 06:03:09 PDT 2016


On 06/24/2016 02:40 PM, Pavel Tikhomirov wrote:
> we already have 3/5 fs.mqueue.xxx sysctls so why not have all:
> 
> /proc/sys/fs/mqueue/msg_default is  a read/write  file for
> setting/getting the default number of messages in a queue value
> if attr parameter of mq_open(2) is NULL. If it exceed msg_max,
> the default value is initialized msg_max.
> 
> /proc/sys/fs/mqueue/msgsize_default is a read/write file for
> setting/getting the default message size value if attr parameter
> of mq_open(2) is NULL. If it exceed msgsize_max, the default
> value is initialized msgsize_max.
> 
> *We have these sysctls writable in VZ7 CT.

How about the upstream kernel?

> @@ -322,7 +324,14 @@ static int ipc_sysctl_req(IpcVarEntry *e, int op)
>  		return 0;
>  	}
>  
> -	return sysctl_op(req_mq, ARRAY_SIZE(req_mq), op, CLONE_NEWIPC);
> +	if (access("/proc/sys/fs/mqueue/msg_default", F_OK)) {
> +		/* In case the kernel is < v3.5 */

CRIU is not supposed to work in kernels prior to 3.11. Do we really need this check?

> +		pr_info("Mqueue msg_default and msgsize_default sysctls are missing\n");
> +		e->has_mq_msg_default = e->has_mq_msgsize_default = false;
> +	}
> +
> +	return sysctl_op(req_mq, ARRAY_SIZE(req_mq) - (e->has_mq_msg_default ? 0 : 2),
> +	                 op, CLONE_NEWIPC);
>  }
>  
>  /*



More information about the CRIU mailing list