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 20AB5C001DB for ; Tue, 15 Aug 2023 11:58:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1E4028D000C; Tue, 15 Aug 2023 07:58:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 194298D0008; Tue, 15 Aug 2023 07:58:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 035808D000C; Tue, 15 Aug 2023 07:58:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D02818D0008 for ; Tue, 15 Aug 2023 07:58:00 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id ACDBF1C9CC2 for ; Tue, 15 Aug 2023 11:58:00 +0000 (UTC) X-FDA: 81126190320.29.75B5A5F Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by imf07.hostedemail.com (Postfix) with ESMTP id 6AEA140010 for ; Tue, 15 Aug 2023 11:57:57 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf07.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692100678; 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:content-transfer-encoding:in-reply-to: references; bh=N47a3uD1PWasc3POUaWMxjhx675ePLy+8LIeR2TWugw=; b=n5AHaWK1JQ3aU+68yJ2XV9bLE0CUaKd4ECMkXy8injboV6Y0AZhrZDU25NldnQGsGjmu2f BbaG9/KG68aVyXja7pDmQhZL8gTFLsCBwk8RgFkG9OuyPt6cSNxH4UG6xOugZh64XHr8Wq HFqnvkoLy0r3gz+oY35EhoFj+rIaht4= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf07.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692100678; a=rsa-sha256; cv=none; b=M1XJ43mJkzWNCW5buWT1YvECDNZJLriI0K0In1aOLtCJAyx/HqN6ptZZ6Q7cujRDn409da QLuT5mOojcIySqywsn46u5d45Xq5wEJOPknr2KJS2T57BYCRAVugSq/lFEc4xrZUH2I1Fr c8xPjkNXjkVKmSt8a2B+Z0kzVuhrems= Received: from dggpeml500011.china.huawei.com (unknown [172.30.72.54]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4RQ8r04Y58z1GDWG; Tue, 15 Aug 2023 19:56:32 +0800 (CST) Received: from huawei.com (10.175.113.32) by dggpeml500011.china.huawei.com (7.185.36.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Tue, 15 Aug 2023 19:57:51 +0800 From: Jinjiang Tu To: , , , , CC: Subject: [PATCH 0/6] page_owner: support filtering by module Date: Tue, 15 Aug 2023 20:52:45 +0800 Message-ID: <20230815125251.2865852-1-tujinjiang@huawei.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.175.113.32] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpeml500011.china.huawei.com (7.185.36.84) X-CFilter-Loop: Reflected X-Rspam-User: X-Stat-Signature: 4g3d4k3ghebtefwz495x4kkug9rd7afc X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 6AEA140010 X-HE-Tag: 1692100677-95876 X-HE-Meta: U2FsdGVkX19rcb7g1egA2AJsoGhblGmnkckbg4nLN+KhXMZzLs0psMC83zsicRzt6LWb/Gs6RlKrmCOGXRveBedan9Kxf8nZe5HqLBwmNrf7emyn9yeSwsWVshfFSSqWHg+woSfgxwp464LBvi7+nvAfraBf7ZLLeBBJZTQbxeWnJzr6yyTqM+1erQu7tzbPOgt+poWgYGmlwJlykfzWO0DUKj6BKOTOxbg+X4aTpvMyg9Nuy/3SRloxbdICe0Ajfynmzi6kANcCbo7pUZSuadpBKGW/evp9UdbihJk5amjOBhVjpc8Xrn3kn/TUOvQMW0B8+fAmIDlyxt8SKqE3/nZ6O9po2h8KmJUA7voy1uEVdoUwZjgVdb3FXseukdgh0VT5Tjwb+K3SHDvI3Oa54eUu8oDeow5OuRwmOJMexwYjmeN9Ao3wJAadb/MvPKse0UM/MHczRy+Wqv1ZYoybLZAltTgvRPyoH2b0Op0NrJ8kcu0EnF8e5sTiTDQFe4f7KDyKLFdTHnL6a/n5x1gC9EmZEgAyjsuP/8lYeqbPmYb/HrBtgsSZvJYj+PSVKioFF4zJYGxtbeCYrKfzhoRNfb3PWkqrjXNv+GTUqkROe8h5tq6e6cVBYPpb7J858qso1uPT7so1OgLSHqaWHCD6p/cO/oxZkA1quqtc5h0cd5dhyoHdfiKaSiaZLyjAyI2SJIo7OFAohfS0Z4hwNeCLNM1n2uc+Vr3nfndmOs9/XQ24PAQmK5yUCFCOETRkxJiHZ4gnxqVxzeJXD3ptQTWcpnDDJrrXe9idLFaxMvkPo6tVRZyhuWymeV7txM1TwpZupw1z6yxgqCzPSP4Zo1AM4vBVFvzpA8z2eX+zIYdYKqAzwEnrjmA6ftXYRnBdTOvuCoYf265HFCMtWbIu8vRAKiwTZCvrhe6TB0g353XnAWn1pNLLbDHGWxjY5+HiaFdcIxxY1bGBtmmRqi0jVHP nI8qDbBM FcyFW8GLZr2JiN1WIQLPk4rl9Ve87GBo2s2c43U2dVRi3m25LZsBEF8NjPE/Vsuvj1EexCInZgoM2O+9U9BWtfbH2j3DwyUM7021YPk+VN8csrL9uaN/SM9pjBL5nwO7OIH6k2J6vYx9YztQ/CDXlOKmXDtkQgWdN8Uz3 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: page_owner is a debug tool to record who allocated/freed each page. However, it fails to record which module allocated/freed the pages. Generally, most memory leak bugs are caused by modules, especially third-party modules. If page_owner supports recording and filtering pages allocated by modules, it will help us much to find such bugs. In this patch, we identify the module that allocate each page by traversing the stacktrace. The module name will be dumped by page_owner interface. We also enhance the tool/mm/page_owner_sort tool to filter the pages allocated by modules. Besides, when oom occurrs, we fail to know pages are allocated by which modules. It is too late to dump page_owner after oom occurrs. Therefore, we records the number of pages allocated by each module, and dump the modules when oom occurrs. It will help us to find the buggy module. Jinjiang Tu (6): mm/page_owner: support identifying pages allocated by modules mm/page_owner: show modules allocating pages when oom occurred tools/vm/page_owner_sort: support for selecting by module name tools/vm/page_owner_sort: support for culling by module name tools/vm/page_owner_sort: support sorting by module name Documentation: update document for page_owner Documentation/mm/page_owner.rst | 13 +++- include/linux/module.h | 4 ++ kernel/module/Makefile | 1 + kernel/module/main.c | 4 ++ kernel/module/page_owner.c | 38 ++++++++++++ mm/page_owner.c | 96 +++++++++++++++++++++++++++++ tools/mm/page_owner_sort.c | 106 ++++++++++++++++++++++++++++---- 7 files changed, 248 insertions(+), 14 deletions(-) create mode 100644 kernel/module/page_owner.c -- 2.25.1