From: Wei Gao via ltp <ltp@lists.linux.it>
To: Petr Vorel <pvorel@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v4] cpuset02: Reimplementing the test6 of cpuset_memory_testset.sh as a separate C testcase
Date: Tue, 5 Nov 2024 00:30:16 -0500 [thread overview]
Message-ID: <ZymtaEIKm/caa+z2@wegao> (raw)
In-Reply-To: <20241101105808.GD1145995@pevik>
On Fri, Nov 01, 2024 at 11:58:08AM +0100, Petr Vorel wrote:
> Hi Wei, Cyril,
>
> > "Reimplementing the test6 of cpuset_memory_testset.sh as a separate C testcase"
> This could be followed by removing test6 from cpuset_memory_testset.sh?
>
> The conversion itself from shell test test6 LGTM.
>
> I suppose the reason is that moving code to C improves stability of the test.
> But this would be nice to mention in the commit message. (Remember "what" versus
> "why" - often the reason for the change is more important that describing the
> change.)
>
> > index 8e41c0223..366d67ce9 100644
> > --- a/testcases/kernel/mem/cpuset/Makefile
> > +++ b/testcases/kernel/mem/cpuset/Makefile
> > @@ -19,6 +19,13 @@
>
> > top_srcdir ?= ../../../..
>
> > +LTPLIBS = numa
> > +
> > include $(top_srcdir)/include/mk/testcases.mk
> > include $(top_srcdir)/testcases/kernel/mem/include/libmem.mk
> > +
> > +LDLIBS += $(NUMA_LIBS)
> > +LDLIBS += $(top_srcdir)/testcases/kernel/controllers/cpuset/cpuset_lib/libcpu_set.a
> This is not enough, because there is no build dependency on libcpu_set.a.
>
> Other tests which depends on libcpu_set.a are in the subdirectories (e.g.
> testcases/kernel/controllers/cpuset/cpuset_hotplug_test/) and they use
> testcases/kernel/controllers/cpuset/Makefile.inc. Can you somehow use it?
>
> Maybe we should move cpuset_lib code to libs/ directory, when used elsewhere.
I have created another new patch for move lib code:
https://patchwork.ozlabs.org/project/ltp/patch/20241105052507.29630-1-wegao@suse.com/
>
> That would also help to avoid ugly includes like:
> > +#include "../../controllers/cpuset/cpuset_lib/cpuset.h"
>
> (This could be also improved with CFLAGS += -I../../controllers/cpuset/cpuset_lib/.)
>
>
> > +LTPLDLIBS = -lltpnuma
> > +
> > include $(top_srcdir)/include/mk/generic_leaf_target.mk
> > diff --git a/testcases/kernel/mem/cpuset/cpuset02.c b/testcases/kernel/mem/cpuset/cpuset02.c
> > new file mode 100644
> > index 000000000..a62c98b3f
> > --- /dev/null
> > +++ b/testcases/kernel/mem/cpuset/cpuset02.c
> > @@ -0,0 +1,140 @@
> > +// SPDX-License-Identifier: LGPL-2.1-or-later
> > +/*
> > + * Copyright (c) 2009 FUJITSU LIMITED Miao Xie <miaox@cn.fujitsu.com>
> > + * Copyright (c) 2023 SUSE LLC <wegao@suse.com>
> > + */
> > +
> > +/*\
> > + * [Description]
> > + *
> > + * This test check cpuset's mems work with hugepage file.
> Maybe: Test checks cpuset.mems works with hugepage file.
>
> > + *
> Please remove the blank line above ^.
> > + */
> ...
>
> > +static void count_cpus_mems(void)
> > +{
> > + node = tst_get_nodemap(TST_NUMA_MEM, PAGES_ALLOCATED * getpagesize() / 1024);
> > + if (node->cnt <= 1)
> > + tst_brk(TCONF, "test requires NUMA system");
> > +}
> nit: Function used only once, I would move the code into setup().
>
> Later (separate effort), this function (with size parameter) could be in
> libs/numa/tst_numa.c, because it's used in many tests, or even added into struct
> tst_test.
>
> > +static void run_test(void)
> > +{
> ...
> > + pid = SAFE_FORK();
> > + if (!pid) {
> > + child();
> > + } else {
> > + SAFE_CG_PRINTF(cg_cpuset_0, "cgroup.procs", "%d", pid);
> > +
> > + TST_CHECKPOINT_WAKE(0);
> > + TST_CHECKPOINT_WAIT(1);
> > +
> > + SAFE_WAITPID(pid, NULL, 0);
> > +
> > + cg_cpuset_0 = tst_cg_group_rm(cg_cpuset_0);
> > + }
>
> Very nit: IMHO saving indent would be more readable:
>
> if (!pid) {
> child();
> return; // or call exit() in child() and no return here.
> }
>
> SAFE_CG_PRINTF(cg_cpuset_0, "cgroup.procs", "%d", pid);
>
> TST_CHECKPOINT_WAKE(0);
> TST_CHECKPOINT_WAIT(1);
>
> SAFE_WAITPID(pid, NULL, 0);
>
> cg_cpuset_0 = tst_cg_group_rm(cg_cpuset_0);
>
> Kind regards,
> Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2024-11-05 5:30 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 [this message]
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
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=ZymtaEIKm/caa+z2@wegao \
--to=ltp@lists.linux.it \
--cc=pvorel@suse.cz \
--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 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.