All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Palethorpe <rpalethorpe@suse.de>
To: Yang Xu <xuyang2018.jy@fujitsu.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v1 2/2] cgroup_core02: copy from kernel selftest test_cgcore_lesser_ns_open
Date: Mon, 28 Nov 2022 15:02:32 +0000	[thread overview]
Message-ID: <87cz97unlo.fsf@suse.de> (raw)
In-Reply-To: <1668580004-2088-2-git-send-email-xuyang2018.jy@fujitsu.com>

Hello,

Yang Xu <xuyang2018.jy@fujitsu.com> writes:

> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---
>  runtest/controllers                           |   1 +
>  .../kernel/controllers/cgroup/.gitignore      |   1 +
>  .../kernel/controllers/cgroup/cgroup_core02.c | 129 ++++++++++++++++++
>  3 files changed, 131 insertions(+)
>  create mode 100644 testcases/kernel/controllers/cgroup/cgroup_core02.c
>
> diff --git a/runtest/controllers b/runtest/controllers
> index 41f8367e4..8d1b936bf 100644
> --- a/runtest/controllers
> +++ b/runtest/controllers
> @@ -1,5 +1,6 @@
>  #DESCRIPTION:Resource Management testing
>  cgroup_core01	cgroup_core01
> +cgroup_core02	cgroup_core02
>  cgroup		cgroup_regression_test.sh
>  memcg_regression	memcg_regression_test.sh
>  memcg_test_3	memcg_test_3
> diff --git a/testcases/kernel/controllers/cgroup/.gitignore b/testcases/kernel/controllers/cgroup/.gitignore
> index 382f2d9f2..012aedcca 100644
> --- a/testcases/kernel/controllers/cgroup/.gitignore
> +++ b/testcases/kernel/controllers/cgroup/.gitignore
> @@ -2,3 +2,4 @@
>  /cgroup_regression_getdelays
>  /cgroup_regression_6_2
>  /cgroup_core01
> +/cgroup_core02
> diff --git a/testcases/kernel/controllers/cgroup/cgroup_core02.c b/testcases/kernel/controllers/cgroup/cgroup_core02.c
> new file mode 100644
> index 000000000..0dff71eea
> --- /dev/null
> +++ b/testcases/kernel/controllers/cgroup/cgroup_core02.c
> @@ -0,0 +1,129 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (c) 2022 FUJITSU LIMITED. All rights reserved.
> + * Author: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
> + */
> +
> +/*\
> + * [Description]
> + *
> + * When a task is writing to an fd opened by a different task, the perm check
> + * should use the cgroup namespace of the latter task.
> + *
> + * It is copy from kernel selftests cgroup test_core test_cgcore_lesser_ns_open
> + * subcase. Note that this case only runs on cgroup2 as cgroup1 doesn't have
> + * namespace support.
> + *
> + * It is a regression test for
> + *
> + * commit e57457641613fef0d147ede8bd6a3047df588b95
> + * Author: Tejun Heo <tj@kernel.org>
> + * Date:   Thu Jan 6 11:02:29 2022 -1000
> + *
> + * cgroup: Use open-time cgroup namespace for process migration perm checks
> + */
> +
> +#define _GNU_SOURCE
> +#include <sched.h>
> +#include <stdlib.h>
> +#include <stdio.h>
> +#include <sys/types.h>
> +#include <pwd.h>
> +#include "tst_test.h"
> +#include "tst_safe_file_at.h"
> +
> +static struct tst_cg_group *cg_child_a, *cg_child_b;
> +static uid_t nobody_uid;
> +
> +struct lesser_ns_open_thread_arg {
> +	int fds[TST_CG_ROOTS_MAX];
> +	int loops;
> +};
> +
> +static int lesser_ns_open_thread_fn(void *arg)
> +{
> +	struct lesser_ns_open_thread_arg *targ = arg;
> +
> +	targ->loops = SAFE_CG_OPEN(cg_child_b, "cgroup.procs", O_RDWR, targ->fds);
> +	return 0;
> +}
> +
> +static void test_lesser_ns_open(void)
> +{
> +	int i;
> +	static char stack[65536];
> +	pid_t pid;
> +	int status;
> +	struct lesser_ns_open_thread_arg targ = { .fds = {0}, .loops = -1};
> +
> +	cg_child_a = tst_cg_group_mk(tst_cg, "child_a");
> +	cg_child_b = tst_cg_group_mk(tst_cg, "child_b");
> +
> +	if (!SAFE_FORK()) {
> +		SAFE_CG_PRINT(cg_child_a, "cgroup.procs", "0");
> +		SAFE_CG_FCHOWN(cg_child_a, "cgroup.procs",  nobody_uid, -1);
> +		SAFE_CG_FCHOWN(cg_child_b, "cgroup.procs",  nobody_uid, -1);
> +		pid  = ltp_clone(CLONE_NEWCGROUP | CLONE_FILES | CLONE_VM | SIGCHLD,
> +					lesser_ns_open_thread_fn, &targ,
> 65536, stack);

FYI, I would like to replace this with tst_clone.

However merged, thanks!

-- 
Thank you,
Richard.

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  reply	other threads:[~2022-11-28 15:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-16  6:26 [LTP] [PATCH v1 1/2] cgroup_core01: Use correct linux tag Yang Xu
2022-11-16  6:26 ` [LTP] [PATCH v1 2/2] cgroup_core02: copy from kernel selftest test_cgcore_lesser_ns_open Yang Xu
2022-11-28 15:02   ` Richard Palethorpe [this message]
2022-11-28  5:42 ` [LTP] [PATCH v1 1/2] cgroup_core01: Use correct linux tag xuyang2018.jy
2022-11-28 14:45 ` Richard Palethorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cz97unlo.fsf@suse.de \
    --to=rpalethorpe@suse.de \
    --cc=ltp@lists.linux.it \
    --cc=xuyang2018.jy@fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.