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 E41A2C71157 for ; Wed, 18 Jun 2025 18:19:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 845A06B00D9; Wed, 18 Jun 2025 14:19:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 81D4E6B00DA; Wed, 18 Jun 2025 14:19:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75A056B00DB; Wed, 18 Jun 2025 14:19:35 -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 694EE6B00D9 for ; Wed, 18 Jun 2025 14:19:35 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 120855BF2B for ; Wed, 18 Jun 2025 18:19:35 +0000 (UTC) X-FDA: 83569334310.05.1B53472 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf17.hostedemail.com (Postfix) with ESMTP id C7C7C40012 for ; Wed, 18 Jun 2025 18:19:32 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=sBCB2ETU; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=bUpHZ2GX; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=sBCB2ETU; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=bUpHZ2GX; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf17.hostedemail.com: domain of pfalcato@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=pfalcato@suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750270773; a=rsa-sha256; cv=none; b=eL3mhdVuOMh33CImgtBkkEZRc6obSv0ZCZ7xmo6n/cTiRFa8L9ZoMHFJ/wLZ5+GnjorPHq R/Fr9o7Lc0tzqBLiO3qmRGZhCPLs5bcPpar+ISuI565fBo5hICjwDlymCZOhWSOKrEPHn2 y240sij7KLwwFlQ+rJo5dynBkOzJg7Q= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=sBCB2ETU; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=bUpHZ2GX; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=sBCB2ETU; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=bUpHZ2GX; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf17.hostedemail.com: domain of pfalcato@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=pfalcato@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750270773; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2qoAqe6Tz+Ixn12xTbWlPEovX8xRcRkaG3QnFbPGW38=; b=D+xaj1njIPQmaKNkI47uFJJHEyElXfPDiaVyK50QdyFkAQgzb+kOGBdWO+98mnWZKWohdU j/Q9jP4X12nAQdA3L8zam0Xi1qIxHMiKimvrU60Su4K04RhiYQg8IUt+EilTH6CeCgiJRs YvlIr93o7OVTg3I1BaH+OVD0BXaVoRM= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 13C361F7BD; Wed, 18 Jun 2025 18:19:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1750270771; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2qoAqe6Tz+Ixn12xTbWlPEovX8xRcRkaG3QnFbPGW38=; b=sBCB2ETUtaw34+DuQPPHpSrGBsVJpQUu8owr5sMTKIIGGUOXXrNOlkDWI/hq72SkdUQfRA 8NsnjfxmFkPYgfFtvaGN2v8LAXksKV71M7w7Ch8mRU2ytNyrpI/wPBUxWhrsyanD4rV1MO 08bsGxJYBAiQNTIh1YLM9sZpJsS0AUM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1750270771; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2qoAqe6Tz+Ixn12xTbWlPEovX8xRcRkaG3QnFbPGW38=; b=bUpHZ2GXCUtxX5l5Yyz+YWiwGQxe4ldWuSVUM3CLZdoiRquylArkeXwho32B2YoCZCXeuG AaE3RSbrgMiEHkCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1750270771; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2qoAqe6Tz+Ixn12xTbWlPEovX8xRcRkaG3QnFbPGW38=; b=sBCB2ETUtaw34+DuQPPHpSrGBsVJpQUu8owr5sMTKIIGGUOXXrNOlkDWI/hq72SkdUQfRA 8NsnjfxmFkPYgfFtvaGN2v8LAXksKV71M7w7Ch8mRU2ytNyrpI/wPBUxWhrsyanD4rV1MO 08bsGxJYBAiQNTIh1YLM9sZpJsS0AUM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1750270771; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2qoAqe6Tz+Ixn12xTbWlPEovX8xRcRkaG3QnFbPGW38=; b=bUpHZ2GXCUtxX5l5Yyz+YWiwGQxe4ldWuSVUM3CLZdoiRquylArkeXwho32B2YoCZCXeuG AaE3RSbrgMiEHkCA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 4758113A3F; Wed, 18 Jun 2025 18:19:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id xXVlDjIDU2gyRwAAD6G6ig (envelope-from ); Wed, 18 Jun 2025 18:19:30 +0000 Date: Wed, 18 Jun 2025 19:19:28 +0100 From: Pedro Falcato To: Anshuman Khandual Cc: linux-mm@kvack.org, 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: Re: [RFC 1/2] lib/vsprintf: Add support for pte_t Message-ID: References: <20250618041235.1716143-1-anshuman.khandual@arm.com> <20250618041235.1716143-2-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250618041235.1716143-2-anshuman.khandual@arm.com> X-Rspamd-Action: no action X-Stat-Signature: 7156cpp6ppmtrcfdmbndkpapuihhmfja X-Rspamd-Queue-Id: C7C7C40012 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1750270772-850902 X-HE-Meta: U2FsdGVkX1+BumYRUfu/rt/Q4XjYZ5tEY6Yo97smuDx33b+qHkPdYd1JugdB1LLWS9jHh3rVgB8SVSZBtvuFFfV2vZ58NkA96LikWU2DmCZTJqL32xknFR5/O3fbumiuIU0mrFQUHRj6iMCoVoJYcA6eGzD9+g/PBswcucCU6pXCSBeZgF5hKOYK1QAqTndj29+KVzwDJZwCabuCwkjvSmqt944/97Hlzg3yhQWkqcFfX2hqjfgoOhQzoD80y3/E2nNU7eJe8j2och8HtpjSRRS03d6ptdeCvP2o+FwFILrAkEXCuudFiV9nSLbX7mdhhZg16eVCjoSY6SdEWRjpzZQ9XWxlx5u+B4RhviNufgfkMNCS6JBHOEKFA7lYkUjVepjQDuPdfKxlIkmT1eK9OeHDtKe61XeRdiMw/VjkRKJfaBQkUrpRtINOWoaUsDjEI/p/X/CH/uHTHR7IcbVLUP4Rwv4WpdyVqt7tpELbEoHqEoYCVZ8/O6370OtTS6nnMEzb5yjO3SZEDhm/jI4nj8IAT9ZjqhYNWZItHeQeHE/DtdMTxIuQm73Iq6SF2n69gy6Udd1L8U3pbRQMQ4zO37Ztw1TDRtS5tcxo2Q801QxOCkfnnrBIZYB2F4P6zlx6nrFUyqAr2hWyiVrUC3JDjdnDEJVeIVp5n83VqDtideR7QftFYejeOxtRxsoo5vpeL9L+8s9nBxOW9Lu2oHUip3o4EGiIFp1Mnm9S0GK/k3ef+LKRFhNc6yyPuHug5rqJG03Rc8DyNJfDSNS3nwBIAkapsfxAe/lyb0DMMcXPjLBaNb1egfWxB9Y5IHRao/kWjmOVmY+CL3fX1/i9f38HDG/vSdUHwM32YLe+SATcAEMKUpDHmOTycIfBQvRe4giUAtnbWEDTWtxDlzlxlc7uvzRL0528jZq07gRvYwhVOCYegCsmZJf20zihCbUSaTKj3d98BQPsCsJDl1etquA K3cZY0Ly iLFNag0HOO1/c0dKpGyLf163pZ54gh78cmHYFvaRErCv/Tup/WLdpUj1TO3i6oYSL1y3B+149xEguI/BNyl7C4o4uW8KGoJM9bBOP6W1UjzEW6nLDA82OGTREY2e4aFLn+8i4QeUJ03+wYxwRP0UXNBkX4Yv+qj9lkklaWZiUxqAZfXW4xnv/6PKdLV4AyNHGFyEMkC++RMgO+ZueNjzAq5K8HRoQp4cE2ZwjX3kM6saOY7QbG5mI5PEo8/DpRqLC6WW6wGYEHRdG0oq3mR2uyerxorf1jBmBIIIsxldJIti8PqEdHYafYFsUuxdOfca+zZ/FQ5LubibCq3Mu85gsdnrM0mDAroGgPQNIYcA+8f/7rQ2rx7SHkhJhHbzp7EoDlJ+/0fqzI3f2H1jOgJOChinj8BLwX3JPFOUMXpy4lWW55ME4Y/uDrh1Zz5CcaxwPgzDydwgNcViXNdMOjr/hg6IaVqY/U2Xz4UEy8FDWvF0InW7wpZavFuZKjimzlBLsQs1SEvzTmJ9r825Ul3gn/GCto1fgiRBbiqv7j0Hxrn6IqNnd7MvWoMOVXx+WBeoTfY/BNJreNo52dETDOWn+h1VjWcBoXyFPvzOuHJQCMBEfH3lBDqgLLeBhKkhb6y6o1E4Eo61WyPtk0PDDTM6B5kPzFSzfcpDA/bP1LQJsi6gAX2GqIUq37twVhy/DJOCqUeiUOeYBFrc9f8/vKcWzVtlRPijP9Hgb/rkjVncrhGiU4qc+t6JBKkNL8g== 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: On Wed, Jun 18, 2025 at 09:42:34AM +0530, Anshuman Khandual wrote: > 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 Ok, so what's the point of this if you're just printing the number? Could at least do something like: %ppte 0xc0ff000|WRITE|DIRTY|PRESENT no? Otherwise it's a not super useful wrapper around printing pte_val(*pte). > + > 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); > + } As mentioned elsewhere in the thread, this obviously doesn't work for everything 32-bit, and 64-bit PAE, and all of the weird page table formats we have around. -- Pedro