From patchwork Thu Feb 6 11:45:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catalin Marinas X-Patchwork-Id: 13962938 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 7688DC02196 for ; Thu, 6 Feb 2025 11:45:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C018E6B0085; Thu, 6 Feb 2025 06:45:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BB1616B0088; Thu, 6 Feb 2025 06:45:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A9FE86B0089; Thu, 6 Feb 2025 06:45:44 -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 8CF8C6B0085 for ; Thu, 6 Feb 2025 06:45:44 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2C6664B305 for ; Thu, 6 Feb 2025 11:45:44 +0000 (UTC) X-FDA: 83089340208.27.94D42F4 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf25.hostedemail.com (Postfix) with ESMTP id 9CC42A0039 for ; Thu, 6 Feb 2025 11:45:42 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of cmarinas@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738842342; 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; bh=59wfkg/Xc9U6cW1cAJEjmyti7JBgA40SpKHWdxE0tN4=; b=YH/2xFytMDd5LHf0cXD2YKSGPwRGLamVvDAFeyhBYR6tUAMm+gYI4WJxIP2C/nZ/0miwz8 AePfDnQeQQkxyn0+SYCub4GULFpcyqQZ8W94jjy1lWjLql3tL2JDRyVnhgalnGgjuIedgx JUA3cKfGbktwOFo/15vLdHoVxCyopyk= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of cmarinas@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738842342; a=rsa-sha256; cv=none; b=fueqrUUSuKjUly5SKTUyXbaGD7ysSJFEBd8mxGneswQgr+EVN7TKkMxzne8CmsfmQqY9gP h7Rk0pkkylevM0BkqWiELzttX6GDI4G1YYrsW7PrelsZdlBlyHEgmsoezODf7sjBaOrzk0 8m0vA619zeYVh4vVluc6smXJ97VBQPw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id F405AA40573; Thu, 6 Feb 2025 11:43:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CC287C4CEE2; Thu, 6 Feb 2025 11:45:40 +0000 (UTC) From: Catalin Marinas To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Andrew Morton Subject: [PATCH 1/2] mm: kmemleak: Add support for dumping physical and __percpu object info Date: Thu, 6 Feb 2025 11:45:36 +0000 Message-Id: <20250206114537.2597764-2-catalin.marinas@arm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250206114537.2597764-1-catalin.marinas@arm.com> References: <20250206114537.2597764-1-catalin.marinas@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 9CC42A0039 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: h99oq5piifnc1xyoiwpu9jdokf1uxod3 X-HE-Tag: 1738842342-942764 X-HE-Meta: U2FsdGVkX1+g0FckS2yDdyaCdJWLDAFV+62GeKKf/mMDgm3yHUYMn55jq4BuGCaW62uKIS1quvtWrg6ZF6913hSv6kLsPUmBMK6MjmZKpAjpkgYfGvmqTWuL8DGuEM0uJFcgQOKdR7Xmb1g+C4ZHvdSFBbPxbw4FwX2xZVlrIB94fU0XzLESCySS5/IjJN/dxP9SXEsGW0LjQ8LlCo3nTbbsCVLwGau0gWUJO4/f4d1CwonlqN4XzacUyC7nWeYaYf84YgSkJbbYpKfOPz59HImyCp21RPFaOhCWMeqnW22LK2a6wc7Qkq0VFiD6YwZ+vGshrjDFQdGPNJ1E7AsoluGUuon3W4Jnx7ECZI2B3yeIea+RbkeoO/v3Cg+mPHOnkJv0+P4kulIQOz9eidShPyhrDenZLI45K61WEbfnwHW3hTnaick50S+pmseNT97cgAfSe7FL9EGkX0P+M845qp6GfWRkYuJ6urTv6F6QLkvjkxrA89xNMnxlXd1NwUKgg+oAg7TMQf5px6t12rYipAQi0cSCljgXvuaEX9/yi3PjSOjFjht7reYYjfcRknIt2Na+2fbwB1kwyHv435jV7RqTzPg2Q7iA+iuFbBJBOEQS3+8lX5wEWZ9xbBTf8BsSfE5MmeHcID2ThaLDT2xoJ49e+WSIBMJhx2GveS49RM62XZwu9NbokDor42NfV5rBTN+4XIPg/xiknvq1Z9cCJjGnOZfEfGqj/K6623zR9NB04buXzAv2f1OLlazIex5pHTGPcu0DkYcQtv8jDbg0KlL3CVoPxAx55c2m/87Sp07TxLp5cAS8vwHktfkepjFExpMA7V2vHzaFiSY71aCF5x+YLEcZYVyP3ha9k2B+6LsWovJpIotfUQq72FyZuM6ETJHQfXRClKNBPXY1jOO9SlXxxFDbTP4+K9H8RNlrbUFXejv2Tala81lHlBrOcFuQ6whpuq2kngO0amPCu2w HZJDf/xT 0wFtQnd95681PeFA5hBRO8m1p+7DHb5r9bNsthvjboMoYPlI36+fRERX4oMQeDdLsMcs0uwAVXgmIJNT/9AC6qZxnTQi7WUXYTo2P35LCCHVqD8jm9GBjb3dtFQXzqMeu5ktUhnvCibWdgpdzUL51jHqaTBUpWVr2IPY8utZmWj351Kz5IDXDu6yJXx87VMJP5AFBjyImoKDbHW0AtebN/c2iAhfTyuS+bMuF1D21Ltrjv9OmlSaLZF0tryNWEcjVsRVWtsr2Mvyc+YCQKnjCC0DkFZfVdOOwYrqYopzxrIx+27z5jUiypFVCVN2ymYWqj1PuroQ0h7Cej8YSZ73GarBPOJh2JwaCzbklNRRaTzpdV31q5xrQ9wdIDEBjcKziPWF5hB+4as2oQyUT8dbex1kF4XibR/awrCUfkfqM3i+5Ckj7Pk4B9401RR9ZgVLRVtjaMwlVFZw+NrDeCRlA+d99lA== 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: List-Subscribe: List-Unsubscribe: Currently, echo dump=... > /sys/kernel/debug/kmemleak only looks up the main virtual address object tree. However, for debugging, it's useful to dump information about physical address and __percpu objects. Search all three object trees for the dump= command and also print the type of the object if not virtual: "(phys)" or "(percpu)". In addition, allow search by alias (pointer within the object). Signed-off-by: Catalin Marinas Cc: Andrew Morton --- mm/kmemleak.c | 54 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/mm/kmemleak.c b/mm/kmemleak.c index c6ed68604136..c12cef3eeb32 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -352,6 +352,15 @@ static bool unreferenced_object(struct kmemleak_object *object) jiffies_last_scan); } +static const char *__object_type_str(struct kmemleak_object *object) +{ + if (object->flags & OBJECT_PHYS) + return " (phys)"; + if (object->flags & OBJECT_PERCPU) + return " (percpu)"; + return ""; +} + /* * Printing of the unreferenced objects information to the seq file. The * print_unreferenced function must be called with the object->lock held. @@ -364,8 +373,9 @@ static void print_unreferenced(struct seq_file *seq, unsigned int nr_entries; nr_entries = stack_depot_fetch(object->trace_handle, &entries); - warn_or_seq_printf(seq, "unreferenced object 0x%08lx (size %zu):\n", - object->pointer, object->size); + warn_or_seq_printf(seq, "unreferenced object%s 0x%08lx (size %zu):\n", + __object_type_str(object), + object->pointer, object->size); warn_or_seq_printf(seq, " comm \"%s\", pid %d, jiffies %lu\n", object->comm, object->pid, object->jiffies); hex_dump_object(seq, object); @@ -384,10 +394,10 @@ static void print_unreferenced(struct seq_file *seq, */ static void dump_object_info(struct kmemleak_object *object) { - pr_notice("Object 0x%08lx (size %zu):\n", - object->pointer, object->size); + pr_notice("Object%s 0x%08lx (size %zu):\n", + __object_type_str(object), object->pointer, object->size); pr_notice(" comm \"%s\", pid %d, jiffies %lu\n", - object->comm, object->pid, object->jiffies); + object->comm, object->pid, object->jiffies); pr_notice(" min_count = %d\n", object->min_count); pr_notice(" count = %d\n", object->count); pr_notice(" flags = 0x%x\n", object->flags); @@ -1998,25 +2008,41 @@ static int kmemleak_open(struct inode *inode, struct file *file) return seq_open(file, &kmemleak_seq_ops); } -static int dump_str_object_info(const char *str) +static bool __dump_str_object_info(unsigned long addr, unsigned int objflags) { unsigned long flags; struct kmemleak_object *object; - unsigned long addr; - if (kstrtoul(str, 0, &addr)) - return -EINVAL; - object = find_and_get_object(addr, 0); - if (!object) { - pr_info("Unknown object at 0x%08lx\n", addr); - return -EINVAL; - } + object = __find_and_get_object(addr, 1, objflags); + if (!object) + return false; raw_spin_lock_irqsave(&object->lock, flags); dump_object_info(object); raw_spin_unlock_irqrestore(&object->lock, flags); put_object(object); + + return true; +} + +static int dump_str_object_info(const char *str) +{ + unsigned long addr; + bool found = false; + + if (kstrtoul(str, 0, &addr)) + return -EINVAL; + + found |= __dump_str_object_info(addr, 0); + found |= __dump_str_object_info(addr, OBJECT_PHYS); + found |= __dump_str_object_info(addr, OBJECT_PERCPU); + + if (!found) { + pr_info("Unknown object at 0x%08lx\n", addr); + return -EINVAL; + } + return 0; } From patchwork Thu Feb 6 11:45:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catalin Marinas X-Patchwork-Id: 13962939 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 C34ACC02194 for ; Thu, 6 Feb 2025 11:46:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 439F86B0089; Thu, 6 Feb 2025 06:46:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3EA23280002; Thu, 6 Feb 2025 06:46:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2D8B3280001; Thu, 6 Feb 2025 06:46:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1090C6B0089 for ; Thu, 6 Feb 2025 06:46:09 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6B2411A114F for ; Thu, 6 Feb 2025 11:45:45 +0000 (UTC) X-FDA: 83089340292.12.605193F Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf11.hostedemail.com (Postfix) with ESMTP id E2E0B40054 for ; Thu, 6 Feb 2025 11:45:43 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf11.hostedemail.com: domain of cmarinas@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738842343; 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; bh=mY+ZPPhImhWwNYpW3wGzjhzP4b2l4aJuMA/jsvYcT60=; b=as98/ZTApp0pfBNT0yXu9nFOb02qFSLZu5EFN+f2DkgT+eKDyIaMSEZ+UjPwzGWbU+NWWZ vmtahntZZ3m9jp7+JU34/ydlTRXovzLXLz5O4G7g0BrFQo4cu9XrdhKQILfE/w8ZDwP/wV pXT94EEeLW78yE6+2Rs69CwCYo/oaLU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738842343; a=rsa-sha256; cv=none; b=4j2d0CpiDoctJ4sb8HV1d1uLCOgE6HvXGyql8GqX87fjRsGQRDzQfNipn19QPG2ET+EROZ tkRAGUG3zsK7h3Ol2Jabng47x3yoqw7ADXWJhe7lOcPft9nyjUkqinpbeU4CGNT5QnvtFb RKuT9iR5cPZGxXYBRll4Hwvj1iCJ55o= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf11.hostedemail.com: domain of cmarinas@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=cmarinas@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 3E966A441E2; Thu, 6 Feb 2025 11:43:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11B5DC4CEDD; Thu, 6 Feb 2025 11:45:41 +0000 (UTC) From: Catalin Marinas To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Andrew Morton Subject: [PATCH 2/2] samples: kmemleak: Print the raw pointers for debugging purposes Date: Thu, 6 Feb 2025 11:45:37 +0000 Message-Id: <20250206114537.2597764-3-catalin.marinas@arm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250206114537.2597764-1-catalin.marinas@arm.com> References: <20250206114537.2597764-1-catalin.marinas@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: E2E0B40054 X-Stat-Signature: cm6umeqxk1qoe4r4yx4jqkg6okot554b X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1738842343-525756 X-HE-Meta: U2FsdGVkX18Dg3djfs4UwZ6OdqgZb5dD+bEXo7BUBxS05Vuunjq07hW1nYJcMYdMtHpy+5Ph6KAEzn8xVhaLsFXY4auKNRkwm8ijM4pKYXsdUhPXqw8Pe8O+feOOTYPY9d3VDBdB1PzbAaRvk7mdy4h6mT6DOwejZzgdmkztcmaH/wFu4Dcg66090TdfQoUc3uZwi1YBvVigCw7eb64xtSZe/F20aqZKKUnphmtmZs0NxGBKqkWg8+QlRONLCHwQvFyLhbFAxPx0h3da4xdeRM6RAXMf6hwuictq7DDmdrd529vv98guCg2lvwJbNu6Z7j0qIwGKAucbbERB9vmCZytSNw6UI8MbktFQDOcEq2uNH+us01ga/HkKobsJ3fMpZak07R+bBL+DCUqTlTitRWp7OC2Sfr6jhNijSNkhfrUvYEtGdJHcOb6NQCodgux8RfUEhAMZsBaKvvuHWJ0hraH109essdWvWcaDdVaNwkFhIViEEmsenl1lyaHm420tvivUsV6YV8PyHNVBLzT5D5Uc97k9+n75766GXaa64lTmf1Y8N4zcpopFusLSYB/xGnqescaWjb5qzSLvXEtJVQmiVxTaeL3FvFqsxokDzZmhFIz3XuOhKZjLWPCxnvZP4sAHxvql+I6hQjNt8k/rLraUFtvXSc3uI/BWu/CDH8GzZ6zD03twbWCuau/GMcYg8qNR9Nukxd7W1okm54/ao0AhBAQOQ764cbtO6GLC5kVYYyf5G3PXO5Di8iSRu3o4VECRWjdC36J02dEBqVi7KnNAeX9qyrO/sofw/r0KdXrC6928LCIv8nh6JR2/N3OAZh9V0skwCbvtaJ8D2mZxoSbj87uYicSSPDLKpXEbYW4CKago0rJ2hKxI9A34R0CyoYJ0Z/06YTVgsfewqA2c3BWBOuptl4r1A6f3YyLGuyohO1GRF+kvqMDtzZUqpH2PjuoIppDQmNYN9lzKZUD ox/X9Diz qsOYK8Fpb0HV/GvRjoVcec581YHZ0SduuZEvtN2QXNbszcd+vXYYuxTGtnyD5ItyEro5hCaWpHB5ORsPx0m80+D9eWNXUVwbrl6ICrRTzfqly3G/yJHG6FnBS+BkDs9E/7GrqIR3hXxg3/IwMLZ+bv62aXuEjrOfyuZAw1uRgx8xPTbyC7eBkdxY7Ukzs7MgJAXXMyHZOGN7e4a6LL2/w/B4ZXn7gLrZ+oT6bT0tONtq7akD4aI5DCTO74MeGV6g/mQk/8Sw8Y5GMfmKO4WxvYAoSjte3VxOA5Gt7Py9XqxpbKUOHUuXrtiNCWZCHEUvMk7bWtqvqpRPMYYMmjBR/rBcl4CGED5TVKAiOOWSOjV0+/ZlM/1lEzC4JfVRU3x2/hND/LdW5rAUdvkU5htUuVSL81YjO1MGlXZH9 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: List-Subscribe: List-Unsubscribe: The kmemleak-test.c module is meant to leak some pointers for debugging the kmemleak detection, pointer information dumping. It's no use if it prints the hashed values of such pointers. Change the printk() format from %p to %px. While at it, also display the raw __percpu pointer rather than this_cpu_ptr() since kmemleak now tracks such pointers independently of the standard allocations. Signed-off-by: Catalin Marinas Cc: Andrew Morton --- samples/kmemleak/kmemleak-test.c | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/samples/kmemleak/kmemleak-test.c b/samples/kmemleak/kmemleak-test.c index 544c36d51d56..8609812a37eb 100644 --- a/samples/kmemleak/kmemleak-test.c +++ b/samples/kmemleak/kmemleak-test.c @@ -40,25 +40,25 @@ static int kmemleak_test_init(void) pr_info("Kmemleak testing\n"); /* make some orphan objects */ - pr_info("kmalloc(32) = %p\n", kmalloc(32, GFP_KERNEL)); - pr_info("kmalloc(32) = %p\n", kmalloc(32, GFP_KERNEL)); - pr_info("kmalloc(1024) = %p\n", kmalloc(1024, GFP_KERNEL)); - pr_info("kmalloc(1024) = %p\n", kmalloc(1024, GFP_KERNEL)); - pr_info("kmalloc(2048) = %p\n", kmalloc(2048, GFP_KERNEL)); - pr_info("kmalloc(2048) = %p\n", kmalloc(2048, GFP_KERNEL)); - pr_info("kmalloc(4096) = %p\n", kmalloc(4096, GFP_KERNEL)); - pr_info("kmalloc(4096) = %p\n", kmalloc(4096, GFP_KERNEL)); + pr_info("kmalloc(32) = 0x%px\n", kmalloc(32, GFP_KERNEL)); + pr_info("kmalloc(32) = 0x%px\n", kmalloc(32, GFP_KERNEL)); + pr_info("kmalloc(1024) = 0x%px\n", kmalloc(1024, GFP_KERNEL)); + pr_info("kmalloc(1024) = 0x%px\n", kmalloc(1024, GFP_KERNEL)); + pr_info("kmalloc(2048) = 0x%px\n", kmalloc(2048, GFP_KERNEL)); + pr_info("kmalloc(2048) = 0x%px\n", kmalloc(2048, GFP_KERNEL)); + pr_info("kmalloc(4096) = 0x%px\n", kmalloc(4096, GFP_KERNEL)); + pr_info("kmalloc(4096) = 0x%px\n", kmalloc(4096, GFP_KERNEL)); #ifndef CONFIG_MODULES - pr_info("kmem_cache_alloc(files_cachep) = %p\n", + pr_info("kmem_cache_alloc(files_cachep) = 0x%px\n", kmem_cache_alloc(files_cachep, GFP_KERNEL)); - pr_info("kmem_cache_alloc(files_cachep) = %p\n", + pr_info("kmem_cache_alloc(files_cachep) = 0x%px\n", kmem_cache_alloc(files_cachep, GFP_KERNEL)); #endif - pr_info("vmalloc(64) = %p\n", vmalloc(64)); - pr_info("vmalloc(64) = %p\n", vmalloc(64)); - pr_info("vmalloc(64) = %p\n", vmalloc(64)); - pr_info("vmalloc(64) = %p\n", vmalloc(64)); - pr_info("vmalloc(64) = %p\n", vmalloc(64)); + pr_info("vmalloc(64) = 0x%px\n", vmalloc(64)); + pr_info("vmalloc(64) = 0x%px\n", vmalloc(64)); + pr_info("vmalloc(64) = 0x%px\n", vmalloc(64)); + pr_info("vmalloc(64) = 0x%px\n", vmalloc(64)); + pr_info("vmalloc(64) = 0x%px\n", vmalloc(64)); /* * Add elements to a list. They should only appear as orphan @@ -66,7 +66,7 @@ static int kmemleak_test_init(void) */ for (i = 0; i < 10; i++) { elem = kzalloc(sizeof(*elem), GFP_KERNEL); - pr_info("kzalloc(sizeof(*elem)) = %p\n", elem); + pr_info("kzalloc(sizeof(*elem)) = 0x%px\n", elem); if (!elem) return -ENOMEM; INIT_LIST_HEAD(&elem->list); @@ -75,11 +75,11 @@ static int kmemleak_test_init(void) for_each_possible_cpu(i) { per_cpu(kmemleak_test_pointer, i) = kmalloc(129, GFP_KERNEL); - pr_info("kmalloc(129) = %p\n", + pr_info("kmalloc(129) = 0x%px\n", per_cpu(kmemleak_test_pointer, i)); } - pr_info("__alloc_percpu(64, 4) = %p\n", __alloc_percpu(64, 4)); + pr_info("__alloc_percpu(64, 4) = 0x%px\n", __alloc_percpu(64, 4)); return 0; }