Received: by 10.223.176.5 with SMTP id f5csp3287078wra; Thu, 1 Feb 2018 14:02:15 -0800 (PST) X-Google-Smtp-Source: AH8x227UGjZcf3xB/hLo+1NWUULZ2xWBqaVvD/ld3Of0GBZzpXOC5KXfYtfxzXBr6tqFwQcDbqei X-Received: by 2002:a17:902:7486:: with SMTP id h6-v6mr2830031pll.236.1517522535340; Thu, 01 Feb 2018 14:02:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517522535; cv=none; d=google.com; s=arc-20160816; b=O2xfh82LZri0CwD/U3MOMCzztXz/jAM/ZFmmyRHGHgzKLFfMu/mohtF1V13brkXkCU 2u3wovFnbgWaONe5Hzfe4/Lg8NYzPFEGrycapeXKyFRlLAWjjJW/glat+5YtlpWbaNeM HDTTS+r05g19foS/4tfR3gHyEeMFQZCZMFoTdkyuuF/bwf0ubvKV7EnXCJlyMUE84zEB vtj7bqCZfRN2/Mf9w21n8g4Cx9LOnCw4JsWcYhnuLBrw4Sg8iq8KA9s9S/huEmIyuI0b KrHbneRf6ibqJ9h2B9dy7MgT0pbtNDhAf7C9TCPvK4PhUerCEGrOsPHa0ORwSp4Vydkf Vi5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=v0N5CNrn+WkdiBle+tOxzmx4vkF0rt9kXDz9bdj9A2M=; b=OXFEOlmYV1SSaKbXgMqx/3qG9NBXjJjav4etsmUJdVy97M+WanBbmeNFSlLfiHAu2n s6HWZTqfIO3h1B8wkk42um+NkBoG+qBBKXA9yx02WVwuKy/f9C0bs2LC1kOlB4Zofkyi XKDiF8jHhrrtg7QRkTtkiqOVoGP7WfbSkuSBieaWz6JzD+y0PMRdYCB++Jw+dUxKo4jK wR7dOP2WaMGlixkOatrZpuZC98JSAZ0HUz5i6QV+TJY3LPbku+bQg+iqXDZbvw80AH6z Kupf89wCypBFdYzLZhFvCubUT0i5ZP8vxC7mAI255YQFGBSxjoqjSGWpHMQ+ZDbVwVK8 +L6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.de header.s=amazon201209 header.b=PxaCqByJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z1-v6si450084plb.178.2018.02.01.14.02.00; Thu, 01 Feb 2018 14:02:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.de header.s=amazon201209 header.b=PxaCqByJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752257AbeBAWBE (ORCPT + 99 others); Thu, 1 Feb 2018 17:01:04 -0500 Received: from smtp-fw-9102.amazon.com ([207.171.184.29]:42599 "EHLO smtp-fw-9102.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752068AbeBAWAS (ORCPT ); Thu, 1 Feb 2018 17:00:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1517522418; x=1549058418; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=v0N5CNrn+WkdiBle+tOxzmx4vkF0rt9kXDz9bdj9A2M=; b=PxaCqByJ8JHVdV0w7drx22rCXsXEp2RP/rBvQ53I9c3Xfe+Bfx7DbEGw nXcfnwSxsg48EIDHi7h154yktgNlecumfur+aBAALLpMqtlXNFPDS1t+R I+pGDmTYPgSOktrDH9nGs+zRgNQpalHaBgt+mbRNBdX9pduHbLuKFQj6q k=; X-IronPort-AV: E=Sophos;i="5.46,444,1511827200"; d="scan'208";a="592233230" Received: from sea3-co-svc-lb6-vlan3.sea.amazon.com (HELO email-inbound-relay-1e-17c49630.us-east-1.amazon.com) ([10.47.22.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 01 Feb 2018 22:00:09 +0000 Received: from u54e1ad5160425a4b64ea.ant.amazon.com (iad1-ws-svc-lb91-vlan3.amazon.com [10.0.103.150]) by email-inbound-relay-1e-17c49630.us-east-1.amazon.com (8.14.7/8.14.7) with ESMTP id w11LxtMJ055394 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 1 Feb 2018 21:59:58 GMT Received: from u54e1ad5160425a4b64ea.ant.amazon.com (localhost [127.0.0.1]) by u54e1ad5160425a4b64ea.ant.amazon.com (8.15.2/8.15.2/Debian-3) with ESMTP id w11Lxqa1018740; Thu, 1 Feb 2018 22:59:53 +0100 Received: (from karahmed@localhost) by u54e1ad5160425a4b64ea.ant.amazon.com (8.15.2/8.15.2/Submit) id w11LxmXk018734; Thu, 1 Feb 2018 22:59:48 +0100 From: KarimAllah Ahmed To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org Cc: KarimAllah Ahmed , Andi Kleen , Andrea Arcangeli , Andy Lutomirski , Arjan van de Ven , Ashok Raj , Asit Mallick , Borislav Petkov , Dan Williams , Dave Hansen , David Woodhouse , Greg Kroah-Hartman , "H . Peter Anvin" , Ingo Molnar , Janakarajan Natarajan , Joerg Roedel , Jun Nakajima , Laura Abbott , Linus Torvalds , Masami Hiramatsu , Paolo Bonzini , Peter Zijlstra , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Thomas Gleixner , Tim Chen , Tom Lendacky Subject: [PATCH v6 0/5] KVM: Expose speculation control feature to guests Date: Thu, 1 Feb 2018 22:59:41 +0100 Message-Id: <1517522386-18410-1-git-send-email-karahmed@amazon.de> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add direct access to speculation control MSRs for KVM guests. This allows the guest to protect itself against Spectre V2 using IBRS+IBPB instead of a retpoline+IBPB based approach. It also exposes the ARCH_CAPABILITIES MSR which is used by Intel processors to indicate RDCL_NO and IBRS_ALL. Keep in mind that the SVM part of the patch is unchanged this time. Mostly to get feedback/confirmation about the nested handling for VMX first, once this is done I will update SVM as well. v6: - Do not penalize (save/restore IBRS) all L2 guests when anyone of them starts using the SPEC_CTRL. v5: - svm: add PRED_CMD and SPEC_CTRL to direct_access_msrs list. - vmx: check also for X86_FEATURE_SPEC_CTRL for msr reads and writes. - vmx: Use MSR_TYPE_W instead of MSR_TYPE_R for the nested IBPB MSR - rewrite commit message for IBPB patch [2/5] (Ashok) v4: - Add IBRS passthrough for SVM (5/5). - Handle nested guests properly. - expose F(IBRS) in kvm_cpuid_8000_0008_ebx_x86_features Ashok Raj (1): KVM: x86: Add IBPB support KarimAllah Ahmed (4): KVM: x86: Update the reverse_cpuid list to include CPUID_7_EDX KVM: VMX: Emulate MSR_IA32_ARCH_CAPABILITIES KVM: VMX: Allow direct access to MSR_IA32_SPEC_CTRL KVM: SVM: Allow direct access to MSR_IA32_SPEC_CTRL arch/x86/kvm/cpuid.c | 22 ++++-- arch/x86/kvm/cpuid.h | 1 + arch/x86/kvm/svm.c | 87 +++++++++++++++++++++++ arch/x86/kvm/vmx.c | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++- arch/x86/kvm/x86.c | 1 + 5 files changed, 299 insertions(+), 8 deletions(-) Cc: Andi Kleen Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Ashok Raj Cc: Asit Mallick Cc: Borislav Petkov Cc: Dan Williams Cc: Dave Hansen Cc: David Woodhouse Cc: Greg Kroah-Hartman Cc: H. Peter Anvin Cc: Ingo Molnar Cc: Janakarajan Natarajan Cc: Joerg Roedel Cc: Jun Nakajima Cc: Laura Abbott Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Radim Krčmář Cc: Thomas Gleixner Cc: Tim Chen Cc: Tom Lendacky Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: x86@kernel.org -- 2.7.4