linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: cgel.zte@gmail.com, akpm@linux-foundation.org
Cc: bsingharora@gmail.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, Yang Yang <yang.yang29@zte.com.cn>,
	Ran Xiaokai <ran.xiaokai@zte.com.cn>
Subject: Re: [PATCH] delayacct: track delays from COW
Date: Wed, 23 Mar 2022 09:49:46 +0100	[thread overview]
Message-ID: <9f9ddbf7-797a-58d8-2903-beacb2698329@redhat.com> (raw)
In-Reply-To: <20220322110444.2340748-1-yang.yang29@zte.com.cn>

On 22.03.22 12:04, cgel.zte@gmail.com wrote:
> From: Yang Yang <yang.yang29@zte.com.cn>
> 
> Delay accounting does not track the delay of COW. When tasks trigger
> much COW, it may spend a amount of time waiting for it. To get the
> impact of tasks in COW, measure the delay when it happens. This
> could help users to do tunnings, such as decide whether to use
> ksm or not.
> 
> Also update tools/accounting/getdelays.c:
> 
>     / # ./getdelays -dl -p 231
>     print delayacct stats ON
>     listen forever
>     PID     231
> 
>     CPU             count     real total  virtual total    delay total  delay average
>                      6247     1859000000     2154070021     1674255063          0.268ms
>     IO              count    delay total  delay average
>                         0              0              0ms
>     SWAP            count    delay total  delay average
>                         0              0              0ms
>     RECLAIM         count    delay total  delay average
>                         0              0              0ms
>     THRASHING       count    delay total  delay average
>                         0              0              0ms
>     COMPACT         count    delay total  delay average
>                         3          72758              0ms
>     COW             count    delay total  delay average
>                      3635      271567604              0ms

You should also update Documentation/accounting/delay-accounting.rst
most probably.

Overall LGTM and this might be of value not only for KSM but for anybody
using fork(). There will be collisions with [1], especially [2], which I
want to get in -next early after we have v5.18-rc1 (after rebasing [1]
on top of this).

We'll have to decide if we want to also account hugetlb wp code
(hugetlb_cow), and if we want to account "unsharing" here as well under
cow (I tend to say that we want to for simplicity). For THP, we only
split and don't copy, so there isn't anything to account.

[1] https://lore.kernel.org/r/20220315104741.63071-1-david@redhat.com
[2] https://lore.kernel.org/r/20220315104741.63071-14-david@redhat.com

-- 
Thanks,

David / dhildenb



  reply	other threads:[~2022-03-23  8:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-22 11:04 cgel.zte
2022-03-23  8:49 ` David Hildenbrand [this message]
2022-03-23  9:05   ` CGEL
2022-04-06  7:37   ` CGEL
2022-04-08  7:31     ` David Hildenbrand

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=9f9ddbf7-797a-58d8-2903-beacb2698329@redhat.com \
    --to=david@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=bsingharora@gmail.com \
    --cc=cgel.zte@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ran.xiaokai@zte.com.cn \
    --cc=yang.yang29@zte.com.cn \
    /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