From patchwork Wed May 4 19:09:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 67171 Delivered-To: patch@linaro.org Received: by 10.140.92.199 with SMTP id b65csp357872qge; Wed, 4 May 2016 12:11:40 -0700 (PDT) X-Received: by 10.66.142.232 with SMTP id rz8mr14385106pab.22.1462389099641; Wed, 04 May 2016 12:11:39 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q80si5817599pfi.230.2016.05.04.12.11.39; Wed, 04 May 2016 12:11:39 -0700 (PDT) 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=@amdcloud.onmicrosoft.com; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755549AbcEDTL2 (ORCPT + 29 others); Wed, 4 May 2016 15:11:28 -0400 Received: from mail-by2on0099.outbound.protection.outlook.com ([207.46.100.99]:58496 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750825AbcEDTLW (ORCPT ); Wed, 4 May 2016 15:11:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=R3bYq/omD4RyFIBJKsI3ZTNxYXTQsiv+WIiri87bK5g=; b=M4Yun9Ved0t14k3Wnuvq58beUrSAkOLqwALISKcshiLW2/+Ha05MlATbebwnE7K6+YaVxixN4JGqS+IjNoriXSRteUK3957JZ8pIYZCzZH3GxXd9Pts4NWpRlPL0uM9fmOmAZc9AQO/s+yISqFdn+eaTEMTapvZNxZgbTi+9yyA= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none; redhat.com; dmarc=none action=none header.from=amd.com; Received: from ssuthiku-cz-dev.amd.com (165.204.77.1) by BLUPR12MB0433.namprd12.prod.outlook.com (10.162.92.139) with Microsoft SMTP Server (TLS) id 15.1.477.8; Wed, 4 May 2016 19:11:11 +0000 From: Suravee Suthikulpanit To: , , , , , CC: , , , , Suravee Suthikulpanit , Suravee Suthikulpanit Subject: [PART1 V5 12/13] svm: Do not intercept CR8 when enable AVIC Date: Wed, 4 May 2016 14:09:51 -0500 Message-ID: <1462388992-25242-13-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1462388992-25242-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1462388992-25242-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BY2PR21CA0014.namprd21.prod.outlook.com (10.162.74.152) To BLUPR12MB0433.namprd12.prod.outlook.com (10.162.92.139) X-MS-Office365-Filtering-Correlation-Id: 6198de07-5507-431f-d9f2-08d3744fdf00 X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0433; 2:8lE5/ctduvSn+qJJsyv3EniDKY4xqdAg3k2F0QSjGkMLQAgntSrb4QHWdvhp6ORTu6wkCFtb+uz3izkWSSAQhRYdT2uk2egFYL4weD+Dgwc+TFd4JCSG9Bo+E1ICOYtc4cHgsRNOqZQbSsu15KQgH6HZ43Zf5Jk1XEPz6CbX7jvYRmhqiXTsgxaeK9yCmKPV; 3:2muAVFPVCKhrM9gCB1aUL9E/LKGAFKUe6dZvgY7maw6PeCMO6Fwe3/ECTzyYGRiynG9Ocf0x6cH45oNOfCLklYK41u8b0X1p0mTUn3VnXLlTioUSPQtNi2jyoRP+onTV X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0433; X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0433; 25:J8xscfJ10e1gz7gtGr4Duv+zbw6UHf1wyOnHJm57Qsgz2Gp9Shcxhcak972v47ZrmQxwQ6gDkXIfpl3pQrpeSjns15fFfuVLQ6GszC0Tu217GhUlMHZPtaR1dftoMAS3/wTQhP5i5DivwKV8i7oeUrMQWYtGbH2UvEuIQmfZC3tGLWpbi+bJjlBK17BwglGMKFRoJPmaLYUOHqYTAnCxTbq+N0E1TcYm3hOcyf8TAWa8+r7SNWwvNk+D1N7OaqKY2Kw2f6FPcQyk6Cv93WUOdAK4jQwbT7itWSPJK9SflJczrKL313yXrb6Vq9N4huoD+/wcVr3kajqu3HpsRTIjwWmyO9Pn6S6L1PKGRm1NJgXr2T9JGn9OE7McJqvHKCwUvEvBler7cvPU4bbrYp+IERuiKAo9A7O78rGCF7zzGtr+9Hu5Z0Vb47GHgc157nUxYFUs+8ePWRRrH8l6Isd05YOLc14tSp0ZvJVJCdonSQd6c/iIPd78qobcyDQX9si5j5rTeS3sTuRVgQkd6iO11C8FxdoAk/8X3SCUdXVjYFX3RaWDDsIUWktUhyDgizTG1XsRy88KYqd3ej05CqaL01+NN6yvkk4e6FOacy8fxM6Ak9647u9aPgvFZuVzVvtFfuh7sTmfIh1YOVebx+KVqeBxS2pDRJQFrLVoPkgAE4Y= X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0433; 20:viRJl8gpfyOHwloVivuzCN7DgX4JScK0FSikMcvBTItYGMEGs49uWrJXi/SdsAU71R8WVnvUa8i66El4+CbxpMgyfmHlSL9O6PKp92izGbDH/2SHrRQzv7TEJXYNLIH9huXTGUXu+i2xq3zGE//fm1RY8trUoBcCh6AUUgEUYYcSAYjN1ga4Hy+mGOVW0vXx39sGAgn0jveQWloTGG/o5ED6l3JKeUjxyC7Y+3KU5pMhKXiGDhrM1MqzaSDah0gxxLAUgj2ivQJRhNN3Pig+3VyW5YPqMl6UGMKLT56WsFKz1nhM/p7W1QSphRq3sDQztaCcStJXKbFguTri7P7gkyva4tt0JNFQ/u9SnaoCae2D7ONSI5NOvN7Bcdts+AnG1vjE9QJQBMKQODO7UVKMW3QO3UM4Cpj5YI80PA+9sEwPO3MwywAxxc635snTgnobQxRv5MZG7cEVcdq2EMBwKU/TD0DuiTLQ4LYtvgYnR3l54KFtemH4HlIcWO6k3kPi; 4:yIbX0fScoH6z6jKrha1JQMIkYWvUHS929LS5RrRhjGwjLGuNvwbCppmCEQLECETZ6+vKZ86KhHBAEORFR55xN8Ropll+pBNtzqfrwJUE0Iga+IdZ9VHSSfhPEPd5LBxTNCNSWmUygmApdtDDMaOs09vR4Es12yHu0J+wTPmjNg0/LTmEDAe5TAKsuHdFFobe7LjMiz+TpeAw+csuJM6B37ift08mpkrQZJAIIV1QW0QPfthxnoxIM51pSrfNZ1mh9udrWtZcoL10eenbeYrcWRyyBW37U7dBuz+K+zqOzmphI2i5iELlBWGtsuMHKCMkipYJ134BU2W7eY5DkAUzMj47MVX1AYVvqPFB6wcVA8/SHSsLsP4mXcN8T4xKmDPUl252LXwSPj/A7/3TYtAPYBf8FFojNfTnZotDkoKJ+deocA55B45vIBC9hAnKD1zg X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(9101528026)(9101521098)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:BLUPR12MB0433; BCL:0; PCL:0; RULEID:; SRVR:BLUPR12MB0433; X-Forefront-PRVS: 093290AD39 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(50986999)(76176999)(50226002)(47776003)(66066001)(229853001)(36756003)(189998001)(19580395003)(19580405001)(2906002)(2950100001)(5003940100001)(53416004)(2201001)(5004730100002)(92566002)(4326007)(5001770100001)(77096005)(586003)(42186005)(5008740100001)(81166005)(48376002)(3846002)(6116002)(86362001)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR12MB0433; H:ssuthiku-cz-dev.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0433; 23:jOcb6waQmzmvfTASJVX51ctTvIskD+QnMSapXljWuACRw9FDQ7jImwY9zE9cM//aQM1I1/EWZRhcSm7IVB7mjZT5FXXyd1q3G37nnVscUEB2C/lgNLb5nE1wX7xa7UzUfufva2S1uAhGmmo/7jEWY/f62WB6anAMeyjebVf4bjULoYVFJIWiOCbxUdxFXs/vol3F968elsLYoIWKcjI6cqjJ9a180ZLvexqQsBLh17qDOOeOw45EGJo2wCQAbaUIaakbbKR2nZh7USkn4X+Ts2NCxtp4cmPKTA9sC/aXDl3PEKnKwSrH0xMJ3GfCmMkmN2RF0/ocVxXzMt6SKopyLXvLzH4hDKbxc7iv261BknpxnlkMghPBDDBjFmo40dKD7hOcjqttwS2bb/KNVJhmubZb3yzJ2TqEIehqfWhXGM/PoJWB+UD160TRFkbDpo6yx4HTYx/WJfw1l1FLmSU8yJiIPI5x+AGLfCMsISOtzleVosJNiEuTEgnNlqj5JtT5jXO+47mNSsK415Nbpb5ZmpPJsim4cn27te3Bx8SaTi7jCb1DBIbi/sYAdl2UAOrRfY7JvO5cWvigJXwqECzBzAk+Soew9FNcHuNVnScNvuiBt8Ar6PuztPEK5R4yVM0WCyVTvzUgRss0q57m1dJKWMUTP6kzTVNvROPUjUzHb+ghUjA/z3eOSTMtiEoiexo50r47eF9Tm2cVTXeuLxYv03ZPZFpH9cyKr/diCOS+pyhkWVxzfnoez6kyOS3Ni5JNQ/P6EA9SXSH7orG5PosjASLqF72hNcsIygtwhcLN9myikmxmqH+tJP2RwawFu6p5RyEXsSVZZ893c5KNEvqQHMZd2pTPHMEjmZs/gpJ2k0MEnIAiZDDlnc/rX6ntr/ee X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0433; 5:JS4fMsreRewPdbJHYVh3kP2HiB1GWkQGUkdWJlUCN9S09lKuZKYSToFcMH2DU6X9tBrKoVZ+4yJR1rPPVrTr8m4mCW9Cs5w/2gdt9X/7djWNrhSGM6Op1a6y9rrwRLjfnO3IO17y1hcR4P0M0hJTug==; 24:HDH9HYmJFS8TTLc5wHO2LEdT4gpxNyRXek+FzAtLKhvRc815/rd/JapnF2HySzRx5HcnN1bEPIiuxebDAdFGctQIr0MY/dLRrvK0pFMGNG0=; 7:kdi8gH8lfp3uCGamQVsxaqYsZHkdrn+wFAZLRQUJBHAs4nDtjZu7rrNzxl+c8zqoBPr9S0QldN9VevOedlhHmUz3fmT3tv+8wwO0rbzejQDxVrVWIg4vMCSvILYtMljbzljwclUb0p2qTEAZv2Hzj+USGM+ehAO5DJOxlZy97Os=; 20:RpcP9NLxnBl2b8t233v8829+ZwAd2IukdrX0IcG8xJ+60VLZEEkmLTxz+P5vJrv+pLiRjJLm1zSfUoiMJ8fj1+Or+125wUJzzCQMDg52HEC8Tw3A8DLbT5LMGKqLngK1cgU5FtoSd+6aF0ZqGX8kEnGDpL0oIBn1nOfhviXbRPwTWTSZrNwo/C1HykYxOwByBEqMv43M/shsc6/lbwguOZUrUXM6DPxN4uKG8m8hC9LdsCa7uI0jfoirbhb4PdTF X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2016 19:11:11.4326 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0433 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When enable AVIC: * Do not intercept CR8 since this should be handled by AVIC HW. * Also, we don't need to sync cr8/V_TPR and APIC backing page. Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) -- 1.9.1 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index d35fd61e..721e514 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -1092,7 +1092,8 @@ static void init_vmcb(struct vcpu_svm *svm) set_cr_intercept(svm, INTERCEPT_CR0_WRITE); set_cr_intercept(svm, INTERCEPT_CR3_WRITE); set_cr_intercept(svm, INTERCEPT_CR4_WRITE); - set_cr_intercept(svm, INTERCEPT_CR8_WRITE); + if (!kvm_vcpu_apicv_active(&svm->vcpu)) + set_cr_intercept(svm, INTERCEPT_CR8_WRITE); set_dr_intercepts(svm); @@ -4077,11 +4078,17 @@ static void svm_set_irq(struct kvm_vcpu *vcpu) SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR; } +static inline bool svm_in_nested_interrupt_shadow(struct kvm_vcpu *vcpu) +{ + return is_guest_mode(vcpu) && (vcpu->arch.hflags & HF_VINTR_MASK); +} + static void update_cr8_intercept(struct kvm_vcpu *vcpu, int tpr, int irr) { struct vcpu_svm *svm = to_svm(vcpu); - if (is_guest_mode(vcpu) && (vcpu->arch.hflags & HF_VINTR_MASK)) + if (svm_in_nested_interrupt_shadow(vcpu) || + kvm_vcpu_apicv_active(vcpu)) return; clr_cr_intercept(svm, INTERCEPT_CR8_WRITE); @@ -4254,7 +4261,7 @@ static inline void sync_cr8_to_lapic(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); - if (is_guest_mode(vcpu) && (vcpu->arch.hflags & HF_VINTR_MASK)) + if (svm_in_nested_interrupt_shadow(vcpu)) return; if (!is_cr_intercept(svm, INTERCEPT_CR8_WRITE)) { @@ -4268,7 +4275,8 @@ static inline void sync_lapic_to_cr8(struct kvm_vcpu *vcpu) struct vcpu_svm *svm = to_svm(vcpu); u64 cr8; - if (is_guest_mode(vcpu) && (vcpu->arch.hflags & HF_VINTR_MASK)) + if (svm_in_nested_interrupt_shadow(vcpu) || + kvm_vcpu_apicv_active(vcpu)) return; cr8 = kvm_get_cr8(vcpu);