From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D7B6C636CC for ; Mon, 13 Feb 2023 06:08:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 68F876B0073; Mon, 13 Feb 2023 01:08:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 63E1B6B0074; Mon, 13 Feb 2023 01:08:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 52E796B0075; Mon, 13 Feb 2023 01:08:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4461F6B0073 for ; Mon, 13 Feb 2023 01:08:33 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 19CEC804E2 for ; Mon, 13 Feb 2023 06:08:33 +0000 (UTC) X-FDA: 80461239306.11.91B5186 Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.216.63.40]) by imf18.hostedemail.com (Postfix) with ESMTP id BDFE21C0017 for ; Mon, 13 Feb 2023 06:08:29 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=zte.com.cn; spf=pass (imf18.hostedemail.com: domain of yang.yang29@zte.com.cn designates 63.216.63.40 as permitted sender) smtp.mailfrom=yang.yang29@zte.com.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676268511; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references; bh=k/dhs3X7iNfTtJjLNT9MnI3HWRfcBehlkoDScnR1mPQ=; b=XbaFLLb127hGFmidFbm3VQerQ/w3oTqykFFS5JRC+DeKMVAkgELDFwUgx9x7LDjbxqB7+5 L3K3r0i6NN2uJRAmw+CPwmm3nXiROx/ctnKumaziy8g9oHo8s/KiYgpozJt2YaFhHLJ8pj mCWicnEqja0KgaXzt+ZeG83jPSKhajI= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=zte.com.cn; spf=pass (imf18.hostedemail.com: domain of yang.yang29@zte.com.cn designates 63.216.63.40 as permitted sender) smtp.mailfrom=yang.yang29@zte.com.cn ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676268511; a=rsa-sha256; cv=none; b=WN1zF7PhWpoHqQYvVmy9PmEYtDAvL+NYLnUue8DoqIFx9Ubvco+hZqSCqOEyIQDOhyX9wT BVJknAN/rD3pIm3SN/BKoFK8fCfmiDgyeP9H0JIp6fXTeMg0ybKp7sdtL0+kJIVuMQCbxR eSyAIL2+dJ1EKG1SfRMj5i012t7vT1k= Received: from mse-fl2.zte.com.cn (unknown [10.5.228.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxhk.zte.com.cn (FangMail) with ESMTPS id 4PFYml4GX0z8R047; Mon, 13 Feb 2023 14:08:23 +0800 (CST) Received: from szxlzmapp04.zte.com.cn ([10.5.231.166]) by mse-fl2.zte.com.cn with SMTP id 31D6876v026860; Mon, 13 Feb 2023 14:08:07 +0800 (+08) (envelope-from yang.yang29@zte.com.cn) Received: from mapi (szxlzmapp01[null]) by mapi (Zmail) with MAPI id mid14; Mon, 13 Feb 2023 14:08:08 +0800 (CST) Date: Mon, 13 Feb 2023 14:08:08 +0800 (CST) X-Zmail-TransId: 2b0363e9d3c8ffffffff8d354e3d X-Mailer: Zmail v1.0 Message-ID: <202302131408087983857@zte.com.cn> Mime-Version: 1.0 From: To: , Cc: , , , , Subject: =?UTF-8?B?W1BBVENIIGxpbnV4LW5leHRdIGRlbGF5YWNjdDogaW1wcm92ZSB0aGUgYXZlcmFnZSBkZWxheSBwcmVjaXNpb24gb2YgZ2V0ZGVsYXkgdG9vbCB0byBtaWNyb3NlY29uZA==?= Content-Type: text/plain; charset="UTF-8" X-MAIL:mse-fl2.zte.com.cn 31D6876v026860 X-Fangmail-Gw-Spam-Type: 0 X-FangMail-Miltered: at cgslv5.04-192.168.250.137.novalocal with ID 63E9D3D7.002 by FangMail milter! X-FangMail-Envelope: 1676268503/4PFYml4GX0z8R047/63E9D3D7.002/10.5.228.133/[10.5.228.133]/mse-fl2.zte.com.cn/ X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 63E9D3D7.002/4PFYml4GX0z8R047 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: BDFE21C0017 X-Stat-Signature: 8815acauzucu67oguu5pdib76b84aeuj X-HE-Tag: 1676268509-74580 X-HE-Meta: U2FsdGVkX1+u7sRAQUBZRvF+fS7rl7NXQCiqQN5n/zbbrbzuA9lesK2y+b/v/t+7jRi+zs/bHKOdADmmKw9G2tIxZHNF3BXPU97kghfXeMcggiW3lmJxrnhb9NSf7L6VB4ACBpNPhES6RBJetgjG2l+9H/ITac2M8BWzJZhaW1gTeW1sQJgEEYh1N6Bs83JsjIgdpic9vzNGpD/diKlC59u9NPJwANi/RRKgXXC66AHw1Ezq81CDV9wDUlU5c5y3mBb5IxLMAyqkFkr3ZYn34bLQxUm2K8C527+rRXnsdguL3PD84Fs9pn4Zu/onAdz6gvesICOHe2tRFqY0KcKKU8IiGAMpYe9RzvBjSEzXK2PjCxA9UUreTwSApjb0L410+ELB6kajbpsmZo7UhgiFH87bRUSwz4cN+GuHa4b3Mi0cPcavpCIIpqZYXj57Olkjvx22Rw9Se6s6UzrK4TO+qoeGzGZwjOnP43FYivh9rXHOgx5VtkGfGI6Ur7IVvqW2Sl/BnYFS0QL+5w7fUD4J3FfTxD0juhLmc3Et0KNGZ+pgBRrPFn3okRbpPjiKI030fSqgsLZS8uX4Hrj1jaLETeS12PxFXJNgI7beDTrwOg4VLOuy+o3juDlUP4Y9kjsgdiESFBvU40oHUFmPSl4o1sgyofA9xpQeOdacfhxXKdCL9UeY8fFKfjwNy4H45e/TFR6c5tDMI74HlVBPZ8wrvv7lUMC3/eBYbD3kz/7Mrv4VbnQ38mZDpyxOVJErahU+IsNCZiiRiIoKn89PjSSm/148hfJpNSQdJaTFWA4H/KUGkztaAJQOP1+iYT+EfE0GgwyPpkz5InV2ZIM2lLn6TwVSAI4OdEnA/n2YXkmUQHrojo60qoFRH7vUMH8Sz9Ehrca/b0QsCxja4NoztPYPUI1GdTVH3wLFm/xdPMOSSBGFAgXRqyrDffYuMVoJa/VqJMRchU7m2cwZR5dBuDW fYzplFBU gC5hnOCzoGhDuNksJ3f+f7xe6rRrIQvjTeW45dyF0q90WoUd6vl2qOcxFGVtigvM/uR4SsZ1mh4DW9avuL0I4q0lyBOCdBQ01fTbAGxl0R8xoyraZRmGbedA9K7FxfpHf+OyLqmOSidf2eGh4GE3vrCGsn34g0bJh0jLJEdTxBDgGbUW/64WsAcLtRmBsBwyOjmrcII+hRjKh0sclA+ofxl1oYCjjjkEuzoptzA0YetanmhlxQm7rlmZ/6CEnjaequZa2jyLKVgK8MDNFs3V9Rg5yvA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Wang Yong Improve the average delay precision of getdelay tool to microsecond. When using the getdelay tool, it is sometimes found that the average delay except CPU is not 0, but display is 0, because the precison is too low. For example, see delay average of SWAP below when using ZRAM. print delayacct stats ON PID 32915 CPU count real total virtual total delay total delay average 339202 2793871936 9233585504 7951112 0.000ms IO count delay total delay average 41 419296904 10ms SWAP count delay total delay average 242589 1045792384 0ms This wrong display is misleading, so improve the millisecond precision of the average delay to microsecond just like CPU. Then user would get more accurate information of delay time. Signed-off-by: Wang Yong Reviewed-by: Yang Yang --- Documentation/accounting/delay-accounting.rst | 14 ++++++------- .../zh_CN/accounting/delay-accounting.rst | 14 ++++++------- tools/accounting/getdelays.c | 24 +++++++++++----------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Documentation/accounting/delay-accounting.rst b/Documentation/accounting/delay-accounting.rst index 7103b62ba6d7..c4ac482262f8 100644 --- a/Documentation/accounting/delay-accounting.rst +++ b/Documentation/accounting/delay-accounting.rst @@ -109,17 +109,17 @@ Get sum of delays, since system boot, for all pids with tgid 5:: CPU count real total virtual total delay total delay average 8 7000000 6872122 3382277 0.423ms IO count delay total delay average - 0 0 0ms + 0 0 0.000ms SWAP count delay total delay average - 0 0 0ms + 0 0 0.000ms RECLAIM count delay total delay average - 0 0 0ms + 0 0 0.000ms THRASHING count delay total delay average - 0 0 0ms + 0 0 0.000ms COMPACT count delay total delay average - 0 0 0ms - WPCOPY count delay total delay average - 0 0 0ms + 0 0 0.000ms + WPCOPY count delay total delay average + 0 0 0.000ms Get IO accounting for pid 1, it works only with -p:: diff --git a/Documentation/translations/zh_CN/accounting/delay-accounting.rst b/Documentation/translations/zh_CN/accounting/delay-accounting.rst index a01dc3d5b0db..3c952fde09ff 100644 --- a/Documentation/translations/zh_CN/accounting/delay-accounting.rst +++ b/Documentation/translations/zh_CN/accounting/delay-accounting.rst @@ -92,17 +92,17 @@ getdelays命令的一般格式:: CPU count real total virtual total delay total delay average 8 7000000 6872122 3382277 0.423ms IO count delay total delay average - 0 0 0ms + 0 0 0.000ms SWAP count delay total delay average - 0 0 0ms + 0 0 0.000ms RECLAIM count delay total delay average - 0 0 0ms + 0 0 0.000ms THRASHING count delay total delay average - 0 0 0ms + 0 0 0.000ms COMPACT count delay total delay average - 0 0 0ms - WPCOPY count delay total delay average - 0 0 0ms + 0 0 0.000ms + WPCOPY count delay total delay average + 0 0 0.000ms 获取pid为1的IO计数,它只和-p一起使用:: # ./getdelays -i -p 1 diff --git a/tools/accounting/getdelays.c b/tools/accounting/getdelays.c index 938dec0dfaad..89324db33be3 100644 --- a/tools/accounting/getdelays.c +++ b/tools/accounting/getdelays.c @@ -198,17 +198,17 @@ static void print_delayacct(struct taskstats *t) printf("\n\nCPU %15s%15s%15s%15s%15s\n" " %15llu%15llu%15llu%15llu%15.3fms\n" "IO %15s%15s%15s\n" - " %15llu%15llu%15llums\n" + " %15llu%15llu%15.3fms\n" "SWAP %15s%15s%15s\n" - " %15llu%15llu%15llums\n" + " %15llu%15llu%15.3fms\n" "RECLAIM %12s%15s%15s\n" - " %15llu%15llu%15llums\n" + " %15llu%15llu%15.3fms\n" "THRASHING%12s%15s%15s\n" - " %15llu%15llu%15llums\n" + " %15llu%15llu%15.3fms\n" "COMPACT %12s%15s%15s\n" - " %15llu%15llu%15llums\n" + " %15llu%15llu%15.3fms\n" "WPCOPY %12s%15s%15s\n" - " %15llu%15llu%15llums\n", + " %15llu%15llu%15.3fms\n", "count", "real total", "virtual total", "delay total", "delay average", (unsigned long long)t->cpu_count, @@ -219,27 +219,27 @@ static void print_delayacct(struct taskstats *t) "count", "delay total", "delay average", (unsigned long long)t->blkio_count, (unsigned long long)t->blkio_delay_total, - average_ms(t->blkio_delay_total, t->blkio_count), + average_ms((double)t->blkio_delay_total, t->blkio_count), "count", "delay total", "delay average", (unsigned long long)t->swapin_count, (unsigned long long)t->swapin_delay_total, - average_ms(t->swapin_delay_total, t->swapin_count), + average_ms((double)t->swapin_delay_total, t->swapin_count), "count", "delay total", "delay average", (unsigned long long)t->freepages_count, (unsigned long long)t->freepages_delay_total, - average_ms(t->freepages_delay_total, t->freepages_count), + average_ms((double)t->freepages_delay_total, t->freepages_count), "count", "delay total", "delay average", (unsigned long long)t->thrashing_count, (unsigned long long)t->thrashing_delay_total, - average_ms(t->thrashing_delay_total, t->thrashing_count), + average_ms((double)t->thrashing_delay_total, t->thrashing_count), "count", "delay total", "delay average", (unsigned long long)t->compact_count, (unsigned long long)t->compact_delay_total, - average_ms(t->compact_delay_total, t->compact_count), + average_ms((double)t->compact_delay_total, t->compact_count), "count", "delay total", "delay average", (unsigned long long)t->wpcopy_count, (unsigned long long)t->wpcopy_delay_total, - average_ms(t->wpcopy_delay_total, t->wpcopy_count)); + average_ms((double)t->wpcopy_delay_total, t->wpcopy_count)); } static void task_context_switch_counts(struct taskstats *t) -- 2.15.2