From patchwork Tue Mar 16 10:37:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maninder Singh X-Patchwork-Id: 12141771 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99175C433E6 for ; Tue, 16 Mar 2021 10:43:23 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1B2FC64F7F for ; Tue, 16 Mar 2021 10:43:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B2FC64F7F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:MIME-Version:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:In-Reply-To:Message-Id:Date:Subject:Cc:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wN/BGurV0RZq3i+k0juc7XJzcsYCSZLhY8CT6TaFLX4=; b=nmXjyFlslFx2mFtlBhxO4ugbhB lZ2Gxc3QQqi+IINrybiZZqHLiwGC2W+/RefnQq443fsOty8vX9uTsZ0gJXmnHKvoA9jN5SWvqT3Wc I/yxcfZ/lDJFTxmYSZ0HGI9Ovn7XZHIEEO62I4+YGp6i8cej4Q7WgVS/TTVmqpOwK3wLWaRTJt1xn KTCzaCYZWs613RcB3W7J9WzbbFp9AGGCuCGGoal1hrPx6NNtyR3UlmVxlJ++L0N8xCOMZTiVQS5q6 dJTxpZOCwfavRCBQqeA6h34YSpDXeq+Mcz5WKhFwXWNrIcyaIMd/Pv81NaewMNzi3PSqItVNM1jey 88mDWsJg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lM79J-000Qmt-74; Tue, 16 Mar 2021 10:42:05 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lM79E-000QmG-31 for linux-arm-kernel@lists.infradead.org; Tue, 16 Mar 2021 10:42:02 +0000 Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20210316104156epoutp02d9f8e15d177a170f5bc56ab454527544~szJdZxXpz1640416404epoutp02D for ; Tue, 16 Mar 2021 10:41:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20210316104156epoutp02d9f8e15d177a170f5bc56ab454527544~szJdZxXpz1640416404epoutp02D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1615891316; bh=AZBqEzrIJ+EQPsQY82SYKnUwBKM6tjji8hOw6zf6MF8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MbFOrMSbNQSShyflQOAE9fNoD7r9gP0WYOEQ3GcH49m2kOQmjz4OZafjqhvIVfAsl 9EgUWZSNJ7QyzMBEopE9b1YDgutba8JVSVuMh+D6YZH8vEHeMSlK0tODi7Oili2d9Z csxnHycTZaOGHWHAgbrf5sZVX1EVRS26a5UMurRg= Received: from epsmges5p2new.samsung.com (unknown [182.195.42.74]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20210316104155epcas5p1cfe2f45e4abb74afd0c0f32bcc3f23cf~szJcS9_If1128311283epcas5p1S; Tue, 16 Mar 2021 10:41:55 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 21.86.50652.37B80506; Tue, 16 Mar 2021 19:41:55 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20210316103736epcas5p3758de57b57c732074acc0989e563cc2e~szFrQSoU90709807098epcas5p3h; Tue, 16 Mar 2021 10:37:36 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20210316103736epsmtrp2f433189e0f4e53fde840273718138b3c~szFrOVmg62017920179epsmtrp2Y; Tue, 16 Mar 2021 10:37:36 +0000 (GMT) X-AuditID: b6c32a4a-6b3ff7000000c5dc-78-60508b736409 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id E1.06.13470.07A80506; Tue, 16 Mar 2021 19:37:36 +0900 (KST) Received: from localhost.localdomain (unknown [107.109.224.44]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20210316103733epsmtip1dce460b74720998e9947118fad745ffa~szFoZg0_83001630016epsmtip1V; Tue, 16 Mar 2021 10:37:33 +0000 (GMT) From: Maninder Singh To: paulmck@kernel.org, linux@armlinux.org.uk, cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, vbabka@suse.cz, 0x7f454c46@gmail.com, viro@zeniv.linux.org.uk Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, a.sahrawat@samsung.com, Maninder Singh , Vaneet Narang Subject: [PATCH 2/3] mm/slub: Add Support for free path information of an object. Date: Tue, 16 Mar 2021 16:07:11 +0530 Message-Id: <1615891032-29160-2-git-send-email-maninder1.s@samsung.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1615891032-29160-1-git-send-email-maninder1.s@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSbUxTVxjHPffetpeaLieFbQfYcGMgygRFpp4hmfuwlxuyGLaZJepIafCI ZrTU3sKYX1bty0YJDBQELWx1a4grzmqLeimQsdYXXKaToSBWeY9DlAlla8IIupQL2bffef7P //k/5+SwtPKiJI7drzUQvVZdlCiVMxcCa1PS+Irc/A1dTfG4+tgEg3vaCW50n5bi/vBjgH+s MEmxZ6xPgnt9jVI8ePqZBPvrOgEOfGdlcMgZZrB19qkEW53nKOy/1gSw/VAVwL8vXJW8Dbne vh6aaztxX8Y5PCWcx1Uu5TyhIzLONnWL4rob5hlu/FY9xXmdX3JVrS7A/ea4JONmPQmcZ3yK ylXskmfvIUX7S4l+/Vv58n2Tged1llVlNY5OmREMIxuIYhF8A/X0HZbagJxVwnaA/nxqZiKC EoYAOnJ5oyiEARoJnqGWHYM+gRKFToCGzpslouNvgLpCOMJSmI5cvo7FSTHwHkCjhwwRAw2v ADR3/edFIRp+jBqCArABlmVgMpr7mkTKCvg+clQ2LYUloIEb5XSEoyCHGnxuJjIHwW4Weese LDW9gx4++R6IHI0mr7bKRI5Ds391SkVDBUDHG3tp8dACkGeiXyJ2bUOPTEYqsgUN1yK3b71Y fhnV/SpemYbPocr58aUwBRK+XeZkZB44uzQmHs3OzDAic+hxeR8Qn8gOUEtgiK4GCSf+j3AA 4AKxRMdrCgm/SbdRSz5P59UavkRbmF5QrPGAxb+VmiOAkeHpdD+gWOAHiKUTYxSbtLn5SsUe 9RcHib5YpS8pIrwfxLNM4osKYcOwSgkL1QbyGSE6ol9WKTYqzkiteslpLb1+RWW/88+7Krs6 a00BXYZMb67bwi8EjfWfZk66UrJfq755Zos3tjaPBHHjL4K+e3A16d/8UZvmrq7UZLF8qM4p Tjo6nxqNVq5oqPtKPp+WmZOp+MPtndtpxtdamtq4yVrbiMH9zJI0AE9p6HMFXPHCYLhmOjrq sOvh0PZtXV3G9550/HCpYgiOZ9w+O5rcPPNKbNa6zZVHk7em1eTlWmFh9iP65lRz2VbC0q/u zjo4ajo1cSH4gARa4UhtVeXrtpMv/DuQ0n4giRpr+8Zwca8QXGEmcZaOoh3TH3gzPjl29yfV gWaJcFyZNze2EgvOGXv8jVB9zK6wLJHh96kzUmk9r/4PhkxqX8oDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJLMWRmVeSWpSXmKPExsWy7bCSnG5BV0CCwYc3ShYTpr1gsbi4O9Vi zvo1bBbXv71htFjZ3cxmsenxNVaLy7vmsFncW/Of1eLQ1L2MFofnt7FYfFryjcWi7fM/Vou2 JRuZLA6dnMtoMbuxj9Hi/N/jrA4CHpevXWT22DnrLrvHgk2lHptWdbJ5bPo0id2j6+0VJo8T M36zeDy5Mp3JY/OSeo++LasYPc4sOMLu8XmTnMemJ2+ZAnijuGxSUnMyy1KL9O0SuDJeHRYt aJWvmLhgL3sD4wOJLkZODgkBE4l7u3YwdTFycQgJ7GaUWNX4nxEiIS3x8997FghbWGLlv+fs EEWfGCXa2i6CJdgE9CRW7drDApIQEXjBKLFmz0qwUcwCZxgl3l2dywRSJSwQKNE97yxbFyMH B4uAqsTPjlSQMK+Au8SCXogSCQE5iZvnOplBbE4BD4kZu9aDLRACqpn3+jfbBEa+BYwMqxgl UwuKc9Nziw0LDPNSy/WKE3OLS/PS9ZLzczcxgmNDS3MH4/ZVH/QOMTJxMB5ilOBgVhLhNc0L SBDiTUmsrEotyo8vKs1JLT7EKM3BoiTOe6HrZLyQQHpiSWp2ampBahFMlomDU6qBKemI8ZZd Bp0Cc1X07L6wyKRPV3sWdbVV9+1yxlsJ4UvcW/5aRe1zdT+Uz7L4zcoJ5gfunFyjVfDWv1eC d+Opjrl7A3imbm6Uf/KkLmVpQfQxNwOpn6KJ04SDXCc8D3y4VorfN/PBUXdRhv5ptjMvmGfu un1nmdf+LAvl+aExs+5s+fdLWHvzimbh1n8dK/smMEu9MzmcHFAt5bb2itO/Wy/C5J6lnrp0 ZvLOH98lIqJ/cjX6BRYtvCSj8XqDtEzUw0sRf+bYzle8kbz6j0DWNX+bu07r1mvdWrFkr5vc U7dU4Y8XTrxQWKPHJFPqdDBgScryxBU/fEXLFK5xybNP9m09den7yidrfd83TbEUuqDEUpyR aKjFXFScCACxHnsJ/AIAAA== X-CMS-MailID: 20210316103736epcas5p3758de57b57c732074acc0989e563cc2e X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P X-CMS-RootMailID: 20210316103736epcas5p3758de57b57c732074acc0989e563cc2e References: <1615891032-29160-1-git-send-email-maninder1.s@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210316_104200_614639_989C4E7B X-CRM114-Status: GOOD ( 21.09 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Adding support for inforamtion of free path along with allocation path of an object: slab kmalloc-64 start c8ab0140 data offset 64 pointer offset 0 size 64 allocated at meminfo_proc_show+0x40/0x4fc [ 20.192078] meminfo_proc_show+0x40/0x4fc [ 20.192263] seq_read_iter+0x18c/0x4c4 [ 20.192430] proc_reg_read_iter+0x84/0xac [ 20.192617] generic_file_splice_read+0xe8/0x17c [ 20.192816] splice_direct_to_actor+0xb8/0x290 [ 20.193008] do_splice_direct+0xa0/0xe0 [ 20.193185] do_sendfile+0x2d0/0x438 [ 20.193345] sys_sendfile64+0x12c/0x140 [ 20.193523] ret_fast_syscall+0x0/0x58 [ 20.193695] 0xbeeacde4 [ 20.193822] Free path: [ 20.193935] meminfo_proc_show+0x5c/0x4fc [ 20.194115] seq_read_iter+0x18c/0x4c4 [ 20.194285] proc_reg_read_iter+0x84/0xac [ 20.194475] generic_file_splice_read+0xe8/0x17c [ 20.194685] splice_direct_to_actor+0xb8/0x290 [ 20.194870] do_splice_direct+0xa0/0xe0 [ 20.195014] do_sendfile+0x2d0/0x438 [ 20.195174] sys_sendfile64+0x12c/0x140 [ 20.195336] ret_fast_syscall+0x0/0x58 [ 20.195491] 0xbeeacde4 Co-developed-by: Vaneet Narang Signed-off-by: Vaneet Narang Signed-off-by: Maninder Singh Acked-by: Vlastimil Babka --- mm/slab.h | 1 + mm/slab_common.c | 12 +++++++++++- mm/slub.c | 7 +++++++ mm/util.c | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/mm/slab.h b/mm/slab.h index c96bca9825d9..e360e3326232 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -644,6 +644,7 @@ struct kmem_obj_info { struct kmem_cache *kp_slab_cache; void *kp_ret; void *kp_stack[KS_ADDRS_COUNT]; + void *kp_free_stack[KS_ADDRS_COUNT]; }; void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct page *page); #endif diff --git a/mm/slab_common.c b/mm/slab_common.c index 4c6107e39f9a..42288db97a52 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -556,7 +556,7 @@ EXPORT_SYMBOL_GPL(kmem_valid_obj); * depends on the type of object and on how much debugging is enabled. * For a slab-cache object, the fact that it is a slab object is printed, * and, if available, the slab name, return address, and stack trace from - * the allocation of that object. + * the allocation and last free path of that object. * * This function will splat if passed a pointer to a non-slab object. * If you are not sure what type of object you have, you should instead @@ -601,6 +601,16 @@ void kmem_dump_obj(void *object) break; pr_info(" %pS\n", kp.kp_stack[i]); } + + if (kp.kp_free_stack[0]) + pr_cont(" Free path:\n"); + + for (i = 0; i < ARRAY_SIZE(kp.kp_free_stack); i++) { + if (!kp.kp_free_stack[i]) + break; + pr_info(" %pS\n", kp.kp_free_stack[i]); + } + } EXPORT_SYMBOL_GPL(kmem_dump_obj); #endif diff --git a/mm/slub.c b/mm/slub.c index 9d13f0117ae6..a0cb90487b1a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -4061,6 +4061,13 @@ void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct page *page) if (!kpp->kp_stack[i]) break; } + + trackp = get_track(s, objp, TRACK_FREE); + for (i = 0; i < KS_ADDRS_COUNT && i < TRACK_ADDRS_COUNT; i++) { + kpp->kp_free_stack[i] = (void *)trackp->addrs[i]; + if (!kpp->kp_free_stack[i]) + break; + } #endif #endif } diff --git a/mm/util.c b/mm/util.c index 143c627fb3e8..9d69ca30514a 100644 --- a/mm/util.c +++ b/mm/util.c @@ -993,7 +993,7 @@ int __weak memcmp_pages(struct page *page1, struct page *page2) * depends on the type of object and on how much debugging is enabled. * For example, for a slab-cache object, the slab name is printed, and, * if available, the return address and stack trace from the allocation - * of that object. + * and last free path of that object. */ void mem_dump_obj(void *object) {