public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: Wei Gao <wegao@suse.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v7 1/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code
Date: Tue, 25 Mar 2025 15:00:18 +0100	[thread overview]
Message-ID: <20250325140018.GA448693@pevik> (raw)
In-Reply-To: <20250324120049.29270-2-wegao@suse.com>

Hi Wei,

...
> +++ b/testcases/kernel/mem/cpuset/cpuset02.c
> @@ -0,0 +1,132 @@
> +// SPDX-License-Identifier: LGPL-2.1-or-later
> +/*
> + * Copyright (c) 2025 SUSE LLC <wegao@suse.com>
> + */
> +
> +/*\
> + * Test checks cpuset.mems works with hugepage file.
> + * Based on test6 from cpuset_memory_testset.sh.

very nit: I would add the author name:

 * Based on test6 from cpuset_memory_testset.sh written by Miao Xie.

(We don't need to keep the copyright, but because we likely sooner or later
delete cpuset_memory_testset.sh it's nice to give the original author his credit
for his original idea.)

> + */
> +
> +#define _GNU_SOURCE
> +#include <stdio.h>
> +#include <sys/mount.h>
> +#include <limits.h>
> +#include <sys/param.h>
> +#include <sys/types.h>
> +#include "tst_test.h"
> +
> +#ifdef HAVE_NUMA_V2
> +#include <numa.h>
<numa.h> is not needed, please delete it.

> +#include <numaif.h>
> +#include <errno.h>
<errno.h> is not needed either, please delete it.

> +#include "tst_numa.h"
> +#include "tst_safe_stdio.h"
tst_safe_stdio.h is not needed either, please delete it.

> +#include "numa_helper.h"

numa_helper.h is not needed either, please delete it.

...
> +static void run_test(void)
> +{
> +	int pid;
> +	char node_id_str[256];
> +
> +	cg_cpuset_0 = tst_cg_group_mk(tst_cg, "0");
> +
> +	sprintf(node_id_str, "%u", check_node_id);
> +	SAFE_CG_PRINT(cg_cpuset_0, "cpuset.mems", node_id_str);
> +	SAFE_FILE_PRINTF("/proc/sys/vm/nr_hugepages", "%d", 1);

You changed the /proc/sys/vm/nr_hugepages to 1, because Cyril objected the code
in v6:

SAFE_FILE_PRINTF("/proc/sys/vm/nr_hugepages", "%d", 2 * node->cnt);

But as I note there [1], the original shell test did it this way and kernel docs
allows more than 1 to allocate. I'm obviously missing something.

[1] https://lore.kernel.org/ltp/20250325133611.GB372417@pevik/

> +
> +	pid = SAFE_FORK();
> +
> +	if (!pid) {
> +		SAFE_CG_PRINTF(cg_cpuset_0, "cgroup.procs", "%d", pid);
> +		child();
> +		return;
> +	}
> +
> +	SAFE_WAITPID(pid, NULL, 0);
> +
> +	cg_cpuset_0 = tst_cg_group_rm(cg_cpuset_0);
> +}
> +
> +static void setup(void)
> +{
> +	node = tst_get_nodemap(TST_NUMA_MEM, getpagesize() / 1024);
> +	if (node->cnt <= 1)
> +		tst_brk(TCONF, "test requires NUMA system");
This fails on system with single NUMA memory node. Either it should be compared as:
	if (node->cnt < 1)

or you're checking for 2 NUMA memory nodes (IMHO you want just single ATM.

Also maybe worth to change to "test requires at least one NUMA memory node" as
other tests do, you do have check for NUMA itsef anyway in
TST_TEST_TCONF(NUMA_ERROR_MSG).

> +
> +	check_node_id = node->map[0];
> +
> +	hpage_size = SAFE_READ_MEMINFO(MEMINFO_HPAGE_SIZE)*1024;
> +}
> +
> +static void cleanup(void)
> +{
> +	if (cg_cpuset_0)
> +		cg_cpuset_0 = tst_cg_group_rm(cg_cpuset_0);
> +}
> +
> +static struct tst_test test = {
> +	.needs_root = 1,
> +	.runs_script = 1,
> +	.mntpoint = MNTPOINT,
> +	.needs_hugetlbfs = 1,
> +	.setup = setup,
> +	.forks_child = 1,
> +	.cleanup = cleanup,
> +	.test_all = run_test,
> +	.hugepages = {3, TST_NEEDS},
> +	.needs_checkpoints = 1,
> +	.needs_cgroup_ver = TST_CG_V1,
> +	.needs_cgroup_ctrls = (const char *const []){ "cpuset", NULL },
> +	.save_restore = (const struct tst_path_val[]) {
> +		{"/proc/sys/vm/nr_hugepages", NULL, TST_SR_TBROK},
Shouldn't here be rather TST_SR_TCONF?

Thanks for the changelog, the rest of the changes LGTM.

Kind regards,
Petr

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

  reply	other threads:[~2025-03-25 14:00 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-01 10:40 [LTP] [PATCH v1] cpuset_memory_test.c: Use $TMPDIR as prefix for HUGEPAGE file path Wei Gao via ltp
2024-08-01 12:16 ` Petr Vorel
2024-08-01 12:20 ` Cyril Hrubis
2024-08-19  4:49 ` [LTP] [PATCH v2] cpuset02: Reimplementing the test6 of cpuset_memory_testset.sh as a separate C testcase Wei Gao via ltp
2024-09-26  6:19   ` [LTP] [PATCH v3] " Wei Gao via ltp
2024-09-27 10:30     ` Cyril Hrubis
2024-09-30 13:58     ` [LTP] [PATCH v4] " Wei Gao via ltp
2024-11-01 10:58       ` Petr Vorel
2024-11-05  5:30         ` Wei Gao via ltp
2024-11-05 11:44       ` Petr Vorel
2024-11-07  4:20         ` Wei Gao via ltp
2024-11-08  5:45         ` Wei Gao via ltp
2024-12-09  6:01       ` [LTP] [PATCH v5 0/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code Wei Gao via ltp
2024-12-09  6:01         ` [LTP] [PATCH v5 1/2] " Wei Gao via ltp
2025-02-27 16:02           ` Petr Vorel
2024-12-09  6:01         ` [LTP] [PATCH v5 2/2] cpuset_memory_testset.sh: Remove test6 Wei Gao via ltp
2025-02-27 16:04           ` Petr Vorel
2025-03-05  4:29             ` Wei Gao via ltp
2025-03-05  5:08         ` [LTP] [PATCH v6 0/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code Wei Gao via ltp
2025-03-05  5:08           ` [LTP] [PATCH v6 1/2] " Wei Gao via ltp
2025-03-06 18:35             ` Petr Vorel
2025-03-10 16:51             ` Cyril Hrubis
2025-03-25 13:36               ` Petr Vorel
2025-03-05  5:08           ` [LTP] [PATCH v6 2/2] cpuset_memory_testset.sh: Remove test6 Wei Gao via ltp
2025-03-06 18:32             ` Petr Vorel
2025-03-24 12:00           ` [LTP] [PATCH v7 0/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code Wei Gao via ltp
2025-03-24 12:00             ` [LTP] [PATCH v7 1/2] " Wei Gao via ltp
2025-03-25 14:00               ` Petr Vorel [this message]
2025-03-26  4:14                 ` Wei Gao via ltp
2025-03-26  7:38                   ` Li Wang via ltp
2025-03-26  8:26                     ` Li Wang via ltp
2025-03-26  9:11                     ` Wei Gao via ltp
2025-03-26 11:01                       ` Li Wang via ltp
2025-03-26  8:38                 ` Li Wang via ltp
2025-03-24 12:00             ` [LTP] [PATCH v7 2/2] cpuset_memory_testset.sh: Remove test6 Wei Gao via ltp
2025-03-24 15:32               ` Petr Vorel
2025-03-25  3:32                 ` Wei Gao via ltp
2025-03-25  3:54                   ` Wei Gao via ltp
2025-03-28  7:59             ` [LTP] [PATCH v8 0/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code Wei Gao via ltp
2025-03-28  7:59               ` [LTP] [PATCH v8 1/2] " Wei Gao via ltp
2025-03-28  9:35                 ` Li Wang via ltp
2025-03-28 10:20                   ` Petr Vorel
2025-03-28 10:57                     ` Li Wang via ltp
2025-03-28 11:04                       ` Li Wang via ltp
2025-03-28 11:47                       ` Petr Vorel
2025-03-28  7:59               ` [LTP] [PATCH v8 2/2] cpuset_memory_testset.sh: Remove test6 Wei Gao via ltp
2025-03-31  3:19               ` [LTP] [PATCH v9 0/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code Wei Gao via ltp
2025-03-31  3:19                 ` [LTP] [PATCH v9 1/2] " Wei Gao via ltp
2025-03-31  5:05                   ` Li Wang via ltp
2025-03-31  6:13                     ` Wei Gao via ltp
2025-03-31 10:25                     ` Petr Vorel
2025-03-31 10:37                   ` Petr Vorel
2025-03-31 11:05                     ` Li Wang via ltp
2025-03-31 11:30                     ` Wei Gao via ltp
2025-03-31  3:19                 ` [LTP] [PATCH v9 2/2] cpuset_memory_testset.sh: Remove test6 Wei Gao via ltp
2025-03-31  5:05                   ` Li Wang via ltp
2025-03-31 10:58                   ` Petr Vorel
2025-03-31 10:21                 ` [LTP] [PATCH v9 0/2] cpuset02: Convert the test6 from cpuset_memory_testset.sh to C code Petr Vorel
2025-03-31 13:25                 ` [LTP] [PATCH v10 " Wei Gao via ltp
2025-03-31 13:25                   ` [LTP] [PATCH v10 1/2] " Wei Gao via ltp
2025-04-01  9:58                     ` Li Wang via ltp
2025-03-31 13:25                   ` [LTP] [PATCH v10 2/2] cpuset_memory_testset.sh: Remove test6 Wei Gao via ltp

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=20250325140018.GA448693@pevik \
    --to=pvorel@suse.cz \
    --cc=ltp@lists.linux.it \
    --cc=wegao@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox