Received: by 2002:a05:6520:2586:b029:fa:41f3:c225 with SMTP id u6csp29372lky; Wed, 9 Jun 2021 14:57:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzX5HGjYLGjvM9UlnoCzsKberw8GRzQxAxJsTTwBW7cQZjNeyN3JwwiM1HHEnxHSJrKDaX2 X-Received: by 2002:a17:906:9bce:: with SMTP id de14mr1678732ejc.353.1623275837930; Wed, 09 Jun 2021 14:57:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623275837; cv=none; d=google.com; s=arc-20160816; b=urExPw0Gb4Brm+UIsYbehkDknwSol6Cy7fJZfcRF0gSKEOIWvFXAqo2O8hoUlnMf8B M8miCAM+yVgWz3rcmkWQ+OHL25pLa0lKoo1k9xGnMtjxTRFF7KyqBsiftGgkvp7SBnbr GxM/yGTFr0MtkCuFdDu2lE3zyhB47DbsnoULEwzVqTLvGzvHWExlANcNOhPYPcA4hcgj Sz52RBYoaK8OrPMvFdMpsMlM4A2i2QOfc4jNQDAZKdN08x1ucM6PqmsZ5tlsPZqga4Zz dMWByOpfaHr8GXvkD4Mk4BKTI2ir0Y2a+i2UU5FZxPpLXQwSqupW6vaiu64g5EGVraLO tJRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:ironport-sdr:ironport-sdr; bh=3BHBgBn/82YGw7pwtsEqmoVr3CzlvmzriFlkqYMyJ1U=; b=jguE89XaAfY3VEZ66Dq+BlcheqCyYFime8zsKY9EdNlWPn8ziTKFXbJuZoaHwFdPnB 0qMdPXgAEkjgV08vxTFd8NFbJ0rbBBYCIPQFTw4KkH2f2GIK5DjZxEkit2Qk2C/hW9LO EczGz2CBPFdNqHTv/f7wnnmRG6eLv97WV6B+Z/VtGI9U4Ceziv3dtSJXa78FIsTGLVGE XP8FL4HpiSv9W8R1oBPTGfxUkdjYol3LrIu2fOJ7rtXNE600W/6bJyAMdnM/ru19aj2t 3LTLZoz8oUEHnkx7Lfp9R6MNVDcwu7NoOWxn8gdIY/2pFMM+Hri9ilnFzjSjJLZ9hL+v POkw== 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 by27si688061ejc.657.2021.06.09.14.56.53; Wed, 09 Jun 2021 14:57:17 -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 S229689AbhFIV5m (ORCPT + 99 others); Wed, 9 Jun 2021 17:57:42 -0400 Received: from mga03.intel.com ([134.134.136.65]:1779 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229542AbhFIV5m (ORCPT ); Wed, 9 Jun 2021 17:57:42 -0400 IronPort-SDR: puh5ZZ5fhmdtztwCwtWZWVHLw0UwONT2+4V6N9JDdPMOXBEghIzAQIk6xXld07gfkCgK6uITqB vHVpHJ5p96Ww== X-IronPort-AV: E=McAfee;i="6200,9189,10010"; a="205208536" X-IronPort-AV: E=Sophos;i="5.83,261,1616482800"; d="scan'208";a="205208536" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2021 14:55:47 -0700 IronPort-SDR: /+jQjvMFUSsS6g98hbXX4WwOVC66BIVbktcC2my5BuFvhvKm5GIIFoW47OsUlVn11Ie8XzQ4KL 1mgBHjPA+f/A== X-IronPort-AV: E=Sophos;i="5.83,261,1616482800"; d="scan'208";a="482555055" Received: from qwang4-mobl1.ccr.corp.intel.com (HELO skuppusw-desk1.amr.corp.intel.com) ([10.254.35.228]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2021 14:55:45 -0700 From: Kuppuswamy Sathyanarayanan To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Peter Zijlstra , Andy Lutomirski Cc: Peter H Anvin , Dave Hansen , Tony Luck , Dan Williams , Andi Kleen , Kirill Shutemov , Sean Christopherson , Kuppuswamy Sathyanarayanan , x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 0/7] Add TDX Guest Support (shared-mm support) Date: Wed, 9 Jun 2021 14:55:30 -0700 Message-Id: <20210609215537.1956150-1-sathyanarayanan.kuppuswamy@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi All, Intel's Trust Domain Extensions (TDX) protect guest VMs from malicious hosts and some physical attacks. Since VMM is untrusted entity, it does not allow VMM to access guest private memory. Any memory that is required for communication with VMM must be shared explicitly. This series adds support to securely share guest memory with VMM when it is required by guest. This series is the continuation of the patch series titled "Add TDX Guest Support (Initial support)", "Add TDX Guest Support (#VE handler support)" and "Add TDX Guest Support (boot fixes)" which added initial support, #VE handler support and boot fixes for TDX guests. You can find the related patchsets in the following links. https://lore.kernel.org/patchwork/project/lkml/list/?series=502143 https://lore.kernel.org/patchwork/project/lkml/list/?series=503701 https://lore.kernel.org/patchwork/project/lkml/list/?series=503702 Also please note that this series alone is not necessarily fully functional. You need to apply all the above 3 patch series to get a fully functional TDX guest. You can find TDX related documents in the following link. https://software.intel.com/content/www/br/pt/develop/articles/intel-trust-domain-extensions.html Isaku Yamahata (1): x86/tdx: ioapic: Add shared bit for IOAPIC base address Kirill A. Shutemov (6): x86/mm: Move force_dma_unencrypted() to common code x86/tdx: Exclude Shared bit from physical_mask x86/tdx: Make pages shared in ioremap() x86/tdx: Add helper to do MapGPA hypercall x86/tdx: Make DMA pages shared x86/kvm: Use bounce buffers for TD guest arch/x86/Kconfig | 9 +++- arch/x86/include/asm/mem_encrypt_common.h | 20 ++++++++ arch/x86/include/asm/pgtable.h | 5 ++ arch/x86/include/asm/tdx.h | 23 +++++++++ arch/x86/kernel/apic/io_apic.c | 17 ++++++- arch/x86/kernel/tdx.c | 58 +++++++++++++++++++++++ arch/x86/mm/Makefile | 2 + arch/x86/mm/ioremap.c | 9 ++-- arch/x86/mm/mem_encrypt.c | 10 ++-- arch/x86/mm/mem_encrypt_common.c | 39 +++++++++++++++ arch/x86/mm/pat/set_memory.c | 46 +++++++++++++++--- 11 files changed, 218 insertions(+), 20 deletions(-) create mode 100644 arch/x86/include/asm/mem_encrypt_common.h create mode 100644 arch/x86/mm/mem_encrypt_common.c -- 2.25.1