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 0712AC77B73 for ; Wed, 19 Apr 2023 22:17:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 525D86B0072; Wed, 19 Apr 2023 18:17:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4AEC4900003; Wed, 19 Apr 2023 18:17:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30174900002; Wed, 19 Apr 2023 18:17:35 -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 1E2086B0072 for ; Wed, 19 Apr 2023 18:17:35 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E6BBB140414 for ; Wed, 19 Apr 2023 22:17:34 +0000 (UTC) X-FDA: 80699553228.05.F8F73FC Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by imf24.hostedemail.com (Postfix) with ESMTP id EC9C118000B for ; Wed, 19 Apr 2023 22:17:32 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=rSiuLSw6; spf=pass (imf24.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681942653; a=rsa-sha256; cv=none; b=rzxJOKyaH4bCmKJkzX72KnhdQ4QJKsON7NRBUtUBgDnPPUtlB/BFmAZsGPMPvR2HbNW5cm y4hSTZwpjQ8+babN/JrPDbp53t2Sw4fUJbsY6aPLQaqe5xTWlQeUKce34krJxxCt4fGYK2 IfunLUPKiumNuavm9Dz79RvXFqFhinY= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=rSiuLSw6; spf=pass (imf24.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681942653; 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:dkim-signature; bh=mljZsiO5QRb1GQDkLUDPFjVfkuRVaSDyhp9y+byMdss=; b=Dvz10PXcUpYN6gJUVKbcaclAVT6OZsFF/giLz8Zlm5ZeA4+YvWyFVi/N8j0rtZuBhy2z+0 OuZSRbyISgF8COEY853hXlTtFTm8JyXMUK8acVwvCCJC0nS03a3QLfNxmoYy0MK8oTaT5X SZLMh7X6FElcCLnNnmFiQAP2C8kYJUc= Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-1a5197f00e9so4654955ad.1 for ; Wed, 19 Apr 2023 15:17:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1681942652; x=1684534652; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mljZsiO5QRb1GQDkLUDPFjVfkuRVaSDyhp9y+byMdss=; b=rSiuLSw6DyvgYFbph9bmFmqDG3DBHXwiC4IjLHTdoeoNqI3Zj5mvjcgftruD3sRQcL WxDYcG6ScHPYH/tsYrRzbCoTKzHkW8KNXh7K15sX/3vd0JxNdmgwDLmJ5Gbl1ptnc8kV B413qUWKvROFulz1VG3quMom7gr4KDz5SG6hA7i1NB7suVliV8jg80Ei4eKibGK25dVw IUKYu3sVmnUrAoFcDhoqyEJFPDZqPR+RsU7ZbMNTfRONc8CY2sotnhibyQDIiJL6WP4d uPsZMJmzwj1MOrHzXnjW7uCJa6/KKt6iVnYO2QkJX8Ox8I1aJyUyI4qshbT0yxib1Rsh ovBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681942652; x=1684534652; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mljZsiO5QRb1GQDkLUDPFjVfkuRVaSDyhp9y+byMdss=; b=Wv0NWuGtG3599xvdcUUfEK9PsbFcuNDl6H5JKUOXZ6fFI0B3FPdgCDENRbqHoyazRl gMWdCRk/XqCgOYn3ka1VSYEh6Ex2b9lOcX/yRETYClSCQ9+M2Pn2v19QhE2WPCrgUfYy FK1JgwnEyQ5Dp1PgdT3D6FZDejvsQqgqtVXip1V1wSJzfZonYRB8HII6R/vO/I1M/gKG KmA0j1WxmUDGXdt0WYAaLIK2ajO3bpZxl38/bHTInUE0Mo820+m6ut49ob3jTu3hvCej kxNJHBWehHhAI5l6fMftZSSuRaWj9KM6AQSWM8+KUeuYZyed+KmroaozPUBmV1ZTlnZy Or7A== X-Gm-Message-State: AAQBX9cMk5dj0L6kYKwfSPKifKAImO/fS9qpen/23A2a2v5NCdb30JAR x7931VeAUdw8AjrRjmUzxhowfg== X-Google-Smtp-Source: AKy350YAUHKVoqLB+lNg1GyvGR/YhY1dexLjtDy2z84R1FBjB72vycA1EeypPas5l/++BhN5lcYzyg== X-Received: by 2002:a17:902:e74c:b0:1a6:4200:bef4 with SMTP id p12-20020a170902e74c00b001a64200bef4mr7961111plf.56.1681942651818; Wed, 19 Apr 2023 15:17:31 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id jn11-20020a170903050b00b00196807b5189sm11619190plb.292.2023.04.19.15.17.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:17:31 -0700 (PDT) From: Atish Patra To: linux-kernel@vger.kernel.org Cc: Rajnesh Kanwal , Atish Patra , Alexandre Ghiti , Andrew Jones , Andrew Morton , Anup Patel , Atish Patra , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Suzuki K Poulose , Will Deacon , Marc Zyngier , Sean Christopherson , linux-coco@lists.linux.dev, Dylan Reid , abrestic@rivosinc.com, Samuel Ortiz , Christoph Hellwig , Conor Dooley , Greg Kroah-Hartman , Guo Ren , Heiko Stuebner , Jiri Slaby , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, Mayuresh Chitale , Palmer Dabbelt , Paolo Bonzini , Paul Walmsley , Uladzislau Rezki Subject: [RFC 01/48] mm/vmalloc: Introduce arch hooks to notify ioremap/unmap changes Date: Wed, 19 Apr 2023 15:16:29 -0700 Message-Id: <20230419221716.3603068-2-atishp@rivosinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230419221716.3603068-1-atishp@rivosinc.com> References: <20230419221716.3603068-1-atishp@rivosinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: EC9C118000B X-Rspamd-Server: rspam01 X-Stat-Signature: f3nedwoku1be59ma4zkmm5sx69e71kjw X-HE-Tag: 1681942652-105805 X-HE-Meta: U2FsdGVkX1/q5fiF3iyvFXWMDKqfQKECzgDH+Z0EmKONosEKfYLTj1DAfHZ+ndT0c/f7sqzbQB8rO7vzmFfGdIBOM2YcT5CrwtGWk4VS+/Y0DWl0G6/IzvKNCKXHbAo0hAjjq8VayBesxGfbBn0pBYpb5p96G/aTsJ8jkC69XfrDeaq+zFkqM5evjXimmFwujdhDKIJcE2auUjJj1R9V50H9Cqk5vxwgnL8PEqBa91Pl0KnuMUdOzPavpnOcLzBj0iiy3Z9nQKMn7uf9WeZjfOlH0bHCR1vDPRRyM8R1sdu3NQRQprI6ZNJ4nnreRy51ExNSVA9Dtu6X01OtbDdXJYhFchxBbTqHrzDBbHYpKV8jiwpyTyYGTAmRgyTMMlCH02sMzqat8ZeQ+BGXz+d66jD31lLN04e93bz7YH38Kz3t6bo5/g+zvPQsFXzhINTmOfqca6l8uu3Rj/MJPEXTPcWDEFC6Gr0a/1jJawOHooXzh17Hw4BHPiPu4XssawGi72/LRPW8HOrFxj5xMVNLLRprlnS0atHqU1VGY0Zh4mFzCgLamZYi/zaK1qO1sb/ScryYX4GBdKYkqHkHZPwXzmE+uohb/m2D+Y+hTEt6KCsgyV7i1Tl4NFb0YoHrmyAG10V2935XW3TkC6OPZgnIK7nG1iZAxI3hE6iKgn5XiJVHyewv1Mi+v994w+TAMBU4JUqPqwqhwuEzSbZYBTssTsRtpaNyY3Vnm8Cxvtq5PV5OHsWjvpFgtQ2Xoro8mVTESAPPR7rkUXcW6rA7/LViq3MLy7A2TY4LJ1oUxvVuim7g0PTzVhVTlNZIKFnUjBu+acwUI62nrCpQBya9MkxgvYnuy015NdjMaXGCYHKJYQyi29xGnY/fJVAuXurKVCltuwhmstozXLcyLr9BAE3F1E67D0PzH+3T4NKHivybLG1FRhCqtfjyM2mDmkobV3sNyw+KqP+JusOl82TMD6n Uex0c85V iqV1WbQhE0aKcQjapkpFb6iITXsPSG6nFREw3jXfYHJ5hV9Gostrgh8IPp1VJSf0OH43+sN7SBj+lokbekq+ehp0YWWV36bnCO9zndrjTSQnSegmRCVlJXavnGYcBS5KsAHy22EFUUmRWp/Mj2N8TLAz7UC2G3RfxK29ad7mCHiKNz9C5iQOwgPq5ZEkCQb0JuHHf52mZ34Z6qXlX+BIMTqnwcE9xfKwyJuwrfrgpgnwjBy5HAyBdQNLCTA5ZjUbOwyDM34lUN38rGOgcYAAVf4HrpbVzYpKtGl/cbuKmiSMvB9DD9xKyC4B8JyGcsWSfMrAKTKRwVnmAjkdEvYuEfMUopJnQRz/ZKfcsIhgL0O+0RxuslwBclJil6MIV0krzQR1BvjmzFHkJCTtHO0uudtfvCwyCdKO3eysT/2Xl6o4pMsDATmUyOFfNp7ytSHlVLWGuJ005QRp/nEnAGmvEwrb0ow== 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: From: Rajnesh Kanwal In virtualization, the guest may need notify the host about the ioremap regions. This is a common usecase in confidential computing where the host only provides MMIO emulation for the regions specified by the guest. Add a pair if arch specific callbacks to track the ioremapped regions. This patch is based on pkvm patches. A generic arch config can be added similar to pkvm if this is going to be the final solution. The device authorization/filtering approach is very different from this and we may prefer that one as it provides more flexibility in terms of which devices are allowed for the confidential guests. Signed-off-by: Rajnesh Kanwal Signed-off-by: Atish Patra --- mm/vmalloc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index bef6cf2..023630e 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -304,6 +304,14 @@ static int vmap_range_noflush(unsigned long addr, unsigned long end, return err; } +__weak void ioremap_phys_range_hook(phys_addr_t phys_addr, size_t size, pgprot_t prot) +{ +} + +__weak void iounmap_phys_range_hook(phys_addr_t phys_addr, size_t size) +{ +} + int ioremap_page_range(unsigned long addr, unsigned long end, phys_addr_t phys_addr, pgprot_t prot) { @@ -315,6 +323,10 @@ int ioremap_page_range(unsigned long addr, unsigned long end, if (!err) kmsan_ioremap_page_range(addr, end, phys_addr, prot, ioremap_max_page_shift); + + if (!err) + ioremap_phys_range_hook(phys_addr, end - addr, prot); + return err; } @@ -2772,6 +2784,10 @@ void vunmap(const void *addr) addr); return; } + + if (vm->flags & VM_IOREMAP) + iounmap_phys_range_hook(vm->phys_addr, get_vm_area_size(vm)); + kfree(vm); } EXPORT_SYMBOL(vunmap); -- 2.25.1