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 733B7C48260 for ; Thu, 8 Feb 2024 13:19:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E98456B0080; Thu, 8 Feb 2024 08:19:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E48216B0081; Thu, 8 Feb 2024 08:19:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D10976B0082; Thu, 8 Feb 2024 08:19:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id C28546B0080 for ; Thu, 8 Feb 2024 08:19:57 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6C4D0160ECD for ; Thu, 8 Feb 2024 13:19:57 +0000 (UTC) X-FDA: 81768694434.20.39326C7 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf20.hostedemail.com (Postfix) with ESMTP id 5254C1C001B for ; Thu, 8 Feb 2024 13:19:54 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=EsWgE9UB; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf20.hostedemail.com: domain of will@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707398395; a=rsa-sha256; cv=none; b=RnTr5Nj4QFT6RFQXkAgmhayT3yy6a8D3ysIEgAx8EYdFIXiCcr8g8Jsg7TTvM+NkA5Gx8m TFNklYPhX+ORkdR4K9qqye1ZOZ3bcEoRFr5WdZKfW1uzSMFP7YUCjpp/NsXenPvUvMzh4A BLq2pcEb77hPqV+SVbuzEy5kVBPvnhw= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=EsWgE9UB; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf20.hostedemail.com: domain of will@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707398395; 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=fM8vgiy7WuCYyk4H884GHqDyjIagrz21LiArx7W/Fkc=; b=8F0ujczsSeTHO3svRBkwf3rdkXCWpl0oxpTXrvjWkWJYBA5tacWkE9JYJkOAZT7V8CzC27 4p1sjiexxkAOUoHWuX/BWLHIoIbMhQQswPHgOShjKnScXd6xIc5FJQSKQ/VTpWFLxD1MUq gavf5b7wGUsOWcn3giOQhrkp1AiRaD8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 60FEBCE1ACD; Thu, 8 Feb 2024 13:19:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0368C433C7; Thu, 8 Feb 2024 13:19:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1707398389; bh=u2aOtaES0XCeOIHcnCnk47OhtVva9gOZNTOt1HqeVlQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=EsWgE9UB5Xhr5faBRJSC38oV1eFUo130oUkgiAW4oWOSmD6kCpUW9tDUji+/QWiMa cUHKOVSj2Z/gTeYr7lQgGtg0ORJkhDSt/Av2JGMNVX7WDHwi/kRRucS5M5EhssocfV AiNl63vjdb39XgB08OnnkEUtvSnGUcaC91J+ktoFSeBE53kA4ZqzIvSh6H+BTlyFhW HhOM+ktYTODFr2O0Mbuf7c13L1hYxtGpcoe1leLr0y4Eel5hRRoYN6HMEgzutg9Tqr 5o56TKRWnpYiGA7ypamAOHWoE7g4FF+cBzFlk0eqMVwIDYyiljFh9kGsnYeVDMc9NR r8+xhr0Fsy7Cw== Date: Thu, 8 Feb 2024 13:19:39 +0000 From: Will Deacon To: ankita@nvidia.com Cc: jgg@nvidia.com, maz@kernel.org, oliver.upton@linux.dev, james.morse@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, reinette.chatre@intel.com, surenb@google.com, stefanha@redhat.com, brauner@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, alex.williamson@redhat.com, kevin.tian@intel.com, yi.l.liu@intel.com, ardb@kernel.org, akpm@linux-foundation.org, andreyknvl@gmail.com, wangjinchao@xfusion.com, gshan@redhat.com, ricarkol@google.com, linux-mm@kvack.org, lpieralisi@kernel.org, rananta@google.com, ryan.roberts@arm.com, aniketa@nvidia.com, cjia@nvidia.com, kwankhede@nvidia.com, targupta@nvidia.com, vsethi@nvidia.com, acurrid@nvidia.com, apopple@nvidia.com, jhubbard@nvidia.com, danw@nvidia.com, kvmarm@lists.linux.dev, mochs@nvidia.com, zhiw@nvidia.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v6 1/4] kvm: arm64: introduce new flag for non-cacheable IO memory Message-ID: <20240208131938.GB23428@willie-the-truck> References: <20240207204652.22954-1-ankita@nvidia.com> <20240207204652.22954-2-ankita@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240207204652.22954-2-ankita@nvidia.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 5254C1C001B X-Stat-Signature: kfumtu4ro5o7id6pxh5pooxt13sydsts X-HE-Tag: 1707398394-510049 X-HE-Meta: U2FsdGVkX18JKUbJCoiSM1rtE/AO+Y89RkdEoR4vSMZIQRZ250pOFRAIg2pDSJugquH89Zvr5fyXx0tjAchHPPwlKAOpxCmFBC/thRTiyrKt5wNkuDxibWIV023pLShJIc6qPl1QktVsB3IXUQ9J+kFYW3sAI8wz2EEUFpu/5qdtLN4mIJ9fTFXY/N4UDl1CQKvjOcRlRsztxiSIyecqT54JZqwO/hqs7jxgrFihbgS2m2Rybba+WjeO37qtKn8e5M5ILc7hC+T7rEPXtnLTB7Tnzvoj/aAoKt+h/7z/nn3Qg5vT+x/7XYq/nSIgY1ZPfMdRy6MGL0HWs6oO/Z2M52L0JfDzjvKv+4y1xSlveOhFHPbzOI6ZHCEgEhFSu0rylVM6XdSGGWtBBTUfYtxK4jKmrkmw/BDLv5+0HUAUh6FDlFxXDR4H2fZ0gf8ZXuR/mtsBUqnE2VFgDDkLqbt/DoBuFvuNzxQXlTdu6O6qN4kyJTTDxRUPoPq7f57JeWlUQykVVK+nNw6DJTc2pbEIYwfyHy7Uwm9ZsnPZdpy1Gakv9FijDFhKytmNQ7BYdv0cb4SFrwyPIDahnUq+rqlS4u7osz/L/pfdnYNflohfNlJL9qzDfJVrs9k9WnRkir3xSjuecgmrVFm8QRifZ0DUqPdcCnwxeOC8D+RDQfNQiiLH70vg59kd71nMTV9cqskvke2RAp1/79trCLwIEzLhc2DFe/tZZ3GC6onIdiI/hgi53aSw43bU0BZLakRgm4qoFK5NvWsE8P4SUOxDF3f4kaowWN7ymZStboMFN/xiTXfKlpnVGK24+g/G9jqZCzB1dYQHuvwTgVjKtmQqpaIiVyVZv96ai5mDEgxyrAoexEoYBkOFdhHeFhJvsuhNtk0oz5RfmAvpeJtpQOr6JIbFWXIXWdFCnYcUR65vGa+JWU0fgsvvuG2CswmS6I1WuofS2rYErhAc+7TEk9KreYw 4D7ZCHVM rxOEVY/i5h0sLwvoRt/kmA6QvT6t1nORP1x6/S6N5epDb+F7c7WybVQ09Fq9Yblk5IkZ3wHUjxENvsWG2yhIRwV1xGfQBG3RAzNKmaJ6x9gwnP1Sb2EhBh9c2TzBwFIjMWR6atVtHd67VvjjBNwdiW/tId2iiNWSbZmkhnvVw/zeW8KOFXEvxVdiJaUJy2V8BQ6+vNqSJhN15qw2nW65hTYSSwQ== 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 Thu, Feb 08, 2024 at 02:16:49AM +0530, ankita@nvidia.com wrote: > diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c > index c651df904fe3..2a893724ee9b 100644 > --- a/arch/arm64/kvm/hyp/pgtable.c > +++ b/arch/arm64/kvm/hyp/pgtable.c > @@ -717,15 +717,28 @@ void kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu, > static int stage2_set_prot_attr(struct kvm_pgtable *pgt, enum kvm_pgtable_prot prot, > kvm_pte_t *ptep) > { > - bool device = prot & KVM_PGTABLE_PROT_DEVICE; > - kvm_pte_t attr = device ? KVM_S2_MEMATTR(pgt, DEVICE_nGnRE) : > - KVM_S2_MEMATTR(pgt, NORMAL); > + kvm_pte_t attr; > u32 sh = KVM_PTE_LEAF_ATTR_LO_S2_SH_IS; > > + switch (prot & (KVM_PGTABLE_PROT_DEVICE | > + KVM_PGTABLE_PROT_NORMAL_NC)) { > + case 0: > + attr = KVM_S2_MEMATTR(pgt, NORMAL); > + break; > + case KVM_PGTABLE_PROT_DEVICE: > + if (prot & KVM_PGTABLE_PROT_X) > + return -EINVAL; > + attr = KVM_S2_MEMATTR(pgt, DEVICE_nGnRE); > + break; > + case KVM_PGTABLE_PROT_NORMAL_NC: > + attr = KVM_S2_MEMATTR(pgt, NORMAL_NC); > + break; > + default: > + WARN_ON_ONCE(1); > + } Cosmetic nit, but I'd find this a little easier to read if the normal case was the default (i.e. drop 'case 0') and we returned an error for DEVICE | NC. Will