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 7D2D4C7115B for ; Wed, 18 Jun 2025 04:12:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1BFE96B0089; Wed, 18 Jun 2025 00:12:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1715D6B008A; Wed, 18 Jun 2025 00:12:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 086B96B008C; Wed, 18 Jun 2025 00:12:53 -0400 (EDT) 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 EF83B6B0089 for ; Wed, 18 Jun 2025 00:12:52 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 75BF21A0147 for ; Wed, 18 Jun 2025 04:12:52 +0000 (UTC) X-FDA: 83567200584.24.3684F3D Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf23.hostedemail.com (Postfix) with ESMTP id CE9D2140002 for ; Wed, 18 Jun 2025 04:12:50 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf23.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750219971; 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=9ai0uWsw1RzE6MpHaKyXuDGZ6YH9/2dMXu1rpmLu/k8=; b=sw5AWxesc0GNmbz9oHbdvMGc1Q/v2KFSF4Nte0oGZ5ELOsWoovJT/ly9JJOKs1T583P8H9 noVGnS63u/0ShI7JNTc2p/TAn1WVVCoT5DlDSZkIp1FAgO3OfDUbweDmbuWnL2Z70193nq e0OR68gfxP9hdakg7QckicDCa9//UvM= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf23.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750219971; a=rsa-sha256; cv=none; b=Z58ab04FQ296PlbdDU9PvUdRBfLaWNskruHuqLH8q59shkxAm9mfh71/KRqyezYyCFB42w OZaTKkTIx2PUFoguA9PysPbWXDbwq8nI4CQBboZMBFlkICEh3tkLwE2XAN5k1nRO3CrMHz ZWU5zPuW+N2JO2pcIakoZ1q8szzFxKM= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 614E114BF; Tue, 17 Jun 2025 21:12:29 -0700 (PDT) Received: from a076716.blr.arm.com (a076716.blr.arm.com [10.164.21.47]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9A4793F66E; Tue, 17 Jun 2025 21:12:46 -0700 (PDT) From: Anshuman Khandual To: linux-mm@kvack.org Cc: Anshuman Khandual , Andy Shevchenko , Rasmus Villemoes , Sergey Senozhatsky , Petr Mladek , Steven Rostedt , Jonathan Corbet , Andrew Morton , David Hildenbrand , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Subject: [RFC 1/2] lib/vsprintf: Add support for pte_t Date: Wed, 18 Jun 2025 09:42:34 +0530 Message-Id: <20250618041235.1716143-2-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250618041235.1716143-1-anshuman.khandual@arm.com> References: <20250618041235.1716143-1-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: CE9D2140002 X-Stat-Signature: jhxrutosicssrubuokr8qh4ru178girw X-HE-Tag: 1750219970-616717 X-HE-Meta: U2FsdGVkX18gE80sNK5pXjrg5IYRtSN8+gikR0ptNwSmPDSg17wkApnpzBDr2rkw4Utq9YYAxlDbkp+kvDpQu99BTY1DjiMQZQbwMWCWf0yHpypSNsjz57gz230yHgd1j/52ETS+AEqnvQFq6WArZIlQic9NGM0jw7mODOEOldAaj8N7dWQSDau21+/V8lZmFy+QUPvoUw0wteSPwBvEtjFvaZnX8t1NBpDaCN1vvw0tHldOM9E6ZI60lS8D6UqF2RclYPMFI+TLKc5iE8j2uvLZS4dTbB1o8sl2t5T6gy+J108+SE5mPFPrIFExhj16TJJHNLsw0eng315lpLDS+TUoBuV1pPq44R33p4wfIix/JpUScVMHgojFWAhocm2xcAW5RAZjPY+iS/Y/tZoZf+gqWYcTV6ZK0TSw6DMBvdsseqUwMvQblqVNtoFVw7zKtVRnN7Z5KED4LUs2mBTqWPriMlJwjnykg81EDCbRIohH+5cVsJLxApNquMFD9gjJldMY5fxpj0JOdatvwifH4gntlOvywT4QqcL5LX2njHj6do1DesLIo8e6ri1TRVO0bxsYQPTQyLqtP4qzL6TdpOvKkNrbNjB/BowkZCmwtJpdvGyUcnyl51gcdKwe/Z0/jRhlkS6QI9nAc2EAjghzS3LzUIF6naILegqkFRqKcFap7X5W0keohebzit5VPmzqj78djBrAzq7A3U23y/h2iXDmQWZBA7KrSg/LY83peCs1vwV1Lgvn3w9Pk6PD3yaY4Z8fsKGGMBxM+U00LIWzssXnirR9+tsBmFBSKJ3b1Vcj3HzrwXmS1HfjjYBMB9T8fJnfb3U4ygV1vC3Gcb1mwNWMj9VqxXiDuYqouwkuFL6iQAUczLQc3kNsXeGfSphlStYcIDXEaA6sHS7qNk8Fu1M4SbWqoCKBgcHn31cdKJ//aKLQ3J/ZpbdK14ipl+nIuG/xLSAznNJMIH+dHCF O889am89 k4VaELyAa+pGfV1c2K/kd7E4iM85U2l8sMV15nQuKmRfoZbFLBy4BNDmP063ZlATxn0Zpcs+oGnAHxZEi/aWZF6aHvyqdTPlKrlL9FoqOrGZpxbQ4FfWqXwioynxa7PqPu1+x4rL/au2brj3Kxp5G7ulw+koka+D+ZDumycxPZpzz33Na0g/LOSIYkILdKn6pGLVKp0SwLOupdGn0e11bwgIna9gZKzwuc/7F1Z4t8L9CtvRuogNiPdSL3FgRNs1Sijo+jv1ofTTZvt+1FwpWzs5gcL37BG7CrhQjZ07gvBDPhcAO/EGanivnqgdzc6OVlSq/6s9yFxyihU0ACgHMS9h6nIrWCk7k1LbaFcB7zWPW6eo+6VwzNxUvuOoDbRNa6cP6YaXGcLzCC4EQgZWkJHT7tWt9+Z4yVAxicrkFnIJEjkjCqs+k4sfmixKa1/C7q5hnKTTfuzHAC1q4nUI4saMXsPbGPM5LhkV+0btX58Y0u0pHKQrsSl/U+MO+r8uxKFn1tsnY6j8x7UG2KYzv6QEewB467kNpnL3nRgY0Ky1xPtA= 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: Add a new format for printing page table entries. Cc: Petr Mladek Cc: Steven Rostedt Cc: Jonathan Corbet Cc: Andrew Morton Cc: David Hildenbrand Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Signed-off-by: Anshuman Khandual --- Documentation/core-api/printk-formats.rst | 14 ++++++++++++++ lib/vsprintf.c | 20 ++++++++++++++++++++ mm/memory.c | 5 ++--- scripts/checkpatch.pl | 2 +- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/Documentation/core-api/printk-formats.rst b/Documentation/core-api/printk-formats.rst index 4b7f3646ec6ce..75a110b059ee1 100644 --- a/Documentation/core-api/printk-formats.rst +++ b/Documentation/core-api/printk-formats.rst @@ -689,6 +689,20 @@ Rust Only intended to be used from Rust code to format ``core::fmt::Arguments``. Do *not* use it from C. +Page Table Entry +---------------- + +:: + %ppte + +Print standard page table entry pte_t. + +Passed by reference. + +Examples for a 64 bit page table entry, given &(u64)0xc0ffee:: + + %ppte 0x00c0ffee + Thanks ====== diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 3d85800757aa5..005490202ffb5 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -2433,6 +2433,9 @@ early_param("no_hash_pointers", no_hash_pointers_enable); * Without an option prints the full name of the node * f full name * P node name, including a possible unit address + * - 'pte' For a 64 bit page table entry, this prints its contents in + * a hexa decimal format + * * - 'x' For printing the address unmodified. Equivalent to "%lx". * Please read the documentation (path below) before using! * - '[ku]s' For a BPF/tracing related format specifier, e.g. used out of @@ -2542,6 +2545,23 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, default: return error_string(buf, end, "(einval)", spec); } + case 'p': + if (fmt[1] == 't' && fmt[2] == 'e') { + pte_t *pte = (pte_t *)ptr; + + spec.field_width = 10; + spec.precision = 8; + spec.base = 16; + spec.flags = SPECIAL | SMALL | ZEROPAD; + if (sizeof(pte_t) == sizeof(u64)) { + u64 val = pte_val(*pte); + + return number(buf, end, val, spec); + } + WARN_ONCE(1, "Non standard pte_t\n"); + return error_string(buf, end, "(einval)", spec); + } + fallthrough; default: return default_pointer(buf, end, ptr, spec); } diff --git a/mm/memory.c b/mm/memory.c index 8eba595056fe3..c9a057b371eae 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -522,9 +522,8 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr, mapping = vma->vm_file ? vma->vm_file->f_mapping : NULL; index = linear_page_index(vma, addr); - pr_alert("BUG: Bad page map in process %s pte:%08llx pmd:%08llx\n", - current->comm, - (long long)pte_val(pte), (long long)pmd_val(*pmd)); + pr_alert("BUG: Bad page map in process %s pte:%ppte pmd:%ppte\n", + current->comm, &pte, pmd); if (page) dump_page(page, "bad pte"); pr_alert("addr:%px vm_flags:%08lx anon_vma:%px mapping:%px index:%lx\n", diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 664f7b7a622c2..fb8abc5dbfb8e 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -6906,7 +6906,7 @@ sub process { my $fmt = get_quoted_string($lines[$count - 1], raw_line($count, 0)); $fmt =~ s/%%//g; - while ($fmt =~ /(\%[\*\d\.]*p(\w)(\w*))/g) { + while ($fmt =~ /(\%[\*\d\.]*p(\w)(\w*)(\te))/g) { $specifier = $1; $extension = $2; $qualifier = $3; -- 2.30.2