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 C9D6BC282EC for ; Fri, 14 Mar 2025 09:12:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 28A20280004; Fri, 14 Mar 2025 05:12:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 23A91280001; Fri, 14 Mar 2025 05:12:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08EC3280004; Fri, 14 Mar 2025 05:12:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id DC901280001 for ; Fri, 14 Mar 2025 05:12:11 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id BDAC91A0D0A for ; Fri, 14 Mar 2025 09:12:12 +0000 (UTC) X-FDA: 83219590104.14.C36F47F Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by imf06.hostedemail.com (Postfix) with ESMTP id C2C1F180002 for ; Fri, 14 Mar 2025 09:12:10 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zGGx11b5; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of jackmanb@google.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=jackmanb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741943530; a=rsa-sha256; cv=none; b=rEO0b4ypc3vvmkqLKjozsfp0JqMgwjHzUu6Nzqll03yvdzzPWYFQJlhsp4yZc/PA0l+zLi YNL8NrLAHapai1643TENr92wihle1g5IFbhZ5UKJRf0WS8etANJFTMK/Rf8FH23U9w4DZN okeXGkE5zhajuAYcikuA4J/6udCgJ5E= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zGGx11b5; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of jackmanb@google.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=jackmanb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741943530; 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=sUPGudLzEqaRzdhkeIOV3PPyAaGCuTB/Qf/w1m67Uvo=; b=LMgFfsGF0HIjdo8RWj9CLX/ItQY5nQAfxjuXUOVHL1WRDVPtAVHh9H3x+BRd3HWlthP/Iq 5boBa9Tke3f+B2AGeM4fMO17ODOT2nT0wKFdtvlh0V0tCw5Tq2ef+y8F/q+cSvsm8C1aKQ lMcnpErq4pc+zlMQg/xNqepsySD59yw= Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43cf3192d8bso29025e9.1 for ; Fri, 14 Mar 2025 02:12:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741943529; x=1742548329; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=sUPGudLzEqaRzdhkeIOV3PPyAaGCuTB/Qf/w1m67Uvo=; b=zGGx11b56TUd90wdA5zyWiKemQfFrjTueFsBm1tXg5+HJyDxoHt6T71/LOdr1Mio0J p0tFSTgH7rIbczymE4sY6k+l2pLVCS+xZ2ELUKlus66dxbqGWfg0hcCeWEISv+LQTMcv sAvoIvhF5IyrWEU9HsAhUw/ebDgkOM+nQHWU+CRpbijgZPZKo6IVYIB1ulgcnmuYnvhw q/qvoYTca1+I8hM6RQdc6W+BI0NFRGwbjTEV9HNPapdhJMXo22x2ydc4d0vZeQOThtdm r862uFNVV3FAdtL8/W70IwjAsrxzKPDtSKfuEuKahk+ahuNr8JXBepBPKsb1TVKeAzho 7EQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741943529; x=1742548329; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sUPGudLzEqaRzdhkeIOV3PPyAaGCuTB/Qf/w1m67Uvo=; b=ag+SITZNAz+gdDrKMkcumwASSAP4Q93ht+nC/5dRiUXVBjKNFku6ZWuZYRbfIIjltD kYh88ToyB8yocH+dyuMGIvqxorhHa0mc8ZR/wxs9YumwRe/zadLVfNxBobxA+0kwEKRz LjoHYT/D8yRbwolJnbKO8RM0bmglwty5aINtdl5C8gMewD1h9OWrM2t9yN4FxIItaUrd oLC5j340b2XqeO/4AHVtPhT+/swLjYsv7SqVkS7n2a5r/YGtagvEuPDYzVtSxIgQYtjS w85Dsvp5Gw0V4XMfWOHPrmQZrLqLMxnYy7+uSXCjsorGWbYd1mzHFx6AkRoB/VPFHSAW meXA== X-Forwarded-Encrypted: i=1; AJvYcCXi6h70eyvfhWQ4s5Zavz0l+YJVa20/DSGbKzdPxNWzzewSeQH+1DbetgU0fK3Vk8ejZPYRobVyOg==@kvack.org X-Gm-Message-State: AOJu0YwO3I4PfJjarp/kdZqvoTEwqpgxGxB2XzqHcE7YE07cFdaw+ZND A8WA7Xe47GVUvxWNdcJ6kQWQB8kceRrz4NH5anUGJywmu3asbbLrabhBg8oivA== X-Gm-Gg: ASbGncvg5BnQWp9CTSVGjuT7Um585oIOhyJXRlswTswtWlHVe/Y7J6FsGqRnLT8hg9h QlOK+oOl7h4ZYX5LsdtndIF/wQnDnwlPjcCsC9/C7avW0vmWxqj7gioog3HdTePGoidzeUFJ+Rw qngVwsHqeBmvsRS04TAxPoKxU6XZ9Jgjzo+/OQ6vTl0Ub8aezqYMhi4RP1lUZ1o4Lk7bXepXQbD TMUy1KKvzew/Xr722RiFO4WXQZh8AOHMIiBSLAXkGc0WCjG8INyzp6lk7LxWajxbMKPCu8kp+0K NoxML30yBGAStNwjzaoBp1UyaedTTSAddCTOm21sTHtneRkglq3AmobKNyon/e90AXKjj4KSjzK jYmL47Og= X-Google-Smtp-Source: AGHT+IGBuVLBueavIMiito5j0RRPZQVYBZUrSxgi2O710uL/BIyQ1BMPGATKnS7423KLLmyr8ewWiQ== X-Received: by 2002:a05:600c:5584:b0:439:9434:1b66 with SMTP id 5b1f17b1804b1-43d1eba43d2mr776045e9.1.1741943529069; Fri, 14 Mar 2025 02:12:09 -0700 (PDT) Received: from google.com (158.100.79.34.bc.googleusercontent.com. [34.79.100.158]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3978ef9a23bsm493146f8f.15.2025.03.14.02.12.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Mar 2025 02:12:08 -0700 (PDT) Date: Fri, 14 Mar 2025 09:12:04 +0000 From: Brendan Jackman To: Yosry Ahmed Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Andrew Morton , David Rientjes , Vlastimil Babka , David Hildenbrand , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mike Rapoport , Junaid Shahid , Reiji Watanabe , Patrick Bellasi Subject: Re: [PATCH RFC 03/11] x86/mm: Add lookup_pgtable_in_pgd() Message-ID: References: <20250313-asi-page-alloc-v1-0-04972e046cea@google.com> <20250313-asi-page-alloc-v1-3-04972e046cea@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Queue-Id: C2C1F180002 X-Rspamd-Server: rspam05 X-Stat-Signature: ih1kjs37wkziaexh3twtt1fyscjptn87 X-HE-Tag: 1741943530-332582 X-HE-Meta: U2FsdGVkX195BUfAZbylq2K1zho9wqZ9MR84aFtJ11H/Q66YNlOSE7Ki5Uij/CNTKfJfraCk2XNyCTL5K85XbgULlT9tClzt4iKfDh9mxzZRNMS7f2jJcmAPLCS4jDAt8btecUpaS2Wb4D+FoSGNUvdSY7rxuu7CYgPYFlDezs1DakheFs9f0a4OOPnoRTIsNmY4AXj53owiivbsyG/JGJQ68oHkzq9sxprp3Qb3UTCb9988oxi558Hj5XIw1zrY6jp1u8fkdIb3scW39LvcI/CYZjSpwAG4kIUQbZdnilB6rt8Wbe5wbFSP4a5LX3t+XtiYiuF33NSI/GNkAxQmTawSr1+w8Adeor14NYjc3XAq4UfS1U8Tjkja1tm5NJikAWCnwDHoFq/EegKFE0N22MigAXSUefzY3BcWv07yCeHoKD0DEHwrZys+zmy/LEGUxRKRI4LjYlzHHNFUqZOzuP9dwO4Ck1y0JprScqLqO9cH4Bkse0nVXh/QqmNKMLkmF+ZO3oXu24QfJHm0e9sYOgePYQIPA9SGxT3Nds+YzkJZNeS9BQ+9ogCnKkvfLbRZbM9Ne2SwvgUu0nnbQYdDFhm+cSVdoyYDM0sQdT7jED3UhKbL6Y9bqJvocmIVrXQTjkFYv3TKSMB6LPv/23ieup3GKeX+m9ihraXTUCglwSgnAVLlL3zca9K5R01IdBiVaT/Kjf27MjqG+i1c6oFzfdhCnARAj+EY8limM/ewq5cWVMVVqAN6Zf5X3u5X8+m9WvQjnNiDMtuvVpjZeow8k8EHQ9exG0Q+xmHgciOmMROH84IHxjy4lCzcexceLeDyVa5atIi49Y3undEDX5sCnNZijkVot0H2VhoJWPuXrkhOnZyzBkq0podvmQXtSSGDszEFff/Adqa1QSaCwp2X6Ut4s6097wETIOLfCMSgPvtKdogS1L5cp0nEe3J511bJbIvTN2Fp8e36Y6Zu53u x94Co/j4 AkDkc/OcV8dEOnwfSu6dDOKIVE05+LDP/hoHLNcjberAXzmxRP5mXwg7YNcEoA1bVh0UAoi17CzxQsE+fQ13rFvftqc5vTeJSyAVVA6AP4oJz3TZ70ahSJOTDvSccCFJvEQD0h15hLnYZo5koGBFBeRs/n9RfMStVfLkVcyYxI+1Y1aFQhJizhObs/AM1wMYTZf/FSLWEBiSHAUjiDaGnqt+UARvKWY2420WX83Klpvyi3ylfPXHc+Ds3YoEscnmq5V2l1MlRCXV/dqC1ceTJELCJnp0TR0quw6eC++TZONS+Xotb+Lfmmle0YnCoti4BNiNeKFdVubqzVlyuajvmGHePFb4qeaHd1e5p/Yzc0VhfwosGOcrAqPabuIO566c6MYw/1KpGQj2vrsblPD6hAycBooGuN+rkDniu X-Bogosity: Ham, tests=bogofilter, spamicity=0.000203, 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 Thu, Mar 13, 2025 at 10:09:21PM +0000, Yosry Ahmed wrote: > On Thu, Mar 13, 2025 at 06:11:22PM +0000, Brendan Jackman wrote: > > This is the same thing as lookup_address_in_pgd(), but it returns the > > pagetable unconditionally instead of returning NULL when the pagetable > > is none. This will be used for looking up and modifying pages that are > > *_none() in order to map memory into the ASI restricted address space. > > > > For a [PATCH], if this logic is needed, the surrounding code should > > probably first be somewhat refactored. It now looks pretty repetitive, > > and it's confusing that lookup_address_in_pgd() returns NULL when > > pmd_none() but note when pte_none(). For now here's something that > > works. > > My first instinct reading this is that lookup_address_in_pgd() should be > calling lookup_pgtable_in_pgd(), but I didn't look too closely. Yeah. That outer function would get a "generic" PTE pointer isntead of a strongly-typed p4d_t/pud_t/etc. So we either need to encode assumptions that all the page tables have the same structure at different levels for the bits we care about, or we need to have a switch(*level) and then be careful about pgtable_l5_enabled(). I think the former is fine but it needs a bit of care and attention to ensure we don't miss anything and avoid creating confusion/antipatterns in the code. And perhaps more importantly, lookup_adress_in_pgd_attr() sets *nx and *rw based on the level above the entry it returns. E.g. when it returns a pte_t* it sets *nx pased on pmd_flags(). I haven't looked into why this is. So yeah overall it needs a bit of research and most likely needs a couple of prep patches. Hopefully it's possible to do it in a way that leaves the existing code in a clearer state. Anyway, I was originally planning not to have asi_map()/asi_unmap() in asi.c at all, and instead just kinda make set_memory.c natively aware of ASI somehow. At that point I think this code is probably gonna look a bit different. That's something I ran out of time for and had to drop from the scope of this RFC. It's definitely not ideal in this series that e.g. page_alloc.c, asi.c, and set_memory.c are all implicitly coupled to one another (i.e. they are all colluding to ensure asi_[un]map() never has to allocate). Maybe I should've called this out as a TODO on the cover letter actually.