From patchwork Tue Aug 18 18:46:53 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hornyack X-Patchwork-Id: 7032881 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 32C7F9F54F for ; Tue, 18 Aug 2015 18:47:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5E04520555 for ; Tue, 18 Aug 2015 18:47:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6D9332065A for ; Tue, 18 Aug 2015 18:47:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753845AbbHRSri (ORCPT ); Tue, 18 Aug 2015 14:47:38 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:34799 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751206AbbHRSrf (ORCPT ); Tue, 18 Aug 2015 14:47:35 -0400 Received: by paccq16 with SMTP id cq16so94760157pac.1 for ; Tue, 18 Aug 2015 11:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uF8KlbdU55w/ShRa9jRl3Dtotm+p9dT3aDus/eku4e0=; b=F8r+eIcMY1CRutYcEza1giRYzwY2/3EQ5s5UA0UA1zgKIypmJ2shqD4hSMosyHL0mL 2x/tBQdX9evqjmGU5oDkvVvNvyAIN5u/oXhxdrE1/K4L/3AV+xi/u9gK/BCtMfuOSLh+ Dem79F//rujNOjYr0l8NQEaHewl14U2evfnQgIXfM+bvKf9dWTpJDYWcOL8EKTgRo5NH UZH2c8PGYtUqSzkA+KawVuLz8oVZYf2CStoywMsjwRVZPdjONElMomg508/g3CwIWqeh HrErAkdz8VT7H4kt0ugmd9FnDqWyF6CO8SXxgr77vbW2GrciEEIoeqnb374ErAfkcseq mQgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=uF8KlbdU55w/ShRa9jRl3Dtotm+p9dT3aDus/eku4e0=; b=FU7JIFuJKz6Z+PTAIzeCqKtZxVXmSADFKox0V5asdJ+GxDhJJ/ZLEdG2KT9rAA08rh ZHyNtq7PkHiM9xtDDxJ9s/ZTGNYoUScRjDggfdxzuQKnx5AfMlC+5bAYUoL0/ncoTCtc 9yN5D0d+QEYooSLD1w5sfqjaoMovOvJR64nnzA/wGGlU2vU9O1WN7nlyheGzzCeCbakW hYZiXQog0KLZhOsVbrajYkU9R5uN1hQ5yHdILKCSFMnrPEUPiALICa6jKOHmu3gtCNyJ dGp13Khd96rUUqh4YumQQLZP43j9nvn3Xr+jRgEKILCk0NkvUojTcqP81QdVp+GXYQSa qv7w== X-Gm-Message-State: ALoCoQlNr4huRcermKpMxqrcB5A3I+lhjctEWplPFTa+V4tSviXvUBgBHfhOzH9xl7BXUA+WYn3F X-Received: by 10.68.200.72 with SMTP id jq8mr15881159pbc.91.1439923655217; Tue, 18 Aug 2015 11:47:35 -0700 (PDT) Received: from verbena.sea.corp.google.com ([172.31.89.48]) by smtp.gmail.com with ESMTPSA id ay10sm18880243pbd.13.2015.08.18.11.47.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 18 Aug 2015 11:47:34 -0700 (PDT) From: Peter Hornyack To: kvm list , Gleb Natapov , Paolo Bonzini Cc: Joerg Roedel , Peter Hornyack Subject: [RFC PATCH 3/5] KVM: x86: add msr_exits_supported to kvm_x86_ops Date: Tue, 18 Aug 2015 11:46:53 -0700 Message-Id: <1439923615-10600-4-git-send-email-peterhornyack@google.com> X-Mailer: git-send-email 2.5.0.276.gf5e568e In-Reply-To: <1439923615-10600-1-git-send-email-peterhornyack@google.com> References: <1439923615-10600-1-git-send-email-peterhornyack@google.com> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP msr_exits_supported will be checked when user space attempts to enable the KVM_CAP_UNHANDLED_MSR_EXITS capability for the vm. This is needed because MSR exit support will be implemented for vmx but not svm later in this patchset. Signed-off-by: Peter Hornyack --- arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/svm.c | 6 ++++++ arch/x86/kvm/vmx.c | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index c12e845f59e6..a6e145b1e271 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -854,6 +854,7 @@ struct kvm_x86_ops { void (*handle_external_intr)(struct kvm_vcpu *vcpu); bool (*mpx_supported)(void); bool (*xsaves_supported)(void); + bool (*msr_exits_supported)(void); int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr); diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 74d825716f4f..bcbb56f49b9f 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -4249,6 +4249,11 @@ static bool svm_xsaves_supported(void) return false; } +static bool svm_msr_exits_supported(void) +{ + return false; +} + static bool svm_has_wbinvd_exit(void) { return true; @@ -4540,6 +4545,7 @@ static struct kvm_x86_ops svm_x86_ops = { .invpcid_supported = svm_invpcid_supported, .mpx_supported = svm_mpx_supported, .xsaves_supported = svm_xsaves_supported, + .msr_exits_supported = svm_msr_exits_supported, .set_supported_cpuid = svm_set_supported_cpuid, diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index acc38e27d221..27fec385d79d 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -8161,6 +8161,11 @@ static bool vmx_xsaves_supported(void) SECONDARY_EXEC_XSAVES; } +static bool vmx_msr_exits_supported(void) +{ + return false; +} + static void vmx_recover_nmi_blocking(struct vcpu_vmx *vmx) { u32 exit_intr_info; @@ -10413,6 +10418,7 @@ static struct kvm_x86_ops vmx_x86_ops = { .handle_external_intr = vmx_handle_external_intr, .mpx_supported = vmx_mpx_supported, .xsaves_supported = vmx_xsaves_supported, + .msr_exits_supported = vmx_msr_exits_supported, .check_nested_events = vmx_check_nested_events,