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 D4944C7115B for ; Fri, 20 Jun 2025 08:02:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A19E6B008A; Fri, 20 Jun 2025 04:02:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3526A6B008C; Fri, 20 Jun 2025 04:02:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 268316B0092; Fri, 20 Jun 2025 04:02:41 -0400 (EDT) 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 119186B008A for ; Fri, 20 Jun 2025 04:02:41 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id BF79B567BA for ; Fri, 20 Jun 2025 08:02:40 +0000 (UTC) X-FDA: 83575037280.10.CB5880F Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf08.hostedemail.com (Postfix) with ESMTP id BA584160006 for ; Fri, 20 Jun 2025 08:02:38 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; spf=pass (imf08.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750406559; a=rsa-sha256; cv=none; b=Wb+25Ye+tymKUYMBhHKWB+80WJ2tyP6izUJnk1KEeftYblUBxC9mLrbFziOSOJJ8QP74Gr 3pouJ+Eo+xwBWYxFY50xdQn2/IcKKkQmQlmEjPdsc3oJ4coVu59cB3f5gvedMKZOvoSbyY xNaiWA6HrrzCYYUUawpPdNNSFcUP+f4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; spf=pass (imf08.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750406559; 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:in-reply-to:references:references; bh=pP6EoR8jjOoMg7qjNEapqHxnFme6r45ONEbIPawYF8M=; b=0Vkd9hHZfEoPI9j1NdapZORZevk9756Kck3iVdZP0lTW23MHHF9HjoVu4OKy8AVTA10hnf vtjPGncZtfNXtm3j4y1nQC3bYUznCrLE8dA4QWikfULj7+8+3qg5IzWjLNmzU+hzeNuw51 U8dXMDBZd/eZIlndkDtswNd687t2zzI= 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 37CE5176A; Fri, 20 Jun 2025 01:02:18 -0700 (PDT) Received: from [10.164.146.15] (J09HK2D2RT.blr.arm.com [10.164.146.15]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 713BE3F66E; Fri, 20 Jun 2025 01:02:34 -0700 (PDT) Message-ID: <68cdf649-a273-4d83-b862-6b675a793f18@arm.com> Date: Fri, 20 Jun 2025 13:32:31 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 1/2] lib/vsprintf: Add support for pte_t To: Petr Mladek Cc: linux-mm@kvack.org, Andy Shevchenko , Rasmus Villemoes , Sergey Senozhatsky , Steven Rostedt , Jonathan Corbet , Andrew Morton , David Hildenbrand , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org References: <20250618041235.1716143-1-anshuman.khandual@arm.com> <20250618041235.1716143-2-anshuman.khandual@arm.com> Content-Language: en-US From: Anshuman Khandual In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: BA584160006 X-Stat-Signature: tib5hhrz18net995zfh6ptdrhrygdqiy X-Rspam-User: X-HE-Tag: 1750406558-743528 X-HE-Meta: U2FsdGVkX199zvwhftZzLuckJlOvlL9gRpQgTMpnOes1dX7/ru9uk0fc2U1UYlZwRpymP2n8+Tn+Tea9OG4YI0miAin0QlmS8nVuheo6hUktoHXC0FNJbP4zBGGmQ13Qud2/voCkn0G5uve5QDOtXOPj2f3deJHa+kfuUaezeJmDfWFreVIrNPhinb4wbdlx3fVb5qaYg/Mo1PlAinYBJy4oL/PiDmEAnul/+d5HoApPXnrqrSuf3P4gseb4oERHf/GdgGhoO4RWdjnsqSdWYzOJpMMXn/l/nd7sCK9XTmGvdEnRSGbO1nGcEb7h3T4eW6/TAMpRuSCszdjJe8qeUgo2Pwex2Df515q9i7rXzv858sITVwg/qi5107g4lbCDRYtXX3C/7Mv+ZXcSw6dC3avOvM8fJdxwbV7hj+1PC8Xia4sNjLsISG88/2xq6qDIAuLrkHp5xB3aA94e/YZ9HYfTYLvb6ay9tT1mfu+yNZrucc/3rsQg6TSployKsezIMYiZImraAbIua0xEjcmeGJAf0UOSf+R2UHFgWW9CdkGGnwnKUZaI5eBTjO8W1coi8iS3/bXyx+nho5fYtUv0Fy+8K9A8xaUBOiCpMo0nZDcnWcZ1mUZToEd+nmq5A59VFU8rJ63Jil8/NIwZCFgt2N6x+gHU6KCXy5sfhYRBHBnHWLHW6t7oLbKbs7/y0bqPP3FR/undeR2WPTlYXbaYm7uMD+0+7kK0tFzckn+cW5F/5I+Jg+yYD/D+1AV908PfxPUSf/ubKQcYjc7cyfiosfUScO0kfRvtk0dd/HNLRTtNeXtgyQXweJEZ8HPRetjbCmcZSGyo+RSQBEqLNbvgNK7VohycucvNyqTBpOtyrnwCEs+YMcvryuEPAzrPTEn2rPb2Xx0sXFWLMfRzsVrexPYWqNjpbx0JrQ99H3eDr+LyIeanKdNDY61SsWHHo3xUUFViw3d6hpRcVPT0lqi +5u0owYj lgoSv9xGLDWDrR6fohsARnEx4q7qrWWZAD6WD8LloS34Le4KNq5CGg2p9eHRQO7XPCRsSpGMjfTWksMPo+UVRlDIEBGkCkCfs5B9NaHMwoLhZGqrAAAcAIWNQfpR31cxZrePl/APmYCkVW8fyMjXdDnZjjm5aOmTeorqxVYqHkDOVhFPAq2YpcAZAocdA4K9pIHQo 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 19/06/25 7:31 PM, Petr Mladek wrote: > On Wed 2025-06-18 09:42:34, Anshuman Khandual wrote: >> Add a new format for printing page table entries. > > How many users do you explect, please? > > This patch adds only one caller. It does not justify the added complexity. Understood. The idea is to convert all page table entry prints through out the tree both in generic and platform code. Added just a single generic example here for this being a RFC proposal. Will go through similar instances and be back with more comprehensive change set. > >> @@ -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': > > Please, do not opencode this in the already very long switch(). > Move it to a helper function. Sure, will do. > > >> + if (fmt[1] == 't' && fmt[2] == 'e') { >> + pte_t *pte = (pte_t *)ptr; > > If the value (pointer) gets dereferenced then please add a basic > check: Sure, will do. > > if (check_pointer(&buf, end, ptr, spec)) > return buf; > >> + spec.field_width = 10; >> + spec.precision = 8; > > Is she precision = 8 really needed? > I guess that .field_width + ZEROPAD would do the trick. > > And them maybe special_hex_number() might be used instead of number() > and safe a lot of code. Agreed. Andy also might have suggested about special_hex_number() helper on the other thread. Will try and use the helper instead. > >> + 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"); > > This is nasty. It should be a compile-time check. And the code should Something like BUILD_BUG_ON() against pte_t as either u64 or u32 aka all the sizes the print format is going to support and it should pass on all platforms ? > get fixed on all architectures. If it is not easy then> it might be a signal that the generic %ppte flag is not a good idea. Understood. > >> + return error_string(buf, end, "(einval)", spec); >> + } >> + fallthrough; >> default: >> return default_pointer(buf, end, ptr, spec); >> } > > Best Regards, > Petr Thanks for your review.