Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp70294pxk; Wed, 30 Sep 2020 18:13:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6pCpvG+81rHmdP8sbTLF/P3SRf9WH+tZ6QZoa8blClXaUu0uWGnNW82QPct6Ro/43X3hm X-Received: by 2002:a17:906:b216:: with SMTP id p22mr1238661ejz.228.1601514819414; Wed, 30 Sep 2020 18:13:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601514819; cv=none; d=google.com; s=arc-20160816; b=NZUUGxSRquyAAzCmifjNQeEPlJdOd9UOIhnD3Sp8uQYaJ0XAQIxMCJeuw+HByQZelW b1BsvL9Essg81//i/bAnauewDpXy9iT7jJaFrywIC5BapHRleNj1GILQ0s8PfGr5UcaE OlP7GxPWqsobW98AN+Ur5YEWH1GxQCSe1e0o4Dc13gBMF/Yx7yOftqNqnGX76D0DgZav 5XhxqE+ZlTKgC/S0N6JiVydd2afEqC93WwK+CGmvmc6Nfqgjwe4AID/uujaxZm51pvYM 2reK9FESRNe6KoXUAS2X2Ts49/vWJ+9FrLJYV+YmW9S7eHILQcssYnxKx7XR8EQjKVce vMrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from:ironport-sdr :ironport-sdr; bh=g25snsx6i7NCZhCUmFxsDUgHmCe4/Wy94cXBFubz3N4=; b=RrBzFuWivK5EQaB+1GO2h6sYbRRu/gYsqRKaDv6CU0XMscuZo3yrEhNr33t6UOtMFY 018iPnRBshdRFbciVoSb06qvzb7L+ppImUJiWRmGE5Y59etg5B9DwoIkogo6poepn8h5 o3jmWMmF99VbI1V87uFTfwJlgGkrrWINXAR8UclymsF3jGsBz7WJUobJOQJt9dwDJBnr EylpIr5JprEo3pqTQK5K61p8exn7Bgbql56WgACpNAlTYRxT6uH2C6O4Y6jjeT6GekgU ntH90aoMQtI0tV2ceQQYsNn+v1/Zdsj//dc2g/HhrsjIVCFy0Sdbyx2rlfXkuZ+Tv1A0 UtbA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g11si2338206edy.476.2020.09.30.18.13.09; Wed, 30 Sep 2020 18:13:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730238AbgJAALz (ORCPT + 99 others); Wed, 30 Sep 2020 20:11:55 -0400 Received: from mga03.intel.com ([134.134.136.65]:47606 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726992AbgJAALy (ORCPT ); Wed, 30 Sep 2020 20:11:54 -0400 IronPort-SDR: 567a9nzYM/EcQMCZpRB739eDj7AJtzy3N/doT9OuclelLIVUDgp+my5I/G8Hmd3l5TDt7lNeCC ERhmQXJyvHGA== X-IronPort-AV: E=McAfee;i="6000,8403,9760"; a="162639990" X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="162639990" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2020 17:11:53 -0700 IronPort-SDR: 4R3BVebGzy45SAg5UmoEuqws7o6A/pzDV/eMbxD6JOlYwo9zf93OGFUDzgrW9SirHQ1+z8GsbP B2peItqXGUiA== X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="500276811" Received: from km-skylake-client-platform.sc.intel.com ([10.3.52.153]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2020 17:11:52 -0700 From: Kyung Min Park To: linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org, baolu.lu@linux.intel.com, joro@8bytes.org, sohil.mehta@intel.com, ravi.v.shankar@intel.com, ricardo.neri@intel.com, ashok.raj@intel.com, kevin.tian@intel.com, yi.l.liu@intel.com, kyung.min.park@intel.com Subject: [RESEND PATCH 0/4] Audit Capability and Extended Capability among IOMMUs Date: Wed, 30 Sep 2020 16:53:05 -0700 Message-Id: <20200930235309.22841-1-kyung.min.park@intel.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Modern platforms have more than one IOMMU. Each IOMMU has its own feature set. Some of these features must be consistent among IOMMUs. Otherwise, these differences can lead to improper behavior in the system. On the other hand, for some features, each IOMMU can have different capacity values. So, different actions are required to deal with the inconsistencies depending on the IOMMU features. Currently, some inconsistencies are ignored by the IOMMU driver. This patchset checks IOMMU capabilities and extended capabilities centralizedly during boot and take different actions according to the impacts caused by the mismatches. For example: 1. Disable Shared Virtual Memory. 2. Use common capacity values (normally the lowest capacity value) for all IOMMUs. 3. Report feature mismatches. Detailed information on the IOMMU Capability / Extended Capability can be found in Intel VT-d Specification. Link: https://software.intel.com/sites/default/files/managed/c5/15/vt-directed-io-spec.pdf Kyung Min Park (4): iommu/vt-d: Disable SVM in the platform when IOMMUs have inconsistencies iommu/vt-d: Report out when IOMMU features have inconsistencies iommu/vt-d: Audit IOMMUs for Interrupt Remapping features iommu/vt-d: Scale capability to the lowest supported between the IOMMUs drivers/iommu/intel/Makefile | 4 +- drivers/iommu/intel/audit.c | 193 ++++++++++++++++++++++++++++ drivers/iommu/intel/audit.h | 103 +++++++++++++++ drivers/iommu/intel/iommu.c | 12 +- drivers/iommu/intel/irq_remapping.c | 8 ++ include/linux/intel-iommu.h | 3 + 6 files changed, 320 insertions(+), 3 deletions(-) create mode 100644 drivers/iommu/intel/audit.c create mode 100644 drivers/iommu/intel/audit.h -- 2.17.1