From patchwork Mon Mar 10 09:59:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anshuman Khandual X-Patchwork-Id: 14009499 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 B3CCAC282DE for ; Mon, 10 Mar 2025 09:59:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9310D280002; Mon, 10 Mar 2025 05:59:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B86A280001; Mon, 10 Mar 2025 05:59:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75A24280002; Mon, 10 Mar 2025 05:59:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 549BE280001 for ; Mon, 10 Mar 2025 05:59:14 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 83EC0B6E86 for ; Mon, 10 Mar 2025 09:59:14 +0000 (UTC) X-FDA: 83205193428.24.ADFF42D Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf17.hostedemail.com (Postfix) with ESMTP id A8D2140008 for ; Mon, 10 Mar 2025 09:59:12 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf17.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=1741600753; 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:references; bh=usxpGZ2JIapOfM0P0HHDXpsbI77WvhT/gkt231dPbVg=; b=L0aau/K9fJwGEWkuXfbQAMzccZ2L4WEQxs24eaR7fL2mt7hIY6A9MyiPEdywjkkphTJ0ob qTiJfpPY7SNRcXO+pRs8s04O1q4jX2VmWMHalOMx1owSG6VFzTvIAJZhnuBno7N8fy+Jny GPUiiHiiagNUWmI1Ymnt2CdvgWD2jU4= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf17.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=1741600753; a=rsa-sha256; cv=none; b=ZVnNozQiuS6R8xcOg2coVncYdMIbBxY9726kGIFVKhS+7pfe3eT0yQtfhdZrUlA5KzfIai 6d4S+vqdx4GvQr+cTv1c5+R+tYQx4DTUxgZNxPS63PY3u19DtUtXexjzJh9wYodXz9EdlT BySkgGRSnF6upWDIb0HpMIZJ/wux2XQ= 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 4AD8515A1; Mon, 10 Mar 2025 02:59:23 -0700 (PDT) Received: from a077893.arm.com (unknown [10.163.42.69]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 59DE33F673; Mon, 10 Mar 2025 02:59:04 -0700 (PDT) From: Anshuman Khandual To: linux-mm@kvack.org Cc: Anshuman Khandual , Catalin Marinas , Will Deacon , Madhavan Srinivasan , Nicholas Piggin , Paul Walmsley , Palmer Dabbelt , Gerald Schaefer , Heiko Carstens , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org Subject: [RFC 0/2] mm/ptdump: Drop assumption that pxd_val() is u64 Date: Mon, 10 Mar 2025 15:29:00 +0530 Message-Id: <20250310095902.390664-1-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: A8D2140008 X-Rspamd-Server: rspam03 X-Stat-Signature: u78miemzqamejhxno9z6ps785ggwazi5 X-HE-Tag: 1741600752-222751 X-HE-Meta: U2FsdGVkX1+R2vM2m4cbFy3xmg/Dem3wx5+8T10Cv+8Ie4VJgf3V6edtVFKfLwFgb1LZ1u9yznuBIl353dU/MNcDearwtEWhlGtiiNFEOa82uWX2onxZbjEQHp6E06CGzNmGtOj9yZdd0t0VPjFK1/mWzloxBTijtqGKCGTSKbAMGrWtXHkqgAy2Su2Mt5eBhXJ3WyG1/1AXFGOTybuyeM3X2auw75AVA2GecN87QWwhZwq5r+Z1vYEe4SJHU3IMGjZe+O93lheM1oFQt+T3p7Y0GQtsK0mILgoL0FMeegSVy09UzrG7RPiDxkiEExllOd1PZSmUCS5Sk16O9DEIlIYHMY2N6SFqa4zNkym2LJ1zTDl+PliIsdnbjbO36F/b7Nf/CdU5RC0S6fUA80aDcrKDM6XTNrc0Vg077y0QbI8XT5Hq7bV9y7vzpNFt7Eq9E+ASV3kq9hYnKe3BkFsNhcRBHIka5WezHxeR1rerDw2vBVuB2UeuNe/kBNuG6WyfIn+6CL+k95jwSXO6Gp0uUL7rFymHZ1o8jB39lUh/rFP5Zf3I6iUhHzXG4CBdf//yO7encJ1L1PY+jKfgDyujDfHwM5M7WKIf790ELFAklbz0kwkaxCNKoOhVnw92zK/kWGz1z14ROnhY791QrB0yGla3/tvJvKnVO6Oiq9rK5BI79BQ9lD4u8xIb/EwoqN1/Ixco+PtgViZCK37rzdjAJ99WuHjYSjeGcJTdJEguRw5qSXM2fOsoYMOPEZAwOTgljf7d7LF/QbQ+XxOhJ70rB7R6YVsNmnunScIrUmvz1VOvRvJG5WxVzuhadYq8WxhEkKcB1aX62B2xB6xmfJ3T+6VMR0V8eZLOwK09qR4LlLO7MLI8m+PjhRcK8J8lUk04TjBpdVNLH6y4hGVf79yD6yvBvPoF6LD7xK6/wltPPqkijgybl6e+dWb/9tWB7bunJQly8mnuDW7gItnOjem wjDX2KjP /Lr1aCgtDQdQm3g8wuse9JmOGiSo6Z3KaxJf3/aTEBtYOZMF9eGNthruhobC9x7fuLzKpE39lmqqqofPi4atErEcjHkQIev87Lmy573rCIMsBllsMFZrDu+99gpq0ZEVa1lQlKC6vmGf0t884HLbCV6fyFBNewUlBkHxu0IHnnSwl+a/cyWqT/VU4soelx3hQ+gsgfgi9EmffFkHEQ+aV1WQ8i31sRz1idP4o0RCpBAkD5txNj4QSPhF3q/9q1YH81HyozrQ7S69vTWuQHoPMZdRpHnsr+FkL8hhHQ1FTLISU+V+Q7fH4L3evSr9TOizVcTgNbGSX5dv7UKQFHLfA5Dl9CSprElJ9kGvlcfsLQ7YsiE5wr+M41BXfcMZhPQ3cz7jH5D2wIRoo905fz4avK7zRpbtSxpVtSoVIj/jafvvAAChH0kDhaCaVqJifBMAhqxFoQaV2+zO2XnC6Dput8jfxq5imCrGUrHGWLMSPkGp5M+mgkKZBSYNwEojpyqXiNkoRfZo+2h+7QoMNZREeOugehhpRlqfq9kRD4ZLkyXEQGG6MAg3nZM11DVtp1Jn9d4CsCRjtMUqB4rJ/xvzjrg2NvAIBmQ50WQzCElzigh1g+gV26eF8XPgP3oWwOmFniNuWDGjmJ3YGHCevV6G77iiRLA== 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: Last argument passed down in note_page() is u64 assuming pxd_val() returned value (all page table levels) is 64 bit - which might not be the case going ahead when D128 page tables is enabled on arm64 platform. Besides pxd_val() is very platform specific and its type should not be assumed in generic MM. This series splits note_page() into individual page table level specific callbacks which accepts corresponding pxd_t page table entry as an argument instead and later all subscribing platforms could derive pxd_val() from the entries as required and proceed as before. Page table entry's value, mask and protection are represented with pteval_t not u64 that has been assumed while dumping the page table entries on arm64 platform. Replace such u64 instances with pteval_t instead as expected. This series has been lightly tested on arm64 platform but it does build on other relevant platforms (v6.14-rc5). Some questions: - Is there a better method to address this problem than splitting current note_page() into multiple call backs as proposed here ? - This replaces note_page(st, 0, -1, 0) with note_page_pte(st, 0, pte_zero) Is that problematic ? Does level = -1 has got a special meaning ? Should level = -1 case be handled differently possibly via a separate callback ? Cc: Catalin Marinas Cc: Will Deacon Cc: Madhavan Srinivasan Cc: Nicholas Piggin Cc: Paul Walmsley Cc: Palmer Dabbelt Cc: Gerald Schaefer Cc: Heiko Carstens Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Andrew Morton Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-riscv@lists.infradead.org Cc: linux-s390@vger.kernel.org Cc: linux-mm@kvack.org Anshuman Khandual (2): mm/ptdump: Split note_page() into level specific callbacks arm64/ptdump: Replace u64 with pteval_t arch/arm64/include/asm/ptdump.h | 22 ++++++++++++----- arch/arm64/mm/ptdump.c | 41 ++++++++++++++++++++++++++++--- arch/powerpc/mm/ptdump/ptdump.c | 37 ++++++++++++++++++++++++++-- arch/riscv/mm/ptdump.c | 37 ++++++++++++++++++++++++++-- arch/s390/mm/dump_pagetables.c | 37 ++++++++++++++++++++++++++-- arch/x86/mm/dump_pagetables.c | 31 +++++++++++++++++++++++- include/linux/ptdump.h | 7 ++++-- mm/ptdump.c | 43 +++++++++++++++++++++++++-------- 8 files changed, 226 insertions(+), 29 deletions(-)