Re: [PATCH] delayacct: track delays from COW

From: David Hildenbrand
Date: Wed Mar 23 2022 - 04:49:59 EST


On 22.03.22 12:04, cgel.zte@xxxxxxxxx wrote:
> From: Yang Yang <yang.yang29@xxxxxxxxxx>
>
> 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@xxxxxxxxxx
[2] https://lore.kernel.org/r/20220315104741.63071-14-david@xxxxxxxxxx

--
Thanks,

David / dhildenb