Linux Test Project
 help / color / mirror / Atom feed
From: Richard Palethorpe <rpalethorpe@suse.de>
To: Li Wang <liwang@redhat.com>
Cc: LTP List <ltp@lists.linux.it>
Subject: Re: [LTP] [PATCH 3/3] memcontrol04: Copy from kselftest
Date: Mon, 14 Feb 2022 05:40:19 +0000	[thread overview]
Message-ID: <871r06kmlq.fsf@suse.de> (raw)
In-Reply-To: <CAEemH2fgDbmPLAQBOFD-6Q1N66XWV_NZCWWx2CEfP9=KFNh-xA@mail.gmail.com>

Hello Li,

Li Wang <liwang@redhat.com> writes:

> On Thu, Feb 10, 2022 at 2:23 PM Li Wang <liwang@redhat.com> wrote:
>
>  On Wed, Feb 9, 2022 at 7:05 PM Li Wang <liwang@redhat.com> wrote:
>   
>  Btw, there are some TFAILs from my manual run. 
>  (I will look into that try to figure it out tomorrow)
>
>  tst_test.c:1521: TINFO: Testing on ext4
>  tst_test.c:996: TINFO: Formatting /dev/loop0 with ext4 opts='' extra opts=''
>  mke2fs 1.46.5 (30-Dec-2021)
>  tst_test.c:1452: TINFO: Timeout per run is 0h 05m 00s
>  memcontrol04.c:118: TINFO: Child 242775 in leaf_C: Allocating pagecache: 52428800
>  memcontrol04.c:118: TINFO: Child 242776 in leaf_D: Allocating pagecache: 52428800
>  memcontrol04.c:118: TINFO: Child 242777 in leaf_F: Allocating pagecache: 52428800
>  memcontrol04.c:99: TINFO: Child 242778 in trunk_G: Allocating anon: 155189248
>  memcontrol04.c:170: TPASS: Expect: (A/B memory.current=54181888) ~= 52428800
>  memcontrol04.c:176: TPASS: Expect: (A/B/C memory.current=30957568) ~= 34603008
>  memcontrol04.c:178: TPASS: Expect: (A/B/D memory.current=22282240) ~= 17825792
>  memcontrol04.c:180: TPASS: Expect: (A/B/E memory.current=0) ~= 0
>  memcontrol04.c:99: TINFO: Child 242779 in trunk_G: Allocating anon: 174063616
>  memcontrol04.c:193: TPASS: Expect: (oom events=0) == 0
>  memcontrol04.c:196: TPASS: Expect: (low events=373) > 0
>  memcontrol04.c:193: TPASS: Expect: (oom events=0) == 0
>  memcontrol04.c:196: TPASS: Expect: (low events=373) > 0
>  memcontrol04.c:193: TPASS: Expect: (oom events=0) == 0
>  memcontrol04.c:198: TPASS: Expect: (low events=0) == 0
>  memcontrol04.c:193: TPASS: Expect: (oom events=0) == 0
>  memcontrol04.c:198: TFAIL: Expect: (low events=370) == 0
>
>  It looks like a logic issue here, as we do alloc_pagecache 50MB
>  respectively in the leaf_cg[C, D, E, F] and only the 'memory.low'
>
> My apologies, the leaf_cg[E] does not have 50MB page cache
> allocating, that is the main reason with no memory reclaims happening.
> '500MB' low boundary obviously overcommitment, so leaf_cg[E] will
> get the part of parent’s protection proportional to its actual memory
> usage. However, it doesn't matter for this case, leaf_cg[E] can get
> no event grows as well. Because it has no memory consumption at all.

leaf_cg[F]'s memory.low == 0. So how can it have reclaim events where
memory.current < memory.low?

Testing on the upstream kernel there are no low events in F.

>
> The fix is still effective unless I misread something again:).
>
>  
>  of leaf_cg[E] is large enough (500MB) to avoid triggering low event.
>  The rest cgroups should all have low events, that kernel behavior
>  is correct.
>
>  This failure should be fix with:
>
>  --- a/testcases/kernel/controllers/memcg/memcontrol04.c
>  +++ b/testcases/kernel/controllers/memcg/memcontrol04.c
>  @@ -192,7 +192,7 @@ static void test_memcg_low(void)
>   
>                  TST_EXP_EXPR(oom == 0, "(oom events=%ld) == 0", oom);
>   
>  -               if (i < E)
>  +               if (i != E)
>                          TST_EXP_EXPR(low > 0, "(low events=%ld) > 0", low)
>                  else
>                          TST_EXP_EXPR(low == 0, "(low events=%ld) ==
>  0", low);

Note that I am just copying the original test. AFAICT the original did
not expect there to be low events in F.

>
>  And better to add "leaf_cg%d" print in the output:
>  (to show the events from which cgroup)
>
>      TST_EXP_EXPR(oom == 0, "(leaf_cg%d: oom events=%ld) == 0", i, oom);
>
>      if (i != E)
>              TST_EXP_EXPR(low > 0, "(leaf_cg%d: low events=%ld) > 0", i,  low)
>      else
>               TST_EXP_EXPR(low == 0, "(leaf_cg%d: low events=%ld) ==
>      0", i, low);

+1, thanks!

>
>  -- 
>  Regards,
>  Li Wang


-- 
Thank you,
Richard.

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

  reply	other threads:[~2022-02-14  6:07 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-08 14:03 [LTP] [PATCH 0/3] memcontrol04 and s/cgroup/cg/ Richard Palethorpe via ltp
2022-02-08 14:03 ` [LTP] [PATCH 1/3] API/cgroup: Add memory.{events, low} Richard Palethorpe via ltp
2022-02-16 15:27   ` Cyril Hrubis
2022-02-17  3:14   ` Li Wang
2022-02-08 14:03 ` [LTP] [PATCH 2/3] API/cgroup: Shorten cgroup to cg in most symbols Richard Palethorpe via ltp
2022-02-09  4:51   ` Li Wang
2022-02-10  7:32     ` Richard Palethorpe
2022-02-16 15:26     ` Cyril Hrubis
2022-02-17  3:13       ` Li Wang
2022-02-17  5:37         ` Richard Palethorpe
2022-02-08 14:03 ` [LTP] [PATCH 3/3] memcontrol04: Copy from kselftest Richard Palethorpe via ltp
2022-02-09 10:47   ` Li Wang
2022-02-10  7:34     ` Richard Palethorpe
2022-02-09 11:05   ` Li Wang
2022-02-10  6:23     ` Li Wang
2022-02-10  7:12       ` Li Wang
2022-02-14  5:40         ` Richard Palethorpe [this message]
2022-02-16 10:13           ` Li Wang
2022-02-17  4:35             ` 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=871r06kmlq.fsf@suse.de \
    --to=rpalethorpe@suse.de \
    --cc=liwang@redhat.com \
    --cc=ltp@lists.linux.it \
    /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