* [LTP] [PATCH] mem/oom: do cleanup work for oom0{3,4,5}
@ 2016-01-29 13:36 Li Wang
2016-02-17 1:51 ` Li Wang
0 siblings, 1 reply; 3+ messages in thread
From: Li Wang @ 2016-01-29 13:36 UTC (permalink / raw)
To: ltp
oom03 should not test on aarch64 system which does not support NUMA, so I add
the function to make sure it could be skiped.
-----
# ./oom03
oom03 0 TINFO : set overcommit_memory to 1
...
oom03 0 TINFO : expected victim is 29154.
oom03 6 TPASS : victim signalled: (9) SIGKILL
oom03 7 TCONF : numa_helper.c:86: syscall(236) __NR_get_mempolicy not supported on your arch
oom03 8 TCONF : numa_helper.c:86: Remaining cases not appropriate for configuration
oom0{4,5} get fails on aarch64 system if run it in continuous twice(the
first time skiped with TCONF, then the second time it will be failed).
-----
# ./oom05
oom05 0 TINFO : set overcommit_memory to 1
oom05 1 TCONF : numa_helper.c:86: syscall(236) __NR_get_mempolicy not supported on your arch
oom05 2 TCONF : numa_helper.c:86: Remaining cases not appropriate for configuration
# ./oom05
oom05 0 TINFO : set overcommit_memory to 1
oom05 1 TBROK : mem.c:997: mkdir /dev/cgroup: errno=EEXIST(17): File exists
oom05 2 TBROK : mem.c:997: Remaining cases broken
oom05 0 TINFO : set overcommit_memory to 1
the reason is that it doesn't pass the cleanup to the tst_brkm() there.
Signed-off-by: Li Wang <liwang@redhat.com>
-----
---
testcases/kernel/mem/oom/oom03.c | 3 +++
testcases/kernel/mem/oom/oom04.c | 2 +-
testcases/kernel/mem/oom/oom05.c | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/mem/oom/oom03.c b/testcases/kernel/mem/oom/oom03.c
index 3afc3de..eabaeb9 100644
--- a/testcases/kernel/mem/oom/oom03.c
+++ b/testcases/kernel/mem/oom/oom03.c
@@ -94,6 +94,9 @@ void setup(void)
tst_sig(FORK, DEF_HANDLER, cleanup);
TEST_PAUSE;
+ if (!is_numa(NULL))
+ tst_brkm(TCONF, NULL, "The case need a NUMA system.");
+
overcommit = get_sys_tune("overcommit_memory");
set_sys_tune("overcommit_memory", 1, 1);
mount_mem("memcg", "cgroup", "memory", MEMCG_PATH, MEMCG_PATH_NEW);
diff --git a/testcases/kernel/mem/oom/oom04.c b/testcases/kernel/mem/oom/oom04.c
index ffb5503..0a315e1 100644
--- a/testcases/kernel/mem/oom/oom04.c
+++ b/testcases/kernel/mem/oom/oom04.c
@@ -100,7 +100,7 @@ void setup(void)
*/
ret = get_allowed_nodes(NH_MEMS, 1, &memnode);
if (ret < 0)
- tst_brkm(TBROK, NULL, "Failed to get a memory node "
+ tst_brkm(TBROK, cleanup, "Failed to get a memory node "
"using get_allowed_nodes()");
write_cpusets(memnode);
}
diff --git a/testcases/kernel/mem/oom/oom05.c b/testcases/kernel/mem/oom/oom05.c
index 9cd49a7..44a243e 100644
--- a/testcases/kernel/mem/oom/oom05.c
+++ b/testcases/kernel/mem/oom/oom05.c
@@ -125,7 +125,7 @@ void setup(void)
*/
ret = get_allowed_nodes(NH_MEMS, 1, &memnode);
if (ret < 0)
- tst_brkm(TBROK, NULL, "Failed to get a memory node "
+ tst_brkm(TBROK, cleanup, "Failed to get a memory node "
"using get_allowed_nodes()");
write_cpusets(memnode);
}
--
1.9.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [LTP] [PATCH] mem/oom: do cleanup work for oom0{3,4,5}
2016-01-29 13:36 [LTP] [PATCH] mem/oom: do cleanup work for oom0{3,4,5} Li Wang
@ 2016-02-17 1:51 ` Li Wang
2016-02-19 12:18 ` Jan Stancek
0 siblings, 1 reply; 3+ messages in thread
From: Li Wang @ 2016-02-17 1:51 UTC (permalink / raw)
To: ltp
sorry, ping~
On Fri, Jan 29, 2016 at 9:36 PM, Li Wang <liwang@redhat.com> wrote:
> oom03 should not test on aarch64 system which does not support NUMA, so I
> add
> the function to make sure it could be skiped.
> -----
> # ./oom03
> oom03 0 TINFO : set overcommit_memory to 1
> ...
> oom03 0 TINFO : expected victim is 29154.
> oom03 6 TPASS : victim signalled: (9) SIGKILL
> oom03 7 TCONF : numa_helper.c:86: syscall(236)
> __NR_get_mempolicy not supported on your arch
> oom03 8 TCONF : numa_helper.c:86: Remaining cases not
> appropriate for configuration
>
> oom0{4,5} get fails on aarch64 system if run it in continuous twice(the
> first time skiped with TCONF, then the second time it will be failed).
> -----
> # ./oom05
> oom05 0 TINFO : set overcommit_memory to 1
> oom05 1 TCONF : numa_helper.c:86: syscall(236)
> __NR_get_mempolicy not supported on your arch
> oom05 2 TCONF : numa_helper.c:86: Remaining cases not
> appropriate for configuration
>
> # ./oom05
> oom05 0 TINFO : set overcommit_memory to 1
> oom05 1 TBROK : mem.c:997: mkdir /dev/cgroup: errno=EEXIST(17):
> File exists
> oom05 2 TBROK : mem.c:997: Remaining cases broken
> oom05 0 TINFO : set overcommit_memory to 1
>
> the reason is that it doesn't pass the cleanup to the tst_brkm() there.
>
> Signed-off-by: Li Wang <liwang@redhat.com>
> -----
> ---
> testcases/kernel/mem/oom/oom03.c | 3 +++
> testcases/kernel/mem/oom/oom04.c | 2 +-
> testcases/kernel/mem/oom/oom05.c | 2 +-
> 3 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/mem/oom/oom03.c
> b/testcases/kernel/mem/oom/oom03.c
> index 3afc3de..eabaeb9 100644
> --- a/testcases/kernel/mem/oom/oom03.c
> +++ b/testcases/kernel/mem/oom/oom03.c
> @@ -94,6 +94,9 @@ void setup(void)
> tst_sig(FORK, DEF_HANDLER, cleanup);
> TEST_PAUSE;
>
> + if (!is_numa(NULL))
> + tst_brkm(TCONF, NULL, "The case need a NUMA system.");
> +
> overcommit = get_sys_tune("overcommit_memory");
> set_sys_tune("overcommit_memory", 1, 1);
> mount_mem("memcg", "cgroup", "memory", MEMCG_PATH, MEMCG_PATH_NEW);
> diff --git a/testcases/kernel/mem/oom/oom04.c
> b/testcases/kernel/mem/oom/oom04.c
> index ffb5503..0a315e1 100644
> --- a/testcases/kernel/mem/oom/oom04.c
> +++ b/testcases/kernel/mem/oom/oom04.c
> @@ -100,7 +100,7 @@ void setup(void)
> */
> ret = get_allowed_nodes(NH_MEMS, 1, &memnode);
> if (ret < 0)
> - tst_brkm(TBROK, NULL, "Failed to get a memory node "
> + tst_brkm(TBROK, cleanup, "Failed to get a memory node "
> "using get_allowed_nodes()");
> write_cpusets(memnode);
> }
> diff --git a/testcases/kernel/mem/oom/oom05.c
> b/testcases/kernel/mem/oom/oom05.c
> index 9cd49a7..44a243e 100644
> --- a/testcases/kernel/mem/oom/oom05.c
> +++ b/testcases/kernel/mem/oom/oom05.c
> @@ -125,7 +125,7 @@ void setup(void)
> */
> ret = get_allowed_nodes(NH_MEMS, 1, &memnode);
> if (ret < 0)
> - tst_brkm(TBROK, NULL, "Failed to get a memory node "
> + tst_brkm(TBROK, cleanup, "Failed to get a memory node "
> "using get_allowed_nodes()");
> write_cpusets(memnode);
> }
> --
> 1.9.3
>
>
> --
> Mailing list info: http://lists.linux.it/listinfo/ltp
>
--
Regards,
Li Wang
Email: liwang@redhat.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20160217/b5ca4fd8/attachment.html>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [LTP] [PATCH] mem/oom: do cleanup work for oom0{3,4,5}
2016-02-17 1:51 ` Li Wang
@ 2016-02-19 12:18 ` Jan Stancek
0 siblings, 0 replies; 3+ messages in thread
From: Jan Stancek @ 2016-02-19 12:18 UTC (permalink / raw)
To: ltp
----- Original Message -----
> From: "Li Wang" <liwang@redhat.com>
> To: ltp@lists.linux.it
> Sent: Wednesday, 17 February, 2016 2:51:09 AM
> Subject: Re: [LTP] [PATCH] mem/oom: do cleanup work for oom0{3,4,5}
>
> sorry, ping~
>
> On Fri, Jan 29, 2016 at 9:36 PM, Li Wang < liwang@redhat.com > wrote:
>
>
> oom03 should not test on aarch64 system which does not support NUMA, so I add
> the function to make sure it could be skiped.
> -----
> # ./oom03
> oom03 0 TINFO : set overcommit_memory to 1
> ...
> oom03 0 TINFO : expected victim is 29154.
> oom03 6 TPASS : victim signalled: (9) SIGKILL
> oom03 7 TCONF : numa_helper.c:86: syscall(236) __NR_get_mempolicy not
> supported on your arch
> oom03 8 TCONF : numa_helper.c:86: Remaining cases not appropriate for
> configuration
>
> oom0{4,5} get fails on aarch64 system if run it in continuous twice(the
> first time skiped with TCONF, then the second time it will be failed).
> -----
> # ./oom05
> oom05 0 TINFO : set overcommit_memory to 1
> oom05 1 TCONF : numa_helper.c:86: syscall(236) __NR_get_mempolicy not
> supported on your arch
> oom05 2 TCONF : numa_helper.c:86: Remaining cases not appropriate for
> configuration
>
> # ./oom05
> oom05 0 TINFO : set overcommit_memory to 1
> oom05 1 TBROK : mem.c:997: mkdir /dev/cgroup: errno=EEXIST(17): File exists
> oom05 2 TBROK : mem.c:997: Remaining cases broken
> oom05 0 TINFO : set overcommit_memory to 1
>
> the reason is that it doesn't pass the cleanup to the tst_brkm() there.
>
> Signed-off-by: Li Wang < liwang@redhat.com >
Li,
I pushed the part for oom04 and oom05.
As for oom03 changes, these should go in separately, because
it's not about cleanup.
Can you explain why first testoom() call on line 65 can't run on
aarch64? There doesn't seem to be anything NUMA specific.
It seems to me your problem is that is_numa() causes TCONF, which
it shouldn't. So, I'm thinking we should fix that:
diff --git a/testcases/kernel/lib/numa_helper.c b/testcases/kernel/lib/numa_helper.c
index 0074180991ec..91214fcd85d9 100644
--- a/testcases/kernel/lib/numa_helper.c
+++ b/testcases/kernel/lib/numa_helper.c
@@ -76,14 +76,22 @@ static int filter_nodemask_mem(nodemask_t * nodemask, unsigned long max_node)
{
#if MPOL_F_MEMS_ALLOWED
unsigned long nodemask_size = max_node / 8;
+ int ret;
+
memset(nodemask, 0, nodemask_size);
/*
* avoid numa_get_mems_allowed(), because of bug in getpol()
* utility function in older versions:
* http://www.spinics.net/lists/linux-numa/msg00849.html
*/
- if (ltp_syscall(__NR_get_mempolicy, NULL, nodemask->n,
- max_node, 0, MPOL_F_MEMS_ALLOWED) < 0)
+ ret = syscall(__NR_get_mempolicy, NULL, nodemask->n,
+ max_node, 0, MPOL_F_MEMS_ALLOWED);
+ /*
+ * If we don't have __NR_get_mempolicy assume we can use all
+ * present nodes. It is likely this is a system, that doesn't
+ * support NUMA and there's just 1 node.
+ */
+ if (ret < 0 && errno != ENOSYS)
return -2;
#else
int i;
I'll look into trying this patch on aarch64 with oom03.
Regards,
Jan
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-02-19 12:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-29 13:36 [LTP] [PATCH] mem/oom: do cleanup work for oom0{3,4,5} Li Wang
2016-02-17 1:51 ` Li Wang
2016-02-19 12:18 ` Jan Stancek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox