From patchwork Fri Oct 13 19:03:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Audra Mitchell X-Patchwork-Id: 13421589 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 0C97BCDB47E for ; Fri, 13 Oct 2023 19:05:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8564380065; Fri, 13 Oct 2023 15:05:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 803978D0015; Fri, 13 Oct 2023 15:05:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 62F6D80065; Fri, 13 Oct 2023 15:05:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 510008D0015 for ; Fri, 13 Oct 2023 15:05:23 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 20E28B516C for ; Fri, 13 Oct 2023 19:05:23 +0000 (UTC) X-FDA: 81341366526.13.A5A544E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf02.hostedemail.com (Postfix) with ESMTP id 7996680180 for ; Fri, 13 Oct 2023 19:04:24 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=GsgjDMLz; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf02.hostedemail.com: domain of audra@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=audra@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697223864; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=IjtK2o/m5KP3/dyNmmPPz1m7WWyth7vyB+quu5YHBuU=; b=3aXsGljR//VlrSefrtCtnVAIGMrf4JIRL1Ls5G3bMCzNdORpKxT6WurYH0eOTyYuHuBEQy y6Iwuqb8s9TXf5194PQwh4R7c+AERsYmwEavxPwBPv8zkXgmuxN8X7Odfr2DDKjR30LLkm Q6/Z3y9XbQAp8mMYWQFHmA0c45bgJdg= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=GsgjDMLz; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf02.hostedemail.com: domain of audra@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=audra@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697223864; a=rsa-sha256; cv=none; b=XP0rFpCLbimKbP5GsRC2YCTHuqPuNxf/D8ReThRT+EDcsi3DKIxU2iybyFHBBxxX8c3NHS lHO7bB5JwMLQ9oOrK9KAiss45nEX7XsTAJUoNJafp3vFferwSMUNOETG0zjy1tfJdCvXzU hRATZ4QPTu3g3AD3BZl5BorCKsz32bo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697223863; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IjtK2o/m5KP3/dyNmmPPz1m7WWyth7vyB+quu5YHBuU=; b=GsgjDMLzHMEvp//qbY1zeLV+JpL9o7cJybvXQcs7RDK8dasBJyPTr2FWbPW2bs5RksB9e0 ucWdK0QhzaR3chGlwmNeaoZ6+jnzTukgp823KrRRCJZWU5hp3p0neeJ2UtEFU2eAIbeAsE 9vE9BYwu690Q8a4J98W6TCGEeAn8alI= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-68-1r44kpejO3C42J4SMTd1YA-1; Fri, 13 Oct 2023 15:04:06 -0400 X-MC-Unique: 1r44kpejO3C42J4SMTd1YA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E803382A68B; Fri, 13 Oct 2023 19:04:05 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.33.110]) by smtp.corp.redhat.com (Postfix) with ESMTP id AD86B2157F5A; Fri, 13 Oct 2023 19:04:05 +0000 (UTC) From: Audra Mitchell To: linux-mm@kvack.org Cc: raquini@redhat.com, akpm@linux-foundation.org, djakov@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] mm/page_owner: Remove free_ts from page_owner output Date: Fri, 13 Oct 2023 15:03:45 -0400 Message-ID: <20231013190350.579407-2-audra@redhat.com> In-Reply-To: <20231013190350.579407-1-audra@redhat.com> References: <20231013190350.579407-1-audra@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Rspam-User: X-Stat-Signature: 3e4onpuduys7mwun679bmie4mqebzxjz X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7996680180 X-HE-Tag: 1697223864-440351 X-HE-Meta: U2FsdGVkX199jFTOLYudyG0vd4TTbsQGqe6ght38khHPYLsWbMrj03AnXAG1n6NnDth9StdWWahTixHVDHy1y5Ru39M1IATrOxhyz6FHv2eZpV8R2KuiMElL1vnqUz6V4fouUt3UNUmJZQ4fBjz+WM+NEe/SI23XanOAkA/3UzvHVP/nb8gcWVR2qYHc6jZmDuWS45G8oVAfnPK54u5TEYUK6t2DW+H1NiBmxKTa9Q0KObISNwcgiVgaXW167asG80DQuZPFihQ+yM9Afhz/3f7MxCUpNFkhJiBeXp4PSGJK4RQc0fuIko2ZOw3hhCm4o4q6AN3yeWnHzi4PJjYW35LY2CuluBdRoH+O+FyeyqD0PaCdddXw2V+2FDGUi7Hvp9mKkNkcSbIWeBNOg3Lyz/NQsSN/9OY1yyetOk6YfSPfj5mbxzR4lrq+fFYdQeQ87sYSUEwSjqXJYdgLBYL5hGi3hkEmOgAsgWMYO344ycuhgOqmPrvsutl2SS6e54ZiLj+edon6ynBW2Du6uSMS6SSeIkvKHSh4NFNkxUjLktSpWG7h44MoX6CJYmNBV7XeG06ROsiFv42lno8qrkxgWpzFGGXcMQABqP9yQJ7onmAcC4amTJGnpQ1P0Shx8JEe452PW0MoNpgdddrJRBggrLaO5UXZPO7uNWf8/W6ipzQPWtIrZmI1kC+x4ywSI7n3Wk6zP9uv2UvlzvDQFEWpbpee3UHtG3JYuhYtQHbsrXRBlKDMudv4ZupG6wYIAVLLXdnq7il3HTgjB+6fkBFs6jEfWMFJs1uUa2CwBIbWi6kn8z+0r6H0Qo6UZ27ooi+cGFKiSrOPsRmNRZqduoHeSygCcurZ6nrjAU0JK2QGG+GpB0pzRWgE/qNy3im/MA/GUKXfXJtQuqFfp7XwWQZBxkCnEwlnduDwc1gZiClAFARE7galfLbLkjcZSdnL7omN/VcZT7bX+i0GjJOSKxT +TVq5key lfZ1Cpg96SNi3wHcY4mW6TC8MgxM0SSeLddoPhl/DddVyyt3UckExqw9Ncnq9OcJyB3nsT9hH19BWGSMySrVN6V/FAgc4cWRYPWO3xEnr2mid7P+53P6EOUG09kCtIUctEE04gyGSs28YrPB3wDtLTeDw2g3WZYNpAfcdfWprvWYgZR251un2dSXOAwU192+xcvSEbBEHwz1K/MlgIgIcsDcwMg== 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: When printing page_owner data via the sysfs interface, no free pages will ever be dumped due to the series of checks in read_page_owner(): /* * Although we do have the info about past allocation of free * pages, it's not relevant for current memory usage. */ if (!test_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags)) The free_ts values are still used when dump_page_owner() is called, so keeping the field for other use cases but removing them for the typical page_owner case. Fixes: 866b48526217 ("mm/page_owner: record the timestamp of all pages during free") Signed-off-by: Audra Mitchell Reviewed-by: Vlastimil Babka --- mm/page_owner.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/page_owner.c b/mm/page_owner.c index 4e2723e1b300..4f13ce7d2452 100644 --- a/mm/page_owner.c +++ b/mm/page_owner.c @@ -408,11 +408,11 @@ print_page_owner(char __user *buf, size_t count, unsigned long pfn, return -ENOMEM; ret = scnprintf(kbuf, count, - "Page allocated via order %u, mask %#x(%pGg), pid %d, tgid %d (%s), ts %llu ns, free_ts %llu ns\n", + "Page allocated via order %u, mask %#x(%pGg), pid %d, tgid %d (%s), ts %llu ns\n", page_owner->order, page_owner->gfp_mask, &page_owner->gfp_mask, page_owner->pid, page_owner->tgid, page_owner->comm, - page_owner->ts_nsec, page_owner->free_ts_nsec); + page_owner->ts_nsec); /* Print information relevant to grouping pages by mobility */ pageblock_mt = get_pageblock_migratetype(page); From patchwork Fri Oct 13 19:03:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Audra Mitchell X-Patchwork-Id: 13421591 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 1F92ACDB47E for ; Fri, 13 Oct 2023 19:05:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A51D580067; Fri, 13 Oct 2023 15:05:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FE988D0015; Fri, 13 Oct 2023 15:05:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8A03280067; Fri, 13 Oct 2023 15:05:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 73FFA8D0015 for ; Fri, 13 Oct 2023 15:05:31 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5497C1204C3 for ; Fri, 13 Oct 2023 19:05:31 +0000 (UTC) X-FDA: 81341366862.20.26ECE03 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf10.hostedemail.com (Postfix) with ESMTP id 0FF18C00EE for ; Fri, 13 Oct 2023 19:04:11 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="Xe/HpPnN"; spf=pass (imf10.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697223852; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=W2bd7t672x7Ht0iwDNlV5Z1QF/m/zxxAw+Mep/2+SWM=; b=4BCe6AMQjgHk2TM1vHDeW6e9xlWozqN2MxO5cEFvgcH5WOAipxGMMoZGGygFmn1HeC0+hv KqIozVvD/KfCDHR3F/n4s6mfRU++qQOf8wdx1uRSjDGmLTxTOVYGjntdbuAeVtPh+zBTVK vpl6QKU/2dw0NxBEH86DWNaUuZEcMtw= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="Xe/HpPnN"; spf=pass (imf10.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697223852; a=rsa-sha256; cv=none; b=qVDCSXmOzPKlcrQSg7aQtCheBGoAxJjJcCtDkSPEf431IzIRB4N3GxoAs2S30D4oHsXEQt jip5LUvie9FC/utrhoY45yXlgm4QChSMcQh0zUVvR2Igw5iBOoDivDZ4OpLZtD4ZgPF2JM bzuCsgIjyIn/AB227wZn0oRLRCKLpyM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697223851; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W2bd7t672x7Ht0iwDNlV5Z1QF/m/zxxAw+Mep/2+SWM=; b=Xe/HpPnNLXx3awS3stAiMpnOnvzYYXp1wxiZdtCYdPOZeJMbZjoJ4TXFMkEXWFdXec+CE0 3dDkm+BjLPpXXqBLeN+IElPItnaAJILLUy7VjF2rL3an2xZI9ITYZffQiKPSIULi7o/KPC i+VSR0N3Dsz+0if4Jv7cKv7xZf5cLPA= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-169-vGBE6-tDPteZJmvR5owYpg-1; Fri, 13 Oct 2023 15:04:06 -0400 X-MC-Unique: vGBE6-tDPteZJmvR5owYpg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3B3CC85A5BA; Fri, 13 Oct 2023 19:04:06 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.33.110]) by smtp.corp.redhat.com (Postfix) with ESMTP id 00BE62157F5A; Fri, 13 Oct 2023 19:04:05 +0000 (UTC) From: Audra Mitchell To: linux-mm@kvack.org Cc: raquini@redhat.com, akpm@linux-foundation.org, djakov@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org Subject: [PATCH 2/5] tools/mm: Remove references to free_ts from page_owner_sort Date: Fri, 13 Oct 2023 15:03:46 -0400 Message-ID: <20231013190350.579407-3-audra@redhat.com> In-Reply-To: <20231013190350.579407-1-audra@redhat.com> References: <20231013190350.579407-1-audra@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Rspamd-Queue-Id: 0FF18C00EE X-Rspam-User: X-Stat-Signature: tx4dhbah661aqfnmwcwkybm3s6xnpkhk X-Rspamd-Server: rspam01 X-HE-Tag: 1697223851-954891 X-HE-Meta: U2FsdGVkX1/EjxqdFfU1bl+O0IUlBHC5L6JFpw28bTHQUNOvsJtbpFuhRIg7I0F0Kxw2BWrH+NU7+WWbdHHJg3I+Ztad42i+fF0nF15WE7uHUNZYKfPwjybI7fEadsixVFi8qaa/cSBbSxz9nNLHHPeitXBoDfM2tGbfswnsZFAPUb2XSAtkmJ+IuH/hW781cvkVcea0zdcByocKdIdOdJnkMZ7Ck0BBPhm5wzmtFcZPUxqOshLA0eI/HigyV9RZkvgPAin+ug77onrCA2Wu7GqK3BWzceh3ZizWCg83XpOJ492G3/nqA+Nzsug0Pm6f4WpbUzY+lOgVUTFc8szH9CNfmNk2Ajm3R0z+f4XQQvrymzhdpdWr3HqBGtWol1dfKYdkonQoBuLa37eersjUA9o6dCci4pqc9Q1Ep1kUeEYzToTjbWvnc0y+yb0pvbts6pzD1LkrJnitvDb8tRgzJ2dMZQPSgAJ/wOfkF1YbDDJHN4BnjvdiwLtlxGHj6fZhAaiSlJY16eaISHjpBP0Sr5zfsXeAYt3t7CxEPil5cliIEHMmTWOkX5baLjQjV52mjjg77Mn1sUSdkeBmWXc8UYmDOFjDa7DLMD/+Tfg4sex8CMmPqYEwz2d6wUFAa7/Au2wOyoSfbUXTp9qOgX9WZVIUPSD5OjPcgCTaLiEO0P7ypGwNTzomiT/k7JYXKpXfDZYoOXnCBxn40I94W+sr4kJ/1nKJMHDpdWGQYOHTd27GdHpWSqgifJ2lP0TmlJoB0P0p3uZJBd7Q0oJ2Mu5A/dVUkW6o7kbVEXu20fAMv8CESmaMgzJYoX0WKpYbFRrANDZ9wmLcAFr5gJOk4x0spUN9PWrMEwxiE0AyWruziiTcGUDtjRm29kDNK2VxxxkpTQcVuzUJZBJiaC2ZB88OzUXuz7jAbkzxf0GieiylJazyDMiGYk/op75kNzpSQowrmO9d9MaTJkThGxSMrnD 2THX3I1b v6P98adLg4+IYBdq7vuJf6Menwi/ZV6SvP6NfScOsK69GSqAXZPDAOCCGWEq7z+jbtB46GAM53bEjlTCfmFyRVfyyKwsPwLiprA8pQI0NEY7c5EDPNLDur5w/maEeBRrjv/Pm2yJe71QsjGWjr07zAwR4+bUDZKlrOThFTThfKXV2RC5FkrZW3uYxS6b5tJ9Stdne6orb+Qq5UmyOnZFtBstiyw== 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: With the removal of free timestamps from page_owner output, we no longer need to handle this case or the "unreleased" case. Remove all references to both cases. Signed-off-by: Audra Mitchell Reviewed-by: Vlastimil Babka --- tools/mm/page_owner_sort.c | 98 +++++--------------------------------- 1 file changed, 12 insertions(+), 86 deletions(-) diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c index 99798894b879..9c93f3f4514f 100644 --- a/tools/mm/page_owner_sort.c +++ b/tools/mm/page_owner_sort.c @@ -33,7 +33,6 @@ struct block_list { char *comm; // task command name char *stacktrace; __u64 ts_nsec; - __u64 free_ts_nsec; int len; int num; int page_num; @@ -42,18 +41,16 @@ struct block_list { int allocator; }; enum FILTER_BIT { - FILTER_UNRELEASE = 1<<1, - FILTER_PID = 1<<2, - FILTER_TGID = 1<<3, - FILTER_COMM = 1<<4 + FILTER_PID = 1<<1, + FILTER_TGID = 1<<2, + FILTER_COMM = 1<<3 }; enum CULL_BIT { - CULL_UNRELEASE = 1<<1, - CULL_PID = 1<<2, - CULL_TGID = 1<<3, - CULL_COMM = 1<<4, - CULL_STACKTRACE = 1<<5, - CULL_ALLOCATOR = 1<<6 + CULL_PID = 1<<1, + CULL_TGID = 1<<2, + CULL_COMM = 1<<3, + CULL_STACKTRACE = 1<<4, + CULL_ALLOCATOR = 1<<5 }; enum ALLOCATOR_BIT { ALLOCATOR_CMA = 1<<1, @@ -62,9 +59,8 @@ enum ALLOCATOR_BIT { ALLOCATOR_OTHERS = 1<<4 }; enum ARG_TYPE { - ARG_TXT, ARG_COMM, ARG_STACKTRACE, ARG_ALLOC_TS, ARG_FREE_TS, - ARG_CULL_TIME, ARG_PAGE_NUM, ARG_PID, ARG_TGID, ARG_UNKNOWN, ARG_FREE, - ARG_ALLOCATOR + ARG_TXT, ARG_COMM, ARG_STACKTRACE, ARG_ALLOC_TS, ARG_CULL_TIME, + ARG_PAGE_NUM, ARG_PID, ARG_TGID, ARG_UNKNOWN, ARG_ALLOCATOR }; enum SORT_ORDER { SORT_ASC = 1, @@ -90,7 +86,6 @@ static regex_t pid_pattern; static regex_t tgid_pattern; static regex_t comm_pattern; static regex_t ts_nsec_pattern; -static regex_t free_ts_nsec_pattern; static struct block_list *list; static int list_size; static int max_size; @@ -181,24 +176,6 @@ static int compare_ts(const void *p1, const void *p2) return l1->ts_nsec < l2->ts_nsec ? -1 : 1; } -static int compare_free_ts(const void *p1, const void *p2) -{ - const struct block_list *l1 = p1, *l2 = p2; - - return l1->free_ts_nsec < l2->free_ts_nsec ? -1 : 1; -} - -static int compare_release(const void *p1, const void *p2) -{ - const struct block_list *l1 = p1, *l2 = p2; - - if (!l1->free_ts_nsec && !l2->free_ts_nsec) - return 0; - if (l1->free_ts_nsec && l2->free_ts_nsec) - return 0; - return l1->free_ts_nsec ? 1 : -1; -} - static int compare_cull_condition(const void *p1, const void *p2) { if (cull == 0) @@ -211,8 +188,6 @@ static int compare_cull_condition(const void *p1, const void *p2) return compare_tgid(p1, p2); if ((cull & CULL_COMM) && compare_comm(p1, p2)) return compare_comm(p1, p2); - if ((cull & CULL_UNRELEASE) && compare_release(p1, p2)) - return compare_release(p1, p2); if ((cull & CULL_ALLOCATOR) && compare_allocator(p1, p2)) return compare_allocator(p1, p2); return 0; @@ -366,24 +341,6 @@ static __u64 get_ts_nsec(char *buf) return ts_nsec; } -static __u64 get_free_ts_nsec(char *buf) -{ - __u64 free_ts_nsec; - char free_ts_nsec_str[FIELD_BUFF] = {0}; - char *endptr; - - search_pattern(&free_ts_nsec_pattern, free_ts_nsec_str, buf); - errno = 0; - free_ts_nsec = strtoull(free_ts_nsec_str, &endptr, 10); - if (errno != 0 || endptr == free_ts_nsec_str || *endptr != '\0') { - if (debug_on) - fprintf(stderr, "wrong free_ts_nsec in follow buf:\n%s\n", buf); - return -1; - } - - return free_ts_nsec; -} - static char *get_comm(char *buf) { char *comm_str = malloc(TASK_COMM_LEN); @@ -411,12 +368,8 @@ static int get_arg_type(const char *arg) return ARG_COMM; else if (!strcmp(arg, "stacktrace") || !strcmp(arg, "st")) return ARG_STACKTRACE; - else if (!strcmp(arg, "free") || !strcmp(arg, "f")) - return ARG_FREE; else if (!strcmp(arg, "txt") || !strcmp(arg, "T")) return ARG_TXT; - else if (!strcmp(arg, "free_ts") || !strcmp(arg, "ft")) - return ARG_FREE_TS; else if (!strcmp(arg, "alloc_ts") || !strcmp(arg, "at")) return ARG_ALLOC_TS; else if (!strcmp(arg, "allocator") || !strcmp(arg, "ator")) @@ -471,13 +424,6 @@ static bool match_str_list(const char *str, char **list, int list_size) static bool is_need(char *buf) { - __u64 ts_nsec, free_ts_nsec; - - ts_nsec = get_ts_nsec(buf); - free_ts_nsec = get_free_ts_nsec(buf); - - if ((filter & FILTER_UNRELEASE) && free_ts_nsec != 0 && ts_nsec < free_ts_nsec) - return false; if ((filter & FILTER_PID) && !match_num_list(get_pid(buf), fc.pids, fc.pids_size)) return false; if ((filter & FILTER_TGID) && @@ -528,7 +474,6 @@ static bool add_list(char *buf, int len, char *ext_buf) if (*list[list_size].stacktrace == '\n') list[list_size].stacktrace++; list[list_size].ts_nsec = get_ts_nsec(buf); - list[list_size].free_ts_nsec = get_free_ts_nsec(buf); list[list_size].allocator = get_allocator(buf, ext_buf); list_size++; if (list_size % 1000 == 0) { @@ -554,8 +499,6 @@ static bool parse_cull_args(const char *arg_str) cull |= CULL_COMM; else if (arg_type == ARG_STACKTRACE) cull |= CULL_STACKTRACE; - else if (arg_type == ARG_FREE) - cull |= CULL_UNRELEASE; else if (arg_type == ARG_ALLOCATOR) cull |= CULL_ALLOCATOR; else { @@ -616,8 +559,6 @@ static bool parse_sort_args(const char *arg_str) sc.cmps[i] = compare_stacktrace; else if (arg_type == ARG_ALLOC_TS) sc.cmps[i] = compare_ts; - else if (arg_type == ARG_FREE_TS) - sc.cmps[i] = compare_free_ts; else if (arg_type == ARG_TXT) sc.cmps[i] = compare_txt; else if (arg_type == ARG_ALLOCATOR) @@ -679,8 +620,6 @@ static void usage(void) "-P\t\tSort by tgid.\n" "-n\t\tSort by task command name.\n" "-a\t\tSort by memory allocate time.\n" - "-r\t\tSort by memory release time.\n" - "-f\t\tFilter out the information of blocks whose memory has been released.\n" "-d\t\tPrint debug information.\n" "--pid \tSelect by pid. This selects the information of blocks whose process ID numbers appear in .\n" "--tgid \tSelect by tgid. This selects the information of blocks whose Thread Group ID numbers appear in .\n" @@ -706,7 +645,7 @@ int main(int argc, char **argv) { 0, 0, 0, 0}, }; - while ((opt = getopt_long(argc, argv, "adfmnprstP", longopts, NULL)) != -1) + while ((opt = getopt_long(argc, argv, "admnpstP", longopts, NULL)) != -1) switch (opt) { case 'a': set_single_cmp(compare_ts, SORT_ASC); @@ -714,18 +653,12 @@ int main(int argc, char **argv) case 'd': debug_on = true; break; - case 'f': - filter = filter | FILTER_UNRELEASE; - break; case 'm': set_single_cmp(compare_page_num, SORT_DESC); break; case 'p': set_single_cmp(compare_pid, SORT_ASC); break; - case 'r': - set_single_cmp(compare_free_ts, SORT_ASC); - break; case 's': set_single_cmp(compare_stacktrace, SORT_ASC); break; @@ -800,10 +733,8 @@ int main(int argc, char **argv) goto out_tgid; if (!check_regcomp(&comm_pattern, "tgid\\s*[0-9]*\\s*\\((.*)\\),\\s*ts")) goto out_comm; - if (!check_regcomp(&ts_nsec_pattern, "ts\\s*([0-9]*)\\s*ns,")) + if (!check_regcomp(&ts_nsec_pattern, "ts\\s*([0-9]*)\\s*ns")) goto out_ts; - if (!check_regcomp(&free_ts_nsec_pattern, "free_ts\\s*([0-9]*)\\s*ns")) - goto out_free_ts; fstat(fileno(fin), &st); max_size = st.st_size / 100; /* hack ... */ @@ -864,9 +795,6 @@ int main(int argc, char **argv) fprintf(fout, ", "); print_allocator(fout, list[i].allocator); } - if (cull & CULL_UNRELEASE) - fprintf(fout, " (%s)", - list[i].free_ts_nsec ? "UNRELEASED" : "RELEASED"); if (cull & CULL_STACKTRACE) fprintf(fout, ":\n%s", list[i].stacktrace); fprintf(fout, "\n"); @@ -880,8 +808,6 @@ int main(int argc, char **argv) free(buf); if (list) free(list); -out_free_ts: - regfree(&free_ts_nsec_pattern); out_ts: regfree(&ts_nsec_pattern); out_comm: From patchwork Fri Oct 13 19:03:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Audra Mitchell X-Patchwork-Id: 13421588 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 E0EC6CDB47E for ; Fri, 13 Oct 2023 19:05:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 82C1E80064; Fri, 13 Oct 2023 15:05:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DCFA8D0015; Fri, 13 Oct 2023 15:05:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A43B80064; Fri, 13 Oct 2023 15:05:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 580158D0015 for ; Fri, 13 Oct 2023 15:05:20 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 138971204FD for ; Fri, 13 Oct 2023 19:05:20 +0000 (UTC) X-FDA: 81341366400.18.9895E19 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf02.hostedemail.com (Postfix) with ESMTP id DCD8D80070 for ; Fri, 13 Oct 2023 19:04:13 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="XEw9/oil"; spf=pass (imf02.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697223854; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=zR5p3ioGj44ReczmQkXwckrYVMKEAFkp4XWCVgfnl84=; b=VORIi1LDszME/vcWiNmI/T//TKstZGZCWQNiO6Ql2DEd+Sf72hTrT+lJozTEL7a8Pf3Kdr YkYs5C4GAFkI/BbRQFTrxBypyPXsvoTvvAwzU3ZjPIr2VJtHTDiqLoPgmqJCqFzd+f8LGF p9LBL4KnYxfXxLqDfCZIxFENQiYNrSA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697223854; a=rsa-sha256; cv=none; b=w5m5lhqCCiTnIJLIc3doZ2sccJmvv7rRUmqeQwrHN0oyvIKNO0Y4+VtNvFCHCFuratJ6ED UtECIPDEyO4IUmI49Eh100tXzkIojCp0V3EnP/akNaZXaad8AeavxzSfIA5/YIDa/5eT+b tIgOsSfXcGKHU6kBlERGmKRNfAvuk90= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="XEw9/oil"; spf=pass (imf02.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697223853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zR5p3ioGj44ReczmQkXwckrYVMKEAFkp4XWCVgfnl84=; b=XEw9/oileG3ngCaLJ4o9++QqYlaMBLeYKVqINX7Xi6JkFY3c9kLRW6lmczJ4okSIzh6W24 huvVQXnzF7fKLLt+TxRHAAAKfHE+dqAzRpPyi5KWTwHfYk/wVhlvhfMh4aPhu1sar5HyKk WGOeazcPvETMK2Zz3wGOEDpEvLaDcTA= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-275-TnrzPz-tMWW8slqjaMdDHg-1; Fri, 13 Oct 2023 15:04:10 -0400 X-MC-Unique: TnrzPz-tMWW8slqjaMdDHg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 82CEF185A795; Fri, 13 Oct 2023 19:04:06 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.33.110]) by smtp.corp.redhat.com (Postfix) with ESMTP id 482022157F5A; Fri, 13 Oct 2023 19:04:06 +0000 (UTC) From: Audra Mitchell To: linux-mm@kvack.org Cc: raquini@redhat.com, akpm@linux-foundation.org, djakov@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] tools/mm: Filter out timestamps for correct collation Date: Fri, 13 Oct 2023 15:03:47 -0400 Message-ID: <20231013190350.579407-4-audra@redhat.com> In-Reply-To: <20231013190350.579407-1-audra@redhat.com> References: <20231013190350.579407-1-audra@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Rspamd-Queue-Id: DCD8D80070 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 4osxefht441qiuxacp6iqt9qndyzamj4 X-HE-Tag: 1697223853-126451 X-HE-Meta: U2FsdGVkX1+u9kI2dkYERPnHPQf8pj/CNO4guFd2G4YMUmYXxu9lWr72UAbUYNTepOeH4HsTtglW/brNPdnlufzcm0rFhRKz6mAFBTaQcLHE0FgSfNf1iyLQGWM90EX6oGdfL41VzzwGiJYhlT2AecOYk5nD8xjEB3Z3BfNEbo34JlBhV2KhcaIVlGlbHlFDs7eTLiLHPJRkJziTVe2SbpQArgXGtu1198U1ZNSkdZM15utzEr4iaGeGh9IpVUOm7ciZQ5MTMdHWQPsB5NDY8/qA/setXsnwvJzLxEoQQIraoX6UCd3l0EvflxwOmwW/NBcOTc6/6gVHxYJv+Q5kT94hKdE8ynK3vNCMS50ylYFknsdr65g4ddiswnd8eCnm4/DLgJdybys2knopQK4IHRY8HC/RhiR9teIPAobfgCPosTanB+nTuv2soP05kEtRF3a99MdJUPPyVc4JxzJ3mQHWJQPmNtC7yg6UV/U+ZWohfnIBN/ETqktgx96kfSX8tG9Dc6hGnF86FcxGuDYx9Vxv3LZ0LvSMuLobVXZY8wBidZ4VbtJY/WBh/VzqC14ttRuvGEoMualWvoGBZL6GHMHZtewlfa17DqZ0XMoRHIZr9v/67dMi6NGyvIdabAqHggMKpYU7EngMPNKSyMMdYDVTRRroP2tvPaLF4qmL/+b6mljyEQx5hF+hrl4CPtN3xLjkBr/mdUAds0yIbaJ5+ROApkXKx+BviFrDEy9lCs+gt8Nn2skd3tLqSdxqbYJ+uzU/uX2Ea8JNRFjCXLxwmrh2Qt6g9S/z2pEOrOl0jqBFyR73TwU8j/gOadR/ZmaLiIG3x1MkUMmw8M7EWetjwvHh/2+s1u/2x39q8Os2PCSf2e5ZJYSO78895uu4c4/ZfSGvQ7D6cPXx1LRXK/JjrfsnTyWXoLww46fJiaPRgY0pAd5O2f+jekYK1T7LJKXmedrhvsmWEqP7GGWfmEo 9C0OQLKw 6bsyYD7N4994ra53cYVOQ9VfEt5k0aNg8HxrjeS2RjFFFdPNUaCHpPzFcGZp74NMb2L4pfJvCKnO7MMizFkZn4pT67CleB/P6B2kPzQmYshaM9TJKDQe0H6L4CSd3X5xIia17ArM6EHUJhM8OuphgGvg3/T4txzbjmoVYUjbuMx5Dr2E= 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: With the introduction of allocation timestamps being included in page_owner output, each record becomes unique due to the timestamp nanosecond granularity. Remove the check in add_list that tries to collate each record during processing as the memcmp() is just additional overhead at this point. Also keep the allocation timestamps, but allow collation to occur without consideration of the allocation timestamp except in the case were allocation timestamps are requested by the user (the -a option). Signed-off-by: Audra Mitchell Acked-by: Vlastimil Babka --- tools/mm/page_owner_sort.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c index 9c93f3f4514f..7ddabcb3a073 100644 --- a/tools/mm/page_owner_sort.c +++ b/tools/mm/page_owner_sort.c @@ -203,6 +203,21 @@ static int compare_sort_condition(const void *p1, const void *p2) return cmp; } +static int remove_pattern(regex_t *pattern, char *buf, int len) +{ + regmatch_t pmatch[2]; + int err; + + err = regexec(pattern, buf, 2, pmatch, REG_NOTBOL); + if (err != 0 || pmatch[1].rm_so == -1) + return len; + + memcpy(buf + pmatch[1].rm_so, + buf + pmatch[1].rm_eo, len - pmatch[1].rm_eo); + + return len - (pmatch[1].rm_eo - pmatch[1].rm_so); +} + static int search_pattern(regex_t *pattern, char *pattern_str, char *buf) { int err, val_len; @@ -443,13 +458,6 @@ static bool is_need(char *buf) static bool add_list(char *buf, int len, char *ext_buf) { - if (list_size != 0 && - len == list[list_size-1].len && - memcmp(buf, list[list_size-1].txt, len) == 0) { - list[list_size-1].num++; - list[list_size-1].page_num += get_page_num(buf); - return true; - } if (list_size == max_size) { fprintf(stderr, "max_size too small??\n"); return false; @@ -465,6 +473,9 @@ static bool add_list(char *buf, int len, char *ext_buf) return false; } memcpy(list[list_size].txt, buf, len); + if (sc.cmps[0] != compare_ts) { + len = remove_pattern(&ts_nsec_pattern, list[list_size].txt, len); + } list[list_size].txt[len] = 0; list[list_size].len = len; list[list_size].num = 1; From patchwork Fri Oct 13 19:03:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Audra Mitchell X-Patchwork-Id: 13421587 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 491FFCDB482 for ; Fri, 13 Oct 2023 19:05:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA9C780063; Fri, 13 Oct 2023 15:04:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D59D48D0015; Fri, 13 Oct 2023 15:04:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C225080063; Fri, 13 Oct 2023 15:04:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B29438D0015 for ; Fri, 13 Oct 2023 15:04:59 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 85970160486 for ; Fri, 13 Oct 2023 19:04:59 +0000 (UTC) X-FDA: 81341365518.29.AB7921B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf22.hostedemail.com (Postfix) with ESMTP id B8987C0140 for ; Fri, 13 Oct 2023 19:04:32 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=QEJ7308y; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf22.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697223872; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=mbcGDdPDyjQuCaqCE5MIIL6VIXi6uhOqjz8GCAoYgAs=; b=eb9A1qBS1coWgHTxnXDfO1Re7QSTrH/RYtbVAjJ2tacwQcU59i2kn6BijvFr/cBsF0YX43 6OdcV96oV2tluuARuo0yM3jAWEl1SPhbvowad1PiImzCRUJFxZHKGq03VjF5Xzbm8RwfLA 9JDMMHmML2pI5p7eiYuYzswLPcaYh/g= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=QEJ7308y; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf22.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697223872; a=rsa-sha256; cv=none; b=HRCrzauPBHZyTROT2EiV714gpewfY7B7ULjwp9srmnn0BOdzLtu//nAhjjeXhaFDzXvumn cySkWoRo4eUWFUfs8u9QQkdJNTOAYEtGu8xKBxwtZd+RLQqo5A7rZvucGc8ukZ/sby74bT 4LRedzxzCvjPenbuyESdCoAUi4eE1B0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697223871; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mbcGDdPDyjQuCaqCE5MIIL6VIXi6uhOqjz8GCAoYgAs=; b=QEJ7308yCLN7gdXapeovVij1isOyneLaHBywaDGmaGzM/QiG7Qsudtsb2XZx3KM48Hee7h B1D9ASSM+Gcxpw0YOUoz1lx+zMC1M9uqyOdaJqOdwGxMcM/C+eHk/7a+z0D35rCXWWmgvy 3fF1fXzTmg6Gy7njbh4xMxEBO+0WzQw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-283-jTkVSu38NWqJ-9Hlh8G7xw-1; Fri, 13 Oct 2023 15:04:07 -0400 X-MC-Unique: jTkVSu38NWqJ-9Hlh8G7xw-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C9D661029F40; Fri, 13 Oct 2023 19:04:06 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.33.110]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8F2432157F5A; Fri, 13 Oct 2023 19:04:06 +0000 (UTC) From: Audra Mitchell To: linux-mm@kvack.org Cc: raquini@redhat.com, akpm@linux-foundation.org, djakov@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] tools/mm: Fix the default case for page_owner_sort Date: Fri, 13 Oct 2023 15:03:48 -0400 Message-ID: <20231013190350.579407-5-audra@redhat.com> In-Reply-To: <20231013190350.579407-1-audra@redhat.com> References: <20231013190350.579407-1-audra@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B8987C0140 X-Stat-Signature: 6bd9pm6jy55kfbbreni5wczwwj94wsfp X-HE-Tag: 1697223872-435481 X-HE-Meta: U2FsdGVkX1/TqcidKQl77hJh1lPeYjBZmdO0h7AQx54ZG7ASmFWjxbIU3tkGMSIAzVH51ZHYagWYTrcKoYsSyEH76NDbYJMgJgGlBOYuzhc0e8mC/2sdHxgrX/oD0/tRo0u1hiAQfCyt4O0oJS4s4TOn2OmIp2STJYI8VgOAxLT2jbgP2lSn+8UT9fNGwJ3Yag753TH8BN8QQyUl9ugwK+BrcMpTE7g9o1J/+4cqnxX4fyvEoUqz1Q+MbaTfc0VQQtdVk6IYQPi65lRtR5xHAdfxyfV0LAQWtak6ilbCd0CkVjzxGimtc+UKJZlGL99io7GrWC2QEW3nLapQaWaXi4r+5qrWna420ONN5EEB/tCDVsfOSAJUxSPBEZbEpAPrqC/90Wg7nofYBk3jbpMhfRNuIb4zMN9h4IUuMfjqJo1SOs7txwl3slkYQJ8TcVI3M34EqN0o1UIHc57LPQWauULgDzi/G2C7dQKLs9BmOQida8/Qr6t0/vsP1iWYHsVuzY1KcTT4QP6wCxbpMXoS812+KZ7P66IcZXAFf5kgD50b5jLFI2FmvxFIl3HoPYdaEJIZLT/L9N87ciU1fxQoHcrmLCuMozyIyCAMA6RN0Do86sXy25cXxGTbdD0M4tIaNUK+rJTMNfkF966uPdljve/eXZAEOqsNN9zZQsnKCG6SyJ6f5D8M8dxsN/FropdAi8WRK5LWxMhWaXsOz+PHH/sJBrqb1+oH69OFrmUOUJ210jowH9IQZ7vYrTzKI5r+dPs4GF8n0dhwvtXNoU1Eaiu3+j94VQ0GzEJjdSkGjgIXLbpLv164PnVQ2k1TwGEvPX+0mWoUXpj7brGAQswuaJ/jeKEEf7bkmuVQ1PP9TF33uRvgueYWu+AYL/UgUtIGANaI8sH5Sz5hBdJJ/lKnS6Mhzv9fHCKzoPOikhM43zsEpzY8HmOXFl/BmeTt/HQdfJewuc5BmIlv6drcHLg f0n1KwlF XKnKocb5Cqy129kY12ReGAhlrx1zyqvx87R5tN/yLrWKLVn+AKPfaNG2FvCPh3k3JQ+zH35BQpzux83k9sXt0ZK/GTM7rlklWOuQD9sjSAS8wjNfAsvQbiRv1GOTbbLepDS4fcp/jwD6Re4VciPdShOOsNIgY3O2s1FlMWQDP4HEtVrLO1WiuZV6f/3SHJ2ND3rxKMd9EZmu/YWQgM+Z1CG1JVA== 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: With the additional commands and timestamps added to the tool, the default case (-t) has been broken. Now that the allocation timestamps are saved outside of the txt field, allow us to properly sort the data by number of times the record has been seen. Furthermore prevent the misuse of the commandline arguments so only one compare option can be used. Signed-off-by: Audra Mitchell Acked-by: Vlastimil Babka --- tools/mm/page_owner_sort.c | 61 +++++++++++++++++++++++++++++++++----- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c index 7ddabcb3a073..5a260096ebaa 100644 --- a/tools/mm/page_owner_sort.c +++ b/tools/mm/page_owner_sort.c @@ -66,6 +66,16 @@ enum SORT_ORDER { SORT_ASC = 1, SORT_DESC = -1, }; +enum COMP_FLAG { + COMP_NO_FLAG = 0, + COMP_ALLOC = 1<<0, + COMP_PAGE_NUM = 1<<1, + COMP_PID = 1<<2, + COMP_STACK = 1<<3, + COMP_NUM = 1<<4, + COMP_TGID = 1<<5, + COMP_COMM = 1<<6 +}; struct filter_condition { pid_t *pids; pid_t *tgids; @@ -644,7 +654,7 @@ int main(int argc, char **argv) { FILE *fin, *fout; char *buf, *ext_buf; - int i, count; + int i, count, compare_flag; struct stat st; int opt; struct option longopts[] = { @@ -656,31 +666,33 @@ int main(int argc, char **argv) { 0, 0, 0, 0}, }; + compare_flag = COMP_NO_FLAG; + while ((opt = getopt_long(argc, argv, "admnpstP", longopts, NULL)) != -1) switch (opt) { case 'a': - set_single_cmp(compare_ts, SORT_ASC); + compare_flag |= COMP_ALLOC; break; case 'd': debug_on = true; break; case 'm': - set_single_cmp(compare_page_num, SORT_DESC); + compare_flag |= COMP_PAGE_NUM; break; case 'p': - set_single_cmp(compare_pid, SORT_ASC); + compare_flag |= COMP_PID; break; case 's': - set_single_cmp(compare_stacktrace, SORT_ASC); + compare_flag |= COMP_STACK; break; case 't': - set_single_cmp(compare_num, SORT_DESC); + compare_flag |= COMP_NUM; break; case 'P': - set_single_cmp(compare_tgid, SORT_ASC); + compare_flag |= COMP_TGID; break; case 'n': - set_single_cmp(compare_comm, SORT_ASC); + compare_flag |= COMP_COMM; break; case 1: filter = filter | FILTER_PID; @@ -728,6 +740,39 @@ int main(int argc, char **argv) exit(1); } + /* Only one compare option is allowed, yet we also want handle the + * default case were no option is provided, but we still want to + * match the behavior of the -t option (compare by number of times + * a record is seen + */ + switch (compare_flag) { + case COMP_ALLOC: + set_single_cmp(compare_ts, SORT_ASC); + break; + case COMP_PAGE_NUM: + set_single_cmp(compare_page_num, SORT_DESC); + break; + case COMP_PID: + set_single_cmp(compare_pid, SORT_ASC); + break; + case COMP_STACK: + set_single_cmp(compare_stacktrace, SORT_ASC); + break; + case COMP_NO_FLAG: + case COMP_NUM: + set_single_cmp(compare_num, SORT_DESC); + break; + case COMP_TGID: + set_single_cmp(compare_tgid, SORT_ASC); + break; + case COMP_COMM: + set_single_cmp(compare_comm, SORT_ASC); + break; + default: + usage(); + exit(1); + } + fin = fopen(argv[optind], "r"); fout = fopen(argv[optind + 1], "w"); if (!fin || !fout) { From patchwork Fri Oct 13 19:03:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Audra Mitchell X-Patchwork-Id: 13421590 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 598C6CDB47E for ; Fri, 13 Oct 2023 19:05:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E96FA80066; Fri, 13 Oct 2023 15:05:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E45748D0015; Fri, 13 Oct 2023 15:05:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0D4980066; Fri, 13 Oct 2023 15:05:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id BB6A28D0015 for ; Fri, 13 Oct 2023 15:05:28 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8F795B5371 for ; Fri, 13 Oct 2023 19:05:28 +0000 (UTC) X-FDA: 81341366736.11.845B0C6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 9F40D14022F for ; Fri, 13 Oct 2023 19:04:11 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=f+LlBr4N; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697223851; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4XvnTft2MmJ8VY609+be7Cy1Q085UedMhCWzkSGYTRU=; b=KgGnP/uZHY3DUPRpIAiJaf8G/6qSur4F8on6r/OmowDtfLkrVbu4pmnkewTI7DuO66V4UD AYCT7pWPAA5kM20iRs2IXiF/PvhPIuvdyyQLhbSmskMe4pfiANN1jr6casYkzfwGpUKxm5 eOV4LWWxgukVTy2rdXKj+EGP5xHha44= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=f+LlBr4N; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of audra@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=audra@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697223851; a=rsa-sha256; cv=none; b=cznLpGHC43VFVTDEkTO2fVE9SGzart7njE8aWGkwaeOaiFYqae7fr/tfu+J0tVp1V8+Mn6 S2XXb0EFADG0azOHTc1ANvNCTVLJ8Wm4NN/XuiNs33gOAZ0yuCvvoIkal9V93gyQWtxuz0 ZbzPcBxAs0yHFe7xWxW3BoZpDe9zZ9w= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697223850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4XvnTft2MmJ8VY609+be7Cy1Q085UedMhCWzkSGYTRU=; b=f+LlBr4NKgz3smdw9YU6pneAx0wgVT9e4MGKrYsL5UVVzhval044duDcmnLjlWNxQFZO8Y hJ05sxZeZTJaQtKijm8mcjANMoxGtamkCiad7Tp13aZnEg0xo6pcasgZlpCcah2XStfRrM iaE5ug6CGReAduC6eSJx7/vmtjcXYxs= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-447-eVID_ZQ_N8aIESBG-T1o-A-1; Fri, 13 Oct 2023 15:04:07 -0400 X-MC-Unique: eVID_ZQ_N8aIESBG-T1o-A-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1D0CC801E62; Fri, 13 Oct 2023 19:04:07 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.33.110]) by smtp.corp.redhat.com (Postfix) with ESMTP id D69472157F5A; Fri, 13 Oct 2023 19:04:06 +0000 (UTC) From: Audra Mitchell To: linux-mm@kvack.org Cc: raquini@redhat.com, akpm@linux-foundation.org, djakov@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] tools/mm: Update the usage output to be more organized Date: Fri, 13 Oct 2023 15:03:49 -0400 Message-ID: <20231013190350.579407-6-audra@redhat.com> In-Reply-To: <20231013190350.579407-1-audra@redhat.com> References: <20231013190350.579407-1-audra@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 9F40D14022F X-Stat-Signature: ba9nmyfyscrejx6s6ragydas1y5uqhky X-HE-Tag: 1697223851-914413 X-HE-Meta: U2FsdGVkX1+FL0gJXl/VeKl2cmCc8uRwKmKowncKFI7YXgv4Ck6NAz8GB4gtamtbT0+ApjKLzqZAT6i67SUiJvFRrka5O+eq6CdrDg+7jopa4kCRVkCqKDvGzWIQOBUDAlEOcwgATNQonCuc6yLxJsBRt6FempsUtshptSRTWYeL0/PGhmY1FyWPqMY0ISa5bGu+XwFP/fOsy3b+YNXdhmlBSV8r4MDK6N9OmIhOy8dmr55i6Im2yAaljT84E/it4qLMAYDJ+tJLBkcjg4i0TLlPP9LgMrJfA895pjep9LjGrJ1eTGm/8HDCWZi8j//cZb4vX5x/COT17uo6SE8ejTbRWieEPu7WSjxCQpf4aulGS5wutx8wQOigEUqF3M1/yDMz/ZWldq+3eaden//cM3WEWguU1wBO8RXPWjKLtWVpKnlYwrmkoHKgLi02wSQtIX9AtWDbtoWr5eVyg2Xiv0YN/T5ipofSrqzZ6iLLzYhM99SfvEa5EpuPuLYkg7w6pB+TSe4Q3KlaL+seYrOLSaUMZAIrAFnEIp/VOVm7ngbro/eHovH8Jp9nghdkvo4+ES+H/UT9dAtQCoyTLXBCMeUygAngW5+DuBfTZQhWCVoYUzzKq46e7FJJGinW5qQxZf6XdT6z7fCeinl45QQThxsdxUZD0/qDNtkgK87orpLKopFcylQQOcHv++EpnbsafaGLoTay3MhOG8/qXIipFbnEmoD4/LC4NF1Y8hoDpUOWVAlh0oKW2YDCdRv31WRBt8X/pqb+dXcZkZvq8Bif+FoitTu1mqCS2uEWtV/iwITT5KeW+s1pvzNwCXbKsSo57TNumIBBNXeVnISD1sTF0Vun55rXMkJ8UZh0rBaj3Px3gJuWUn8aaG2kNyFgrO/Zl6u8r96ii0ZwNG8gV0hLFktTKKLedxpVrDSy7CvBzZj47Ad/mvzhuh50wcmf53bknNBKmU34Aq5pclBz4J2 8Y98OMbx 1rqCGOYkq+XhBEH/REIYwHbMEzTDDAhd7OvspicT2GXge15ond4uzDlkCUDFkQlEUIzbe1PGzwYw80psxtbQhG7NZHVxSV0icjCTfNpU6xKa2cH1c187uwfIB/Kyl4J1FNrIpRMGou9Hy/pL36px62wopvsVQm9+cDt8pI3xYKSQwrsalrIUTiKvpOB1ftgcXiH8VEOYz7fyrw7A= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000316, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Organize the usage options alphabetically and improve the description of some options. Also separate the more complicated cull options from the single use compare options. Signed-off-by: Audra Mitchell Acked-by: Vlastimil Babka --- tools/mm/page_owner_sort.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c index 5a260096ebaa..e1f264444342 100644 --- a/tools/mm/page_owner_sort.c +++ b/tools/mm/page_owner_sort.c @@ -634,19 +634,26 @@ static void print_allocator(FILE *out, int allocator) static void usage(void) { printf("Usage: ./page_owner_sort [OPTIONS] \n" - "-m\t\tSort by total memory.\n" - "-s\t\tSort by the stack trace.\n" - "-t\t\tSort by times (default).\n" - "-p\t\tSort by pid.\n" - "-P\t\tSort by tgid.\n" - "-n\t\tSort by task command name.\n" - "-a\t\tSort by memory allocate time.\n" - "-d\t\tPrint debug information.\n" - "--pid \tSelect by pid. This selects the information of blocks whose process ID numbers appear in .\n" - "--tgid \tSelect by tgid. This selects the information of blocks whose Thread Group ID numbers appear in .\n" - "--name \n\t\tSelect by command name. This selects the information of blocks whose command name appears in .\n" - "--cull \tCull by user-defined rules. is a single argument in the form of a comma-separated list with some common fields predefined\n" - "--sort \tSpecify sort order as: [+|-]key[,[+|-]key[,...]]\n" + "-a\t\t\tSort by memory allocation time.\n" + "-m\t\t\tSort by total memory.\n" + "-n\t\t\tSort by task command name.\n" + "-p\t\t\tSort by pid.\n" + "-P\t\t\tSort by tgid.\n" + "-s\t\t\tSort by the stacktrace.\n" + "-t\t\t\tSort by number of times record is seen (default).\n\n" + "--pid \t\tSelect by pid. This selects the information" + " of\n\t\t\tblocks whose process ID numbers appear in .\n" + "--tgid \tSelect by tgid. This selects the information" + " of\n\t\t\tblocks whose Thread Group ID numbers appear in " + ".\n" + "--name \tSelect by command name. This selects the" + " information\n\t\t\tof blocks whose command name appears in" + " .\n" + "--cull \t\tCull by user-defined rules. is a " + "single\n\t\t\targument in the form of a comma-separated list " + "with some\n\t\t\tcommon fields predefined (pid, tgid, comm, " + "stacktrace, allocator)\n" + "--sort \t\tSpecify sort order as: [+|-]key[,[+|-]key[,...]]\n" ); }