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