[Devel] [PATCH VZ10 7/8] ve/cgroup: expose ve.mnt_nr cgroup file

Vasileios Almpanis vasileios.almpanis at virtuozzo.com
Thu Apr 30 11:19:54 MSK 2026


Reviewed-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>

On 4/29/26 3:41 PM, Pavel Tikhomirov wrote:
> Expose the existing per-ve atomic ve->mnt_nr counter as a read-only
> ve.mnt_nr cgroup file, alongside ve.netns_avail_nr.
>
> The counter is bumped/decremented by ve_mount_nr_inc/dec for every
> mount accounted to this ve; until now it was only readable from
> kernel space. Exposing it lets userspace and selftests observe per-ve
> mount accounting for diagnostics and regression coverage of
> clone(CLONE_NEWVE | CLONE_NEWNS) ownership wiring.
>
> https://virtuozzo.atlassian.net/browse/VSTOR-129744
> Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
> Feature: ve: ve generic structures
> ---
>   kernel/ve/ve.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
> index 106fc225c60d..198c82f010cc 100644
> --- a/kernel/ve/ve.c
> +++ b/kernel/ve/ve.c
> @@ -1276,6 +1276,11 @@ static u64 ve_netns_avail_nr_read(struct cgroup_subsys_state *css, struct cftype
>   	return atomic_read(&css_to_ve(css)->netns_avail_nr);
>   }
>   
> +static u64 ve_mnt_nr_read(struct cgroup_subsys_state *css, struct cftype *cft)
> +{
> +	return atomic_read(&css_to_ve(css)->mnt_nr);
> +}
> +
>   static u64 ve_netif_max_nr_read(struct cgroup_subsys_state *css, struct cftype *cft)
>   {
>   	return css_to_ve(css)->netif_max_nr;
> @@ -1762,6 +1767,10 @@ static struct cftype ve_cftypes[] = {
>   		.name			= "netns_avail_nr",
>   		.read_u64		= ve_netns_avail_nr_read,
>   	},
> +	{
> +		.name			= "mnt_nr",
> +		.read_u64		= ve_mnt_nr_read,
> +	},
>   	{
>   		.name			= "netif_max_nr",
>   		.flags			= CFTYPE_NOT_ON_ROOT,

-- 
Best regards, Vasileios Almpanis
Software Developer, Virtuozzo.



More information about the Devel mailing list