Re: [PATCH] delayacct: track delays from COW

From: CGEL
Date: Wed Apr 06 2022 - 07:13:09 EST


On Wed, Mar 23, 2022 at 09:49:46AM +0100, David Hildenbrand wrote:
> 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.
>
As for simplicity, what about account "PAGECOPY" instead of "COW"?
"PAGECOPY" include COW and unsharing. And we may also account hugetlb
wp in follow-up patches, based on this patch is sufficient reviewed.

> [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