From nobody Thu Nov 14 16:25:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1727688698; cv=none; d=zohomail.com; s=zohoarc; b=Ev3F6u1Y95/R1UTL0QYgfYaHvXKLKu8FalcSrL4cz3hQ0B0Fz7NtaMwW10ZvyZTlLKUisM/NHF3BxIzm2XNbxOPuULLVhXmPeirLkfaFIPb5f+UvFszO+ySGvXE8ELqBUOdZiYQQQGTd6PjmSEZe4hO6x8k5ZsMxEL3ynYKOMd8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1727688698; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/WVfL1k5vVtueNsQwY+NzZMJKPFcXr4KgQqSLqpGeMQ=; b=brmqf8SaJ8Mez8o4RLJmfT+AplTzssT/SC1/Pk/1o4EKev/mHsJ3O42CSf4mM29ZrzjePFv2cGOvSOe1c2RPqoidii8XWbyEMW6SG0a3NDzbTX5ZeUWK1Fvvf7bjVcli6EtR8Xjv+2mNNQ3GCivUVuLhjjFn4mbBGw2ErXIIKo0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1727688698752394.3910180228163; Mon, 30 Sep 2024 02:31:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1svCkF-0004hN-0Z; Mon, 30 Sep 2024 05:31:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1svCk1-0003RZ-1z for qemu-devel@nongnu.org; Mon, 30 Sep 2024 05:30:54 -0400 Received: from mgamail.intel.com ([198.175.65.21]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1svCjz-000759-5B for qemu-devel@nongnu.org; Mon, 30 Sep 2024 05:30:52 -0400 Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2024 02:30:50 -0700 Received: from spr-s2600bt.bj.intel.com ([10.240.192.127]) by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2024 02:30:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1727688651; x=1759224651; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=btEmgV5VM6Nv3F5tb/LMoVbT7vryG8L/8c7Y2VpPPYE=; b=MWiwAm3AM2ue4OAv4PxL3kMLRelMrpN7O0H0zkcdKoRUH7lJF5haxwZB HPv9BC17nkN5/wN2CU6WAPDj1cyZdF0fd9s0CD6dCnLtKAst1pDdybaMQ uneW+aocZHx+Ftx9YfoUQ4Or62oIHOZu69RmbYWm3TtvPUzT31uJkebE2 n6cBpzgXp0DMTGJALYlX3kUqbNsfKTizHhTQ/0iNjBc/2rKIPCSbOUj5u wz7vOKbUNuk1/FNlAfqKfIaBv5oGr5L4DQanXzbIAOcOYXm3GEvtcibAT SfDGGGbB7328b3/OP/USWrzxk2vfxHwxJwJ3nfBn6KAxBNyVB31Sx2i/B Q==; X-CSE-ConnectionGUID: z6qJ6fUPTtaxZkkBuDjkVQ== X-CSE-MsgGUID: 435gIQ1tRa+3OnzhvOePPQ== X-IronPort-AV: E=McAfee;i="6700,10204,11210"; a="26721905" X-IronPort-AV: E=Sophos;i="6.11,165,1725346800"; d="scan'208";a="26721905" X-CSE-ConnectionGUID: q9U3sfOISoWGChpct3PPAA== X-CSE-MsgGUID: TTAovuBBS0SW68yABPjExQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,165,1725346800"; d="scan'208";a="77749895" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, mst@redhat.com, peterx@redhat.com, jasowang@redhat.com, jgg@nvidia.com, nicolinc@nvidia.com, joao.m.martins@oracle.com, clement.mathieu--drif@eviden.com, kevin.tian@intel.com, yi.l.liu@intel.com, chao.p.peng@intel.com, Zhenzhong Duan , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PATCH v4 16/17] intel_iommu: Introduce a property to control FS1GP cap bit setting Date: Mon, 30 Sep 2024 17:26:30 +0800 Message-Id: <20240930092631.2997543-17-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240930092631.2997543-1-zhenzhong.duan@intel.com> References: <20240930092631.2997543-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.21; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.095, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1727688700130116600 This gives user flexibility to turn off FS1GP for debug purpose. It is also useful for future nesting feature. When host IOMMU doesn't support FS1GP but vIOMMU does, nested page table on host side works after turn FS1GP off in vIOMMU. This property has no effect when vIOMMU isn't in scalable modern mode. Signed-off-by: Zhenzhong Duan Reviewed-by: Cl=C3=A9ment Mathieu--Drif Acked-by: Jason Wang Reviewed-by: Yi Liu --- include/hw/i386/intel_iommu.h | 1 + hw/i386/intel_iommu.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index 48134bda11..4d6acb2314 100644 --- a/include/hw/i386/intel_iommu.h +++ b/include/hw/i386/intel_iommu.h @@ -307,6 +307,7 @@ struct IntelIOMMUState { bool dma_drain; /* Whether DMA r/w draining enabled */ bool dma_translation; /* Whether DMA translation supported */ bool pasid; /* Whether to support PASID */ + bool fs1gp; /* First Stage 1-GByte Page Support */ =20 /* * Protects IOMMU states in general. Currently it protects the diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 14578655e1..f8f196aeed 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3785,6 +3785,7 @@ static Property vtd_properties[] =3D { DEFINE_PROP_BOOL("x-pasid-mode", IntelIOMMUState, pasid, false), DEFINE_PROP_BOOL("dma-drain", IntelIOMMUState, dma_drain, true), DEFINE_PROP_BOOL("dma-translation", IntelIOMMUState, dma_translation, = true), + DEFINE_PROP_BOOL("fs1gp", IntelIOMMUState, fs1gp, true), DEFINE_PROP_END_OF_LIST(), }; =20 @@ -4513,7 +4514,9 @@ static void vtd_cap_init(IntelIOMMUState *s) /* TODO: read cap/ecap from host to decide which cap to be exposed. */ if (s->scalable_modern) { s->ecap |=3D VTD_ECAP_SMTS | VTD_ECAP_FLTS; - s->cap |=3D VTD_CAP_FS1GP; + if (s->fs1gp) { + s->cap |=3D VTD_CAP_FS1GP; + } } else if (s->scalable_mode) { s->ecap |=3D VTD_ECAP_SMTS | VTD_ECAP_SRS | VTD_ECAP_SLTS; } --=20 2.34.1