Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp771320ybh; Wed, 22 Jul 2020 12:48:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6woy2OH5I4dDGCeDCNCbPN1MB4xcdCjN/iK4dJ8qeTsaSKKURjgK0avoG3isNz3G59nwU X-Received: by 2002:a50:ee87:: with SMTP id f7mr1006412edr.355.1595447324665; Wed, 22 Jul 2020 12:48:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595447324; cv=none; d=google.com; s=arc-20160816; b=vcSE/zzVtDiwydVm74FBmnGwSBmiLyXRsaZIpiAseQm+kovoYISRKv3QSKpSAMjeUO kLFpWHVKbUXWWQyrhid4p3odyWlhN7pWXYzPlsgcFYwSCUZPbrn0r9YKkACcj7R9ZPPb rqKN0lDoW9oRqLOAwdx6pp2Tz8cV7m67HvaYfvkon3nrtwYEKo7qCYSM2zlPDl04IH3c f4YARUtv+nBs0ga7Uc5xV+idHXdqf5TiUjC3vfmI7w2P8Clipf1GVfQP05k0KYpSNcFf 0KZsVmdSVVex6ZA6t2/FHURNGaRxMU3o1W2g7o44DlYQ/kJDvtlGxUOmv9nMavw2U1jx 8WUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:ironport-sdr:ironport-sdr; bh=oSPLQqkghJW2I7Hztd3M/KKb/AufmH7p3R7Xvjtz1X0=; b=cegT0zWc7L6St4HMeXHXOVqbKyV5ulxCwTRwGW5OEeLomV1v76oGleAcIl9QKnMOvG 3Gva5SXBH5FOKht7elv24pU+s0GY7/H8ZslnPfCRBIJbOcZ6zjlwn5zy/vV/aP9Qbr/K bqeHO3qaaLgzMonQtTxOC9gz6S1NSDYuqX97qNUBlMx4fPdH22tVsGp33mMTPv8OKIJ/ wPFdfdE1ch0nNBFq/qQ1ROpsLWW4EslG6BgWfQs+HI7uhDTeTC18ApP5HEG5xaDxnGmZ PqY4v03JSJybkyLL/n5+k8PBWCvwykLkuLXn3GbFxn4oyY+d5Hdf1PbNW2PoHqHPSGsD h1UQ== 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 gj5si606533ejb.49.2020.07.22.12.48.21; Wed, 22 Jul 2020 12:48:44 -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 S1732359AbgGVTsG (ORCPT + 99 others); Wed, 22 Jul 2020 15:48:06 -0400 Received: from mga03.intel.com ([134.134.136.65]:61947 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726322AbgGVTsG (ORCPT ); Wed, 22 Jul 2020 15:48:06 -0400 IronPort-SDR: dFYppU4XYY9lYqN3wpz+zx6Dc/i+Lm+34jLybgjumL7E7TsdIDotmUCAXXGOB+hnCa8BNQWmRh GFi4QIiRzHYQ== X-IronPort-AV: E=McAfee;i="6000,8403,9690"; a="150387669" X-IronPort-AV: E=Sophos;i="5.75,383,1589266800"; d="scan'208";a="150387669" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2020 12:48:05 -0700 IronPort-SDR: r9maA/iucCrZf50hkHfb11scgmVnKBrFPuIo4JMHXQ5WBXO+oKh/rBRkE/qauSg6XRTdnSFFoh UV68JX0FhFdA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,383,1589266800"; d="scan'208";a="320399186" Received: from sjchrist-coffee.jf.intel.com (HELO linux.intel.com) ([10.54.74.152]) by fmsmga002.fm.intel.com with ESMTP; 22 Jul 2020 12:48:05 -0700 Date: Wed, 22 Jul 2020 12:48:05 -0700 From: Sean Christopherson To: Yang Weijiang Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, pbonzini@redhat.com, jmattson@google.com, yu.c.zhang@linux.intel.com Subject: Re: [RESEND PATCH v13 00/11] Introduce support for guest CET feature Message-ID: <20200722194805.GB9114@linux.intel.com> References: <20200716031627.11492-1-weijiang.yang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200716031627.11492-1-weijiang.yang@intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 16, 2020 at 11:16:16AM +0800, Yang Weijiang wrote: > Control-flow Enforcement Technology (CET) provides protection against > Return/Jump-Oriented Programming (ROP/JOP) attack. There're two CET > sub-features: Shadow Stack (SHSTK) and Indirect Branch Tracking (IBT). > SHSTK is to prevent ROP programming and IBT is to prevent JOP programming. > > Several parts in KVM have been updated to provide VM CET support, including: > CPUID/XSAVES config, MSR pass-through, user space MSR access interface, > vmentry/vmexit config, nested VM etc. These patches have dependency on CET > kernel patches for xsaves support and CET definitions, e.g., MSR and related > feature flags. > > CET kernel patches are here: > https://lkml.kernel.org/r/20200429220732.31602-1-yu-cheng.yu@intel.com > > v13: > - Added CET definitions as a separate patch to facilitate KVM test. What I actually want to do is pull in actual kernel patches themselves so that we can upstream KVM support without having to wait for the kernel to sort out the ABI, which seems like it's going to drag on. I was thinking that we'd only need the MSR/CR4/CPUID definitions, but forgot that KVM also needs XSAVES context switching, so it's not as simple as I was thinking. It's still relatively simple, but it means there would be functional changes in the kernel. I'll respond to the main SSP series to pose the question of taking the two small-ish kernel patches through the KVM tree. > arch/x86/include/asm/kvm_host.h | 4 +- > arch/x86/include/asm/vmx.h | 8 + > arch/x86/include/uapi/asm/kvm.h | 1 + > arch/x86/include/uapi/asm/kvm_para.h | 7 +- > arch/x86/kvm/cpuid.c | 28 ++- > arch/x86/kvm/vmx/capabilities.h | 5 + > arch/x86/kvm/vmx/nested.c | 34 ++++ > arch/x86/kvm/vmx/vmcs12.c | 267 ++++++++++++++++----------- > arch/x86/kvm/vmx/vmcs12.h | 14 +- > arch/x86/kvm/vmx/vmx.c | 262 +++++++++++++++++++++++++- > arch/x86/kvm/x86.c | 53 +++++- > arch/x86/kvm/x86.h | 2 +- > include/linux/kvm_host.h | 32 ++++ > 13 files changed, 590 insertions(+), 127 deletions(-) I have quite a few comments/changes (will respond to individual patches), but have done all the updates/rework and, assuming I haven't broken things, we're nearing the point where I can carry this and push it past the finish line, e.g. get acks from tip/x86 maintainers for the kernel patches and send a pull request to Paolo. I pushed the result to: https://github.com/sean-jc/linux/releases/tag/kvm-cet-v14-rc1 can you please review and test? If everything looks good, I'll post v14. If not, I'll work offline with you to get it into shape. Thanks!