From patchwork Mon Mar 22 18:10:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12155957 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B59EC433E2 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 44D8D619A1 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232262AbhCVS7B (ORCPT ); Mon, 22 Mar 2021 14:59:01 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:53962 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231643AbhCVS6r (ORCPT ); Mon, 22 Mar 2021 14:58:47 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MInu5S005223; Mon, 22 Mar 2021 18:58:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=GapxKE9GulK0jHGJWCpUwhHJ1St2QDENULrhnSqfhuQ=; b=EqWPUxbuyzkbgLYtxhmWRGFMc4U96RYFvwF8WLfWgeUPGxY+gKkH6F8BUFhHWsmqy5mU BwE/ZsmvLWmY99Wg7q1RtvoCn8A/5RPZ/FxSdW5Q9MqYo1z7qV9Ft10LImgDn6FPbjja 1/2Z8+6Y8M/IihBhN0eGLqTKHR1s+8aC08kaKaeJoJuJ7OM5+eKwmPt80sk75vvCrjln XfM6igVUZ5T+9QHTpjmKXifgL731UUy381EdnNxCLjwMd8nrXiTVysaFeXNdAD30TIPS SyPdakE3N5X8l61wcZHNQoKj0FDqazEi3QvK5jUNt+Vf8za2uhm6qqDce5HCFTJNyKdK JQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 37d9pmvg45-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:42 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MIo8Ir135034; Mon, 22 Mar 2021 18:58:42 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by userp3020.oracle.com with ESMTP id 37dttqxyc5-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EaqaDkeAhHGnN3L0svMA5ADMWTAcagQ5voVDcVB6MIwpv5imWXh/sv/65CVVrxPZj2aQDONZegsM90tuoQEMf5Zgmn4Gt0eIJCTcrczP9Mh808C4VSZLMX0PCuf4r+LmRHijYv5u4KWNBVaOwXUGINKk8VTmeVOr+WV1KsGwi02L20IR6d99S39TNwkaSbpp1bF8yHb17OMyVzWLkWEijYAOkd9uDQtJQtOda794ghl7BMipY/7/cC5CjmhhTlOS8TtYf86B/2a8/dYgTj3EQ0YiO4KAgKFUTyi5hdP/gctxIZZWiT7oBqFzvvcMWtIklEXuze99QBQ9YKNhJssfOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GapxKE9GulK0jHGJWCpUwhHJ1St2QDENULrhnSqfhuQ=; b=iEDgAE3cyLrjJYfiL8d2l3K4/SFCoZhMK9flVpJ2Jk9aG0evwYTQ5/Q/dM8CnW+I8UZ/EsCy8kQlceAtC9AcFOZEz06qVah9ekqOftjMF8qvXH0CEIj2jxoz2dSQBCJX+ImPjYnVLmUvKcjGa23vmQRT6HGmv1+cLt8So6VdDHtfnzry6RQE1kx3+buOo+DuZtZ1YX4ENGzSDC89dm70CAGsBbG6rXxNURrZ2DSM2Hq/+o0A9LUqTWVTSwsNSIW/U+qU44qkmqlT9aE5QK+a8W5bHD4pyjE/Q5XfVkLqxFAgkriV+GUpaYwg1VMLpIdfuXMJ593nwTZNBe7sgozTPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GapxKE9GulK0jHGJWCpUwhHJ1St2QDENULrhnSqfhuQ=; b=N77jW3eP531TcHl4VQW0GkP+IJL3vN5GQ/aWulnm9AaDPGjGeJjfGg5KqIQWKFuThqqSCb1Rur7d7WdIBaDBIKE3F2px4ynVCtngtTPZXtO8n+OEMeutBpXhSaIy+1trJcd3emruUgpdZAKMvV4NbeiLrs9k7H5KAajK+//w+RE= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=oracle.com; Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SA2PR10MB4795.namprd10.prod.outlook.com (2603:10b6:806:11d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Mon, 22 Mar 2021 18:58:41 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7%7]) with mapi id 15.20.3955.025; Mon, 22 Mar 2021 18:58:41 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com, seanjc@google.com Subject: [PATCH 1/4 v4] KVM: nSVM: Trigger synthetic #DB intercept following completion of single-stepped VMRUN instruction Date: Mon, 22 Mar 2021 14:10:04 -0400 Message-Id: <20210322181007.71519-2-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210322181007.71519-1-krish.sadhukhan@oracle.com> References: <20210322181007.71519-1-krish.sadhukhan@oracle.com> X-Originating-IP: [138.3.201.29] X-ClientProxiedBy: CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Mon, 22 Mar 2021 18:58:40 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 706d0823-cd26-43a3-dcf0-08d8ed648226 X-MS-TrafficTypeDiagnostic: SA2PR10MB4795: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zJSzcsl4I9Vav1NL8I5wpI28Oa8KOBzctwU8/qZYyVogO7T7TiPyIVvAw6gTZ71yNi322HRgQtyO57jdHrOpIMeclXECXrbXZCzpZoC4rkezNoafo80M7wy6b7tPbG9DYhD2rvXRZ2yCa549U/Loje5SBK0duwVxRmqTl/68Bzl/5unWVhmmhKVznyoPl7S/vhNQoKda7tsjWsB2xgCiOctxjpLd9BIoJawzVBoPZHADjQe8lRQ0QIU5fto38t5QK4m/gJlfKq1UezPrzfswpd927vCa838GYptT4nEiYEkZ/x/XUeJC2WSi7OwM9RZYdP74wEqJF12ofATKCWpRmwVgjFBgSbAghdRAkypaskTiBRDYaP/wbthxQ8+VKCa8yBuipBwCiDxX783MmHvtD47Ear9UHQKNxPFHz2uX923jccHojp1+nEwrvktG0p0MS+wTFlOp+pJSopWpsFbj5lQZUvDJawBIGVT7KFc6+1EJLgL9zcRGOpYEUb8iJ6CgyFDBCxFt2TC5ydd88KkkjgbnZCtgADvOoCd9IgyK+LcMtd2G1j8ykUhyW9F73bo/ZHR0weQlJefU8ZQIqgGWHrYqWdxomGazFYC2/TgWV8q34BwVJMYwOXAGngBF4RH5JDFEMgnDcbnsSTIi5bMzPw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(366004)(136003)(396003)(376002)(39860400002)(6486002)(2906002)(16526019)(186003)(6666004)(26005)(44832011)(5660300002)(66556008)(86362001)(52116002)(4326008)(2616005)(316002)(8936002)(1076003)(7696005)(38100700001)(36756003)(478600001)(66946007)(8676002)(956004)(66476007)(83380400001)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: E6g0jRrKYn4gxVXvJ3QWoXI/l6C5mNRdHyNll2+1imj0JlE8JjV0CJYoEMVa6AvYRIacmeZW+V8RNXEuUeH9/2KnaF0xaLXLgDAttp53jmLbSeo+7v2VJ/tV/S8JpK1PycHhX/M9rG+JBxG0VIWT6in07IvIzywzLFz/ZhZ0YgT/IQ7A2eMWYjPV8Ot4S5etCLHcJ+WVxvBWxehGGABtc0iLKhRqxIeCdjYjer91+q4KO5ZaFmaoF885mPwtMsiLfpvg4Td6qLeEjMl38RacN4r4M3Kfms+MXzwal9et+yMF9wD7dL3jBpVgrmmDuFl+LV+ovJw+Jdgr2klRRSaNI2TAkv2NI137RfiJ3B92DWZN3TcNmKr3b5Iw6irSfWxbwd3sgHKURCBBdZnIU6wzgcZr3vE/AdoMxgCVUJ9s5IRy9WO6YAqWfvbaFVzZEOGwR4tzEb21vpT6n64fA0yFyFzzv2qvDV6OEOEa3+055Pz6tvQl2p0c8NHqsMgtloHgKy1Zx/g4m3XHUrUEZcLeSZdyR/GpV+gtHDbxmi5rW/Ab82GTj7A19vTbMmnXWTQzGFOLD47SoZLS/srH/uSNdmoV1aAyPOdlin4vnPHsRpc3HEyB1DgrgTzqSt5x4HGc5NPG4vdXwl91kI0nr8ksC/cx/trHWx7XiI8v9zLXyWkgVczKTolIahoWG4/VNgpqGsLCGAfubfMfPud9+avYdVXvxu1OnHt9b0+oFbeGndmFcH2sGRePLpj05Bytof8i/5p5vAtASssbaukD2RIfc0khyaOaAgFGszSPFB7Hd0GiRPyPGoyBdYBgYJbQdkNZgAXUFA7nxEZV/ZTcK14zHtmZ9fZQlN5Ur0wnaxVtpHi0BAMU19EnGlyjQZ0ztmZ1SrTRVc+0TKGVuzdHPsTcTMIhXrAqVtjFk+aB3GKo3YAg5plc6tpiQc7zQGvMio35Scm3N9rBm6Ziu1U8fbRvXD1ttZkLR0m6GzJ3ME2utoLg0k41uvA9fIJRlgC/X7Z89dlp7XsjkquKZvq+MiN5KQjX4N0prUxj/Kkam11x0ghfEGqOSqwbuH8ptqgxKrc/0FPvSiqzZ7vp1D7jLNLtNJiv4aQphvSfIz/oV9tu7EfPOFUIyqueJvkJZ5wJhlcpiPxwhn2BIh5kOtvcIcWYfDos4YM5ElldTpA0iMvjdiYIFFetXv5Bk6Yr3Ntodpd2P6NTzO9n9bM8fOKg41b/44joO2JY5TwO0VtT+t7vgza6vIwi/Zmrzk+v05kWF3pl4l9qxTUqpv3hJeIoBZp/grwtQjxGWZh7BQ5vv9VgcnOTx8udPc4y9h2OL+Jnbgn8 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 706d0823-cd26-43a3-dcf0-08d8ed648226 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2021 18:58:41.2840 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8U8G/zxJgD+qzPNq5+FuFBpoLoqBeKx7+vlQqHKJgHwr22EWLVKhmTe1wezoLwdsFp5pT5E9Pg6x1enuwQIKZMnEd9lZIZ69tKjuekPj0Eg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4795 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 phishscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 clxscore=1015 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org According to APM, the #DB intercept for a single-stepped VMRUN must happen after the completion of that instruction, when the guest does #VMEXIT to the host. However, in the current implementation of KVM, the #DB intercept for a single-stepped VMRUN happens after the completion of the instruction that follows the VMRUN instruction. When the #DB intercept handler is invoked, it shows the RIP of the instruction that follows VMRUN, instead of of VMRUN itself. This is an incorrect RIP as far as single-stepping VMRUN is concerned. This patch fixes the problem by checking for the condtion that the VMRUN instruction is being single-stepped and if so, triggers a synthetic #DB intercept so that the #DB for the VMRUN is accounted for at the right time. Signed-off-by: Krish Sadhukhan --- arch/x86/kvm/svm/svm.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 58a45bb139f8..085aa02f584d 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3825,6 +3825,21 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu) trace_kvm_entry(vcpu); + if (unlikely(to_svm(vcpu)->vmcb->control.exit_code == SVM_EXIT_VMRUN && + to_svm(vcpu)->vmcb->save.rflags & X86_EFLAGS_TF)) { + /* + * We are here following a VMRUN that is being + * single-stepped. The #DB intercept that is due for this + * single-stepping, will only be triggered when we execute + * the next VCPU instruction via _svm_vcpu_run(). But it + * will be too late. So we fake a #DB intercept by setting + * the appropriate exit code and returning to our caller + * right from here so that the due #DB can be accounted for. + */ + svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + DB_VECTOR; + return EXIT_FASTPATH_NONE; + } + svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX]; svm->vmcb->save.rsp = vcpu->arch.regs[VCPU_REGS_RSP]; svm->vmcb->save.rip = vcpu->arch.regs[VCPU_REGS_RIP]; From patchwork Mon Mar 22 18:10:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12155959 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0EA2C433E3 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9B039619A1 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232276AbhCVS7F (ORCPT ); Mon, 22 Mar 2021 14:59:05 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:56994 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231728AbhCVS6s (ORCPT ); Mon, 22 Mar 2021 14:58:48 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MInoIl020437; Mon, 22 Mar 2021 18:58:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=K+cmskWO4KMrstqQI6PxoqOUASU42S4XbV+9Yen6tHk=; b=wdMSahwyVY/Gg3IMQ/62qsZWZj5MoUp+7VmwpH8m/hiau6x4yp9zBtrn+HyCKTnzu98S uj7YpZuCQYu/sQMgCL1LVEek+/Wlv+3gAis0yF3LR6zeSyocViLo+2fg3+UFhNHpNMWZ ZB4xEUxs8mVagubK5iKpL0ooWsYzPHC9hnOPLAIsm2tYeOD+hAS1E/J7aAjtdHrn+da7 6NtLh87SKmvX4FQhzgk5ZDVzpK7S0QAw+P1CgirwRrYTnzVpcIfhK/2wwzuGpvSMbHah YJ08VLfvRIxVwd7GUovd1o2CXw1Ij7emIagicmR/MgFCvO/zMNM3U2Ec0HoU3DW7zGkL pg== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by aserp2120.oracle.com with ESMTP id 37d90mch4d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:44 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MIo8It135034; Mon, 22 Mar 2021 18:58:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by userp3020.oracle.com with ESMTP id 37dttqxyc5-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nmw2wzaGm/lrOvgd1/yGhJKAwKmn8u+uQIsrizcmrfF/YnVLh4IJeS4iyBilHu0wi6mW3Fs9tE1NhA6kbi7CUM6J6u+tBtpcidj1NOTV0J1yLsUOJGV5kGYpy3kbN2TcYLGV6ngWfQ85JazUlXw/LJHs8e3EE73n3lV0vjvuVX3gXNm+/10o0blDOuZK90lBA4lahLDBdLsLogtQbcVxJpUs7GP5nreVgelilrO3fZoRGAfWrIVFKKg6BToSakvrloYxRfXlDReV4eIHOHj/7GiofKgr+q6bBqrqy+roGhoA8Y0e/jYFDlMkZ/YIE7rvXApVuFlEJeShlnlFbSCX2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K+cmskWO4KMrstqQI6PxoqOUASU42S4XbV+9Yen6tHk=; b=HBwWZXiDeik07Wo+ClVb3yN5Ww8f9YxqgPaM7VtKxEnfBpkHLFdh7u5KsH9mw6kc284lvkz/M0LkILeixw7iX9r39yGttjkSrTsB5KdED+cDAi09RZy0eKt9Zt5ZOgGHFcTjT2HyR0djgBc4kYeN6G1ej9W9ZwE4JbiAXJ2le5C05qe0GfogjBy8GBGJdRH9lu9o9gRzS3MFUs4r+o1hRETw//8pIo1DsAm/9HX+WNLD5DSMUvaCI2fl4QkijHnvkYEx6iosmOHioIG2sfXWt8JMGo6PT0kTWlNeUdyfFJoy+D8+eq5gHH64DyFT52OEJDJjHEH2fDEESEvCwxgmsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K+cmskWO4KMrstqQI6PxoqOUASU42S4XbV+9Yen6tHk=; b=ULkS5Y/CbcaJC7DBSGBLhCZd6SNP87WYCKutkGEGehJfkBzCiaO9XBR6yF1zEA0TRK3e6LKTSEv8U1U59cf3rrim6Ar9cy124Kyv110YQa+Ahsu7w4Nzuq+bWd+Gy6MqC3O3xr27wsP5UBFlGGW9SnJ3Kw+yWk8XHVTU+WFVNBA= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=oracle.com; Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SA2PR10MB4795.namprd10.prod.outlook.com (2603:10b6:806:11d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Mon, 22 Mar 2021 18:58:42 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7%7]) with mapi id 15.20.3955.025; Mon, 22 Mar 2021 18:58:42 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com, seanjc@google.com Subject: [PATCH 2/4 v4] KVM: X86: Add a utility function to read current RIP Date: Mon, 22 Mar 2021 14:10:05 -0400 Message-Id: <20210322181007.71519-3-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210322181007.71519-1-krish.sadhukhan@oracle.com> References: <20210322181007.71519-1-krish.sadhukhan@oracle.com> X-Originating-IP: [138.3.201.29] X-ClientProxiedBy: CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Mon, 22 Mar 2021 18:58:41 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bf39692d-455e-478d-f53b-08d8ed6482b8 X-MS-TrafficTypeDiagnostic: SA2PR10MB4795: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IS90RJ/Iy51asc4rAlWmPHGqudkDpHoHWyIIfYPBN0TWozf5uZ98qFeLnWPrm7uur6pIhMaiMEvQo1+Aqa8uhlrQHiWj7mi1Di+Jm7/JDmrze+vUQ4IxLFKQ2dw+9zt1k+pOnhr5xak0uRExbCJ0xSh5HozqfvrzGAyYUXcjLZEY2QgoQhl3tO3SoKTCAKQDMJEwHedc/yYcyjaxLLme5bVcczEaSRydVAFT4wWJoE5lVXaJdMGBzPY/WbyIu6hMt7885SYvyOoy7huGxXMrw02BfU46pAKASaW2qcsd93ORsHZPbcMLZerM7E5do5P6XSlL4rxzWoXxVKebi1qEgafcvAObO6IgK+EejJoYxbEYi+g42FwhtIHZG7qa4xduCaysjosFS9sbm1LJ3vwg6uPNTiAnjObk45oDWxR3Kh3+LtjZ15O6ElG4kGv/wav+cYG/nOwYvWoNIKxvaJrNLYoxVl3/TRDbv9LaTyC/i3H6hOW7wtNUXagmRk/zE6GIc0EUXaFhcGwvzVNBObMSYzn5dRmJ2xYH4UpBoVDa8GX8Q3MWqr40NJVeIM1T1vcbeovX00nYb8nFyq2Q6ecbcacOWobYE2fCC2doiAGhJCvi8H3oYbWaonKBBm2//LNz80/cDeDw2X1oPMw/FQkrJw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(366004)(136003)(396003)(376002)(39860400002)(6486002)(2906002)(16526019)(186003)(6666004)(26005)(44832011)(5660300002)(66556008)(86362001)(52116002)(4326008)(2616005)(316002)(8936002)(1076003)(7696005)(4744005)(38100700001)(36756003)(478600001)(66946007)(8676002)(956004)(66476007)(83380400001)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: xNrjkw/EAC95T9iBB9z/N/M1zVNwLBPUMazpKiZaXNYTfymRj2LW28Srjm5ojQtstUJuyWI4pmmz3gGsJdUAgQbd2BrW727afYDawyEvBQD5U4SqXNkL5i1+UHtOmUbwcCn/ymL+LDsRqanx0hawCjXaSFW0R/e4A3+LR08G9/dgVsxKmGGEDoFO6THmqelfl36VBVt0UYOoHKoYLHczEmT4FukNTMeiuY+fIFF+RKfMmHwRih6a7UAPkCa0fyQHHtPRLagxFtWdiPyzvV0Da/Rt/d/0N62zZ6AMPW5F2p0pHrU4OY9ZW8970V4OXppPvEDuF4uY9aQLTDowvb2OqRXVgLz4q0p04x3qfkq1FuY0e1KB7n1SpwTDIT/R5YPRfePlupT28px4btO58n6pDot6NBhJeyDYypo6Kt1LtDTyG4YKeR+kPnfbIpf2KbBXgyM4hlD9aZzJzW1tHrFhXgZZKUydys/1F+oaRv3GQclpCkJgo5u9wmR0giQ/36wKSjlslP58gFGAuHpe/ZV6LYqXaXc4VsVARkZm7oIdPBIHhfbhor1Lyqz2dt152OmlHTj1LVUhrDRy2bDX+6paKBhH1cN2KP8Q5R41yuBNlIyiCHLitvya19WFFJ16+jYPJ9PT/ND6s5q2daNh9mTToUKZHdvOL5tfdJ1weqLcU5DJhEFjGIDC/OqrfmBm2xfUzbpbeEJtdIvCOCWel9NPQIPQIAGxZ0NR093cn2AX2Qb3IyVs0sMqn05dTYqtfFEg4ykOKTy25vFBmpf1Xt7tQmGjjg8n1wBuuUuvchpGTNYAg9m6sxhuG6iJbzy6CWp/yA5DFiFcNhpyuUXDJDwDY/DQjW1BrrYpMvnSaSXyc5gTdaAS+DCQfZCMr59wRL/r5sQVC05CN9zI9zlG4YA4ZVmjgJeYislrVqA4bbuEQjUG1T3CgXpbCT64+dPzTMIGIVHrRvz8QoysohYuSp1RE52e4Aw6io5oCAHerGIk+oY2Cy1hUCL3HZRPRzSkcrahnOUykoqr+Crv9YZrS+O8Hvfo+ykmEgmZeJnXo0G/wcf1KK84EBrS2bKTa5AjLamdBdPJa7baJuH6dPkNiCterjYOwnBHo0+0vV1X7nTV7xe+G/MrCpZOVbL/sRGHVjW5qzcmdu7LJxH+fSTCKTccCzeJIS+WRjTPTr2sj9IFc4YA+CvrsqLjSyCRNdmi0LYihjajjEstO8a9LdRLBQMXbNHWaC5mgZ0ZpWzTawRoAQ8vnKV9ADUG6j5h0aTme6t6ZLROd30qek6h9KOMl6vW0238F79oCRxs6X7EUPQGZ6LeIPnCannc5P4VtSrgPGOP X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf39692d-455e-478d-f53b-08d8ed6482b8 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2021 18:58:42.3014 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Tk41P/0OI6d8JKWebUnwUzMbFLArxTl5tYYnO8cnuXjFibp2WrSs0Bq/eBJ8NztWBfmf6OQ0EtOuC4u08wVkxTrQr1JIBqJjlrVptkNsJTA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4795 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 clxscore=1015 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Some tests may require to know the current RIP to compares tests results. Add a function to read current RIP. This will be used by a test in this series. Signed-off-by: Krish Sadhukhan --- lib/x86/processor.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/x86/processor.h b/lib/x86/processor.h index 87112bd..5604874 100644 --- a/lib/x86/processor.h +++ b/lib/x86/processor.h @@ -489,6 +489,13 @@ static inline unsigned long long rdtsc(void) return r; } +static inline u64 read_rip(void) +{ + u64 val; + asm volatile ("lea (%%rip),%0" : "=r"(val) : : "memory"); + return val; +} + /* * Per the advice in the SDM, volume 2, the sequence "mfence; lfence" * executed immediately before rdtsc ensures that rdtsc will be From patchwork Mon Mar 22 18:10:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12155961 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B599EC433E4 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7FEA7619A2 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232272AbhCVS7E (ORCPT ); Mon, 22 Mar 2021 14:59:04 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:53996 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231800AbhCVS6t (ORCPT ); Mon, 22 Mar 2021 14:58:49 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MInvlX005241; Mon, 22 Mar 2021 18:58:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=kJcYqcSQYGBtDVjs9sSZ/xT/IydNqFtYLSf3Epfj+M4=; b=MIpmKzEeibB2jVI+171LpaO7koFkLA4AgpEneigsZkOF9yc5Ff0Sgeec/tjbHGvVIEAR 4CIeZEtDHqU5baP/itOhqvZwmj0vP3nuA3EeAYg2PeXP8AYEdl2iZX/2NzF033wrSG3j Z0mgj79e43L5uMmhb9tp80kO5b3vXvQkM5KD3GILHRkftDEypaObdpnrX9QJZPQY3qSI 4amwxwCo1lwvgZvWABxEulKRxs/d/B3ACrhmZUnM+T19F+WCBz07bRFadG3zzy6aCpOY 4/u7JSvVa1dKQdUBAEmScyng9Nv2Lyz5o/b6KBpt4IiRHMoC07AJgHhPtTjcfvGmENOA 0g== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 37d9pmvg4b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:45 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MIo6TY134562; Mon, 22 Mar 2021 18:58:45 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2046.outbound.protection.outlook.com [104.47.66.46]) by userp3020.oracle.com with ESMTP id 37dttqxydk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B1GLmBSpOe173cngIRoIHsZnO0e9QFE/dVwPKLZhrRcvL6RtQYjIWL+E0TY/NYhwc+06ZQeu+XnMM9wtBM4kbv3Tb2houxzk0DO33XfiPQgAVUlwXpiPqM+wTAdQXIZQqM/sNzcRAhi4HWN3GskrGWkwTr9YXBfBqP16/Bfi1SX94q3IbPRc3GsaMMiXggzJQBKlMmuPh9h06NGMgeMV7G3Ax+IhQ0YoQT6TLrlJT64dJZlFPJwbp+7AbXQU2WyIT0C+vU3bhHrikMZ6HwPRtacpT8dX3T2LoW3ug9yjjsaZhWM+kLPAs1ly+r+AHEgODhXVlcVk2RVY7L3aW5lwLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kJcYqcSQYGBtDVjs9sSZ/xT/IydNqFtYLSf3Epfj+M4=; b=ZoHNpPFKphYpyopeC4x7ShFeG5rKiwJmgECxqRtJC6D2R+gFf4TzzhcBzsdwfiTYhQC3CmD6V+q0hae6FSqfKrojXKb0PBMQDxbThTvblKzCaglc9UJGs3KFfF9J9fUun2GHyhbKa99Pu+owms8qO7H7JOhvFyRCrDsFUc0A7Ae67cYYGzVLJChxjcph+etUzjNFdPAfRgDVG/g59AdtAOyCNuCKIX1424Hvc5tjoWhF8+NOpBPsPqET6zXprc2OjwjSW+OBj9mMVA8rG+cbc/cnUhMS0uRlJRehpnjTceBF4CRvHFIq7n3j9rYzUvjNqChl7pukTZauRSR4lrxdsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kJcYqcSQYGBtDVjs9sSZ/xT/IydNqFtYLSf3Epfj+M4=; b=RS8CgTNPy7KMXWfG9TtJqIss5X5NBc5aKPn93KLivEzsUfRW4MIVuykzSlG4bDiI6T5ndVLrMZMWOK6WPzalD5Kt0N6zhOU/3EBzuk2l/QrWqvGtKvhB6Uo7NnFR7gXrly3m1LivF438BF9juBU+bM6ABq1Eomo/oaR0mtkuoo4= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=oracle.com; Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SA2PR10MB4795.namprd10.prod.outlook.com (2603:10b6:806:11d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Mon, 22 Mar 2021 18:58:43 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7%7]) with mapi id 15.20.3955.025; Mon, 22 Mar 2021 18:58:43 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com, seanjc@google.com Subject: [PATCH 3/4 v4] nSVM: Add assembly label to VMRUN instruction Date: Mon, 22 Mar 2021 14:10:06 -0400 Message-Id: <20210322181007.71519-4-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210322181007.71519-1-krish.sadhukhan@oracle.com> References: <20210322181007.71519-1-krish.sadhukhan@oracle.com> X-Originating-IP: [138.3.201.29] X-ClientProxiedBy: CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Mon, 22 Mar 2021 18:58:42 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0937393e-8ea0-4e67-4ce2-08d8ed6483a0 X-MS-TrafficTypeDiagnostic: SA2PR10MB4795: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2qbtK5s2MaLbyHK1LxJZE6iYESoVltlR+6lfEEswM5/nqwuOtfqU4/2Xh2VC4UMW1eJoB9vFJLO2L8aBPDxls8LR3l0Y+Xw67MPAWG+r117S0MkFO82ZKrKn1Hq3qtM8SkZlpQft1KTCVZaoN98tX+KxzhFVGHK9NTyIarx6Yuls8a8s0njMCBlH/Gc5GL8ZIcke1iyGzo6Q4EWRL/6xxlCyanl+TEpcNM9IsO/F0hd9usjMbjKoOXmSC55/JfbgMewVJxR/0/zeiQDd5YxlFQmvYdlA7NNwyYKkj6JpAVVuIwJVZYaVEpnQ8Y6hBIPlz4Tx+hV2Ra60f7gTuw+i0S9unaBQZVSD6TojD68a8l2yyoSn5mXh/OiQ4OkWhwoHinnh/O7E98f6h9J63xIfz5sxWF5UzsW72IgHo9jglOgAZu2VOABUYWLRmhT+NbqZs9KsfZ7VCxCtYiBliVnu6vzrIp0di42Rqfme3OipWyG/GBQwrjGo9aK9Kcr6qPGrKw/65nMLty8FKSJxDJl/3EzO+6JGtVbwq94DkT74wbStfpJ1JU2HzzGwsXVb5fEDLCdDGvg3MoT+mG7jAHjRP6ZMf/sKMj9BvAizSf81YQqtfRM+eGLbg7vZaGLWUWr9/vgUFFjBQbpqofxjf0fRuw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(366004)(136003)(396003)(376002)(39860400002)(6486002)(2906002)(16526019)(186003)(6666004)(26005)(44832011)(5660300002)(66556008)(86362001)(52116002)(4326008)(2616005)(316002)(8936002)(1076003)(7696005)(38100700001)(36756003)(478600001)(66946007)(8676002)(956004)(66476007)(83380400001)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: JngtrAZ9AlmVvMipFdEKm+EXFJ/NbMY+176Lf9VpBG4ykInwDJ+gCkDhZNHDMjOPMmxrXiIttWK1jVz7U4pD6F0/pdVzQyxqShF5qKhhtDjRXJrTrGN0D4bwLgofzJHcOCBwWLxesbZQuUBwxr/AyjZAuQ7KxWkzmS6wo0Jo+u4qYIM7sIe2+MYmHDsUh2lx4uAnvUWy7me8sXNO1G4mzntkK/Muvo2JKrnoZ/p1eBzvLqWd5Pmcr8T7gtjREzndXV9NFS3n9Ah0GiL98BTsvLLYpyjjNF5C8Bt5l/NfP1lcoUlsXVWqrJan27z7g/XkKYF7KC6b56x/lZ1zyCvNDpMLjS5kTpbNZW1gLvTIYHM2X9sb3mGxi2EmVx91JbV0sH+c/XQHh9uDrlUgy3wSS58fm+GmcI1IMJ6pmSyntloRa3VRNca7wmlUR+q4gM5m9P2YP5J2LGNmTgEtuiSmVSfxJwzFvatMWX7etXLlNwEUq8wMBB9eePui23GNH/k0TjqUlocmVEn0mZBr/SpgXcwQYOtIDHEkon8+RCvKIKyE4EKfbO3WqCcdiBFsJrV0XSK+Gm8UG0F21lhOiIN3O15d1wQahC5PV0ODOBu6tAini5FldTzmKaiojo+9+i/z3dMRHpdF+sySCUuilVdoM0N5vya61AoV1waRwUagEVeycSwLfz8+lE4vXXxjJjMVyaNFoSYeagiFRvPMFwk1cPPutb40gfUL4WPt70T5N+D3yNhTiqoR4QYGg7yVIiiVih+rca2aQtvpUrqulFtieDaa9bqxw3SDNJX9KjGxc322179l0Kj1/I0h+4e0fMa30YoNdk37RuHDndPjsgBAaJODOHACxLmJV0fOFGkUysIIXBi+hAUp4JeANgfahYBWE7QnL14U+Ab5BC6GUtmFiuEuPWAigDt04ZiViNrCEVl3+4eD8Z4R5SYJhgoz/PkUvWMc7E3gvb6mGKTQLsDORZLAdiGyzktG+xsp0FlJo3eHyXL07Kq7yXLiPWOa7wEozTvS8uXlWZG0tqOPS64SqUKvX62mQvpYJlP5Rzq9/PYZhSdDc2/ztlO2UfDYo75fxsbtvUtyvM4M4T+y/Y644YvjaMRZXFd7TJPj+PZJtvotw0uAtg9ORU1wJEDCKGhPclhRW+YeMW92Qhw6JAN0VHDFFtiGoQfnUZ59WD8Y/sNg3SmvLdot87YzHUDYj2+DeTyyhTIHIuxoLtUTOr8fxNrC3ZGaXex9tOLM/COFJnpgrI1FkzUz8EbzWPWq26UA+m8rXXwoeMkXfa36VLC/+/i8hhuYXHkvEvGAhPuuU+mxS6cpQSciRm3lPfzYKuRx X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0937393e-8ea0-4e67-4ce2-08d8ed6483a0 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2021 18:58:43.5967 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LCmAChhKMZfGz1+osGy91K/X0LeAASRZ10TSOsdIijhpRwIl4DqqbkSGiByVTpn58s2tryWhofCrFkoD19urZW+V5dWY+5dx5bliBvOfqDE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4795 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 phishscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 clxscore=1015 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Add an assembly label to the VMRUN instruction so that its RIP can be known to test cases. This will be used by the test in the next patch. Signed-off-by: Krish Sadhukhan --- x86/svm.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/x86/svm.c b/x86/svm.c index a1808c7..77fba8b 100644 --- a/x86/svm.c +++ b/x86/svm.c @@ -208,14 +208,15 @@ struct regs get_regs(void) struct svm_test *v2_test; -#define ASM_VMRUN_CMD \ +#define ASM_PRE_VMRUN_CMD \ "vmload %%rax\n\t" \ "mov regs+0x80, %%r15\n\t" \ "mov %%r15, 0x170(%%rax)\n\t" \ "mov regs, %%r15\n\t" \ "mov %%r15, 0x1f8(%%rax)\n\t" \ LOAD_GPR_C \ - "vmrun %%rax\n\t" \ + +#define ASM_POST_VMRUN_CMD \ SAVE_GPR_C \ "mov 0x170(%%rax), %%r15\n\t" \ "mov %%r15, regs+0x80\n\t" \ @@ -232,7 +233,9 @@ int svm_vmrun(void) regs.rdi = (ulong)v2_test; asm volatile ( - ASM_VMRUN_CMD + ASM_PRE_VMRUN_CMD + "vmrun %%rax\n\t" \ + ASM_POST_VMRUN_CMD : : "a" (virt_to_phys(vmcb)) : "memory", "r15"); @@ -240,6 +243,8 @@ int svm_vmrun(void) return (vmcb->control.exit_code); } +extern void *vmrun_rip; + static void test_run(struct svm_test *test) { u64 vmcb_phys = virt_to_phys(vmcb); @@ -258,7 +263,10 @@ static void test_run(struct svm_test *test) "sti \n\t" "call *%c[PREPARE_GIF_CLEAR](%[test]) \n \t" "mov %[vmcb_phys], %%rax \n\t" - ASM_VMRUN_CMD + ASM_PRE_VMRUN_CMD + ".global vmrun_rip\n\t" \ + "vmrun_rip: vmrun %%rax\n\t" \ + ASM_POST_VMRUN_CMD "cli \n\t" "stgi" : // inputs clobbered by the guest: From patchwork Mon Mar 22 18:10:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12155963 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E24D7C433E5 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B4A9C619B5 for ; Mon, 22 Mar 2021 18:59:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232283AbhCVS7J (ORCPT ); Mon, 22 Mar 2021 14:59:09 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:36066 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232030AbhCVS6v (ORCPT ); Mon, 22 Mar 2021 14:58:51 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MIp9wI072270; Mon, 22 Mar 2021 18:58:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=3oqOQzXMmKRKihKmkIfDKh3nJtV0LRHpIc3Ti6MZhJ8=; b=lhMM4oBx+L4HSRhSHkJKE950HESQ/83wSHNtwqt0ISpyPy7eoV25+Koj/ysM23YPP3v3 XaDnmpUjWIxHrvPOGx3um5GdP5OtjDw0xm1r2+sG1crbVjXmI5wP8gQqjwFNC7asT/kD vv6caUrmm6+Ke4C1jkpCtZkTLXXQ6HPaKs/s1EKvZRduka7RbAqkrxk83o7KGAoi2OwF znODd6Er2FZZXSuvv4nJ9ZMdDaAP6UNVm+UyAqKotLBfMn3JT+hCeGzsRnxpwEfIWbYt 9hCiCDqoD+wdch97IOIEY0LNXpSUaRo2bE9E+auBTtERdiMWGupC4dRAKTjJAvp6XLDo Rw== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2130.oracle.com with ESMTP id 37d6jbcndk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:47 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12MIp58a155689; Mon, 22 Mar 2021 18:58:47 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by aserp3030.oracle.com with ESMTP id 37dtmnjpuf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Mar 2021 18:58:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FYQRuAWgXuzuOewwfNXM0FhJHxMfFPShgmfTYDPeQyiXO0+IDRSLjb0b/0gWlvyRflki35QPRAaqsBX2xL2Qf+SGxnVYqlWe6zysjl+01sq+PQC/8Pq5e9UoaK31z1fidseshUvqGkqpLB5PLb1OiMEe3dS9jayZBPK4fV5988VV9NGJzFe7gloKdYxdJHn5gCpjJwuu/kENbizKbNfo/9Y2ftg3VIC4ICI2qMO/+s5G+asbtm4sDz0M7Fj8sEjkH65VDlpa52Ai3HULjtPHlrsJ04qMW5XLVJAoIRSVaVfHVYFU13flVLp+CxqYwvhySR5WGMbXOtQtslSLGzzETA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3oqOQzXMmKRKihKmkIfDKh3nJtV0LRHpIc3Ti6MZhJ8=; b=A3NfRaTNgJAroOzBG3bASd5Dw9+qtGAm0/8jEkDa4BrUyF/I6G/718uBT9hUvM+Lj4ixW+/a7Pn2VpcJKyaFNGhG1MAfDJQD5U4HVgu7km6VR+yN9XJPAgJ3ZB6zNk9/mvdX64nuD6z19npSjWUaNoDfGC9aoQAnnwADWn3A6yktHSRm7XXNDYdDV2OYjGNw/D706oNaFvGsEhPQ49GQ+cEhhSNvRKHiWu9kD2sdsV5huhAPjl+UVQdrBVk4hNmGO5p84p1DI8z3DvmmgxK5ZT6PY+YUiVyldnKzDInASrZbjPgh0I7+vo1dxCOIawWp8t4F5tzGCj+OQpNCxu4GVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3oqOQzXMmKRKihKmkIfDKh3nJtV0LRHpIc3Ti6MZhJ8=; b=B5pAVQzcdaIqg7WT68xhqQbVXZHv77GtFy7HMc+Yc9oE+eMjkbpq3cbIBRwJfALJTPu+JKoQEK7hzC7QX6G0qSLcT0/b4nJY1c4dyMlnVk5FnBsu4am1jQdwrTosyofeOtThPU9eA9p3H5GawWPMkNfzby9RCqItsPPBPEu9cJ8= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=oracle.com; Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SA2PR10MB4795.namprd10.prod.outlook.com (2603:10b6:806:11d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Mon, 22 Mar 2021 18:58:45 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::1871:3741:cc17:bcf7%7]) with mapi id 15.20.3955.025; Mon, 22 Mar 2021 18:58:45 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com, seanjc@google.com Subject: [PATCH 4/4 v4] nSVM: Test effect of host RFLAGS.TF on VMRUN Date: Mon, 22 Mar 2021 14:10:07 -0400 Message-Id: <20210322181007.71519-5-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210322181007.71519-1-krish.sadhukhan@oracle.com> References: <20210322181007.71519-1-krish.sadhukhan@oracle.com> X-Originating-IP: [138.3.201.29] X-ClientProxiedBy: CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by CH2PR14CA0021.namprd14.prod.outlook.com (2603:10b6:610:60::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Mon, 22 Mar 2021 18:58:43 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 488ec309-582b-4d05-1cdb-08d8ed64841e X-MS-TrafficTypeDiagnostic: SA2PR10MB4795: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3dTtyHx2mCdD5uLGTeo5dH4xKr4J6tdtM/yh/2jQZpZ9znt6V4xeD3Vs3FmKR2cNXn8bvYArxDP91d2cDgA6v6GCEfsKRYrJaQxB2TGGd3CLWemweZdob5ypfMF8q8fES3A7eDfSox52mG09U66uY2/d5nFXPDE4StXkyMqUPJqJUPgxr5++rT4jWnPGzQZcf214eVL5ys18ABX6ph/o62FjjMn577QnbJE5SUstjuaCA7i2Ht03QbkjW8a0iPDyb6ImMz7wAOq0UNl7zgWsJ6nB9su9bw8aO7serFYpaEM6Tvfeo87QgGw3a8AJ/XHu/GvILqvwokMGCHXX0ANGkS4CCZgnxiOvNyIRJSwvgJTEOgiq7W+wWc0yGdwrISpRcLlc4wGs2VwnQYLIqrfOptmdtrEY6wJWWD2gjbIk0fqeIksK8sJwiHT2+rG0KJn/WE1GFWpHhu8WxP4SwZanH/OQ0L3vDxiPUod7vgPre0nqXS7zYQWopnnCtbA+iQx4Cw/7Qrm5DQEhwqycE7nJa1jTiGCXfGw2jtECj+1JikY6JDltFDlG2vC1QMWWRQ/q4rrijblnyUqA2Hcc6nhKkXtn37HN8OQ1VqMputXLIKET7QH9/ddm6eLs2W23Y067B0squeOB2y9Jh/haflQ8cw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(366004)(136003)(396003)(376002)(39860400002)(6486002)(2906002)(16526019)(186003)(6666004)(26005)(44832011)(5660300002)(66556008)(86362001)(52116002)(4326008)(2616005)(316002)(8936002)(1076003)(7696005)(38100700001)(36756003)(478600001)(66946007)(8676002)(956004)(66476007)(83380400001)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: dQgx2/OEiReArSyJEg7FS+hOjMmtXshTIwOQM6GMefWb/1pBhNwNW6LD9+cC7PQ1peRiSKQF2O2+/NnaI1z/r36fuoKfL5yKfhNe6O/ilHNGfpvkVe+K+Tmuavy3usxKiHX1ryUyPi2gdGKVDFEYlcJfgg9vUDCqM8rP9SGZW1kv/XcsiQ5Ab8jtxpIQ9SIWYwGQkLVgB8bUHZZ9a7cs7Tf+S0oBg92vLCQEK5yGbZiy41NOFQEjVaSEiJrFHwsiO+PYfUkFCiZyqO6t7C9VLrA2oEuKVlhLGUhqNpFBpRonJftXnt5kLJJvEESzFKLKm9zckYEyuA8lUCJEi82pwZKZ5JzbUkeLRhNwaaquCBD9e+Ol4wwvPwWlm/cDA1zC02DoEQA9GVDSGnfftl8dqM+jLUkD5fylpq2hhxmsOVfW2zE6bnw8b5KVrfW8sSpqE72epHn8/ccN9MX1Mmz50Q3DEQoXHCSwTgXgwKtG563nsgUYMw7MmNk+9rkgGkeJe34en/zxKISP5HoTxsmsKLhmdtvCkQNtWRkwn4sZaOG8XnSUgualG4Y31G+Hyim2UqroPj1pVVq+qe7LE3YVuzMBliPyXR8mlUofikLCSQUnefaHwHDsPMjl0kbDECwkig3d8S1nC4L2A9ZrwjmIH3J8tJmmSTPJ+RN4MwrT/OM8NT31ERRAZgc6bqbx8raGlM2itrTEREGIBrvxX6wdqNfkWpcIIZJg3KAd2BeqPcSo464bJoo5qx49PL+HO4BlyYV9Hys5oi80VJOwUepepa6Pant50YZ9PS/V8p51Mv0nTRRewKePmXGoPXRcejvVJ1E13a5prSGt9OI4SiHFKtkTY9i/OoSlqFpai/HebzrT9AAaZEHlYwoDf5ak2KxYWwjcwrcvu9HFz9sqdEOjz3I9CowzKR1qVo55q2L5sxOuqlXrtX55KNlF1ZClPnqT2ca69ALf0I6+Bpk62oAXooDQV7Z09WJClfclVaZPYpzTO1A/VvOx5K48uVnNXC9Z6IEFHoX49i2ebULl6I+lbA3fOm8knv7OybiJHQaMbuDZFyOVgY212FweWaK5PS881+la7fTCWCl/Qu4UvIYK13xKbNC90QEazA3McUnafWKvd7Eu/wK9tH7hNAIkpXiwsbMcNYxMPgVEQzay0KIfVNIbdv9EBCGnJoItyCvPDkoUAHmXbKUipHv/i2G4OHLFUFYegTdt7kPTJeNnCPkjhPHgDa6+9wCqgvBZJrg81EROejjBzThEuLSqq0v3+7ANT05l5DqRL0qdAJ8VHa6GyVLIOGizIE2o9NSXyBKwMOdT/+iOLmXyovu5Xn4UhjKe X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 488ec309-582b-4d05-1cdb-08d8ed64841e X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2021 18:58:45.1987 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: G062W8uob/9fQlmr9iITpB6RYwauV288SQ0AQjL2dEUzNwx8nUmDgUTn966tmQGmGjiz+B3Mh9L4O4ZbbkvDM0316SCnde9h0x+iGHWTjVY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4795 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9931 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 adultscore=0 impostorscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103220136 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org According to section "VMRUN and TF/RF Bits in EFLAGS" in AMD APM vol 2, "From the host point of view, VMRUN acts like a single instruction, even though an arbitrary number of guest instructions may execute before a #VMEXIT effectively completes the VMRUN. As a single host instruction, VMRUN interacts with EFLAGS.TF like ordinary instructions. EFLAGS.TF causes a #DB trap after the VMRUN completes on the host side (i.e., after the #VMEXIT from the guest). Suggested-by: Paolo Bonzini Signed-off-by: Krish Sadhukhan --- x86/svm_tests.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/x86/svm_tests.c b/x86/svm_tests.c index 29a0b59..fd990f2 100644 --- a/x86/svm_tests.c +++ b/x86/svm_tests.c @@ -2002,6 +2002,118 @@ static bool init_intercept_check(struct svm_test *test) return init_intercept; } +/* + * Setting host EFLAGS.TF causes a #DB trap after the VMRUN completes on the + * host side (i.e., after the #VMEXIT from the guest). + * + * [AMD APM] + */ +static volatile u8 host_rflags_guest_main_flag = 0; +static volatile u8 host_rflags_db_handler_flag = 0; +static volatile bool host_rflags_ss_on_vmrun = false; +static volatile bool host_rflags_vmrun_reached = false; +static volatile bool host_rflags_set_tf = false; +static u64 post_vmrun_rip; + +extern void *vmrun_rip; + +static void host_rflags_db_handler(struct ex_regs *r) +{ + if (host_rflags_ss_on_vmrun) { + if (host_rflags_vmrun_reached) { + r->rflags &= ~X86_EFLAGS_TF; + post_vmrun_rip = r->rip; + } else { + if (r->rip == (u64)(&vmrun_rip)) + host_rflags_vmrun_reached = true; + } + } else { + r->rflags &= ~X86_EFLAGS_TF; + } +} + +static void host_rflags_prepare(struct svm_test *test) +{ + default_prepare(test); + handle_exception(DB_VECTOR, host_rflags_db_handler); + set_test_stage(test, 0); +} + +static void host_rflags_prepare_gif_clear(struct svm_test *test) +{ + if (host_rflags_set_tf) + write_rflags(read_rflags() | X86_EFLAGS_TF); +} + +static void host_rflags_test(struct svm_test *test) +{ + while (1) { + if (get_test_stage(test) > 0 && host_rflags_set_tf && + (!host_rflags_ss_on_vmrun) && + (!host_rflags_db_handler_flag)) + host_rflags_guest_main_flag = 1; + if (get_test_stage(test) == 3) + break; + vmmcall(); + } +} + +static bool host_rflags_finished(struct svm_test *test) +{ + switch (get_test_stage(test)) { + case 0: + if (vmcb->control.exit_code != SVM_EXIT_VMMCALL) { + report(false, "Unexpected VMEXIT. Exit reason 0x%x", + vmcb->control.exit_code); + return true; + } + vmcb->save.rip += 3; + /* + * Setting host EFLAGS.TF not immediately before VMRUN, causes + * #DB trap before first guest instruction is executed + */ + host_rflags_set_tf = true; + break; + case 1: + if (vmcb->control.exit_code != SVM_EXIT_VMMCALL || + (!host_rflags_guest_main_flag)) { + report(false, "Unexpected VMEXIT or #DB handler" + " invoked before guest main. Exit reason 0x%x", + vmcb->control.exit_code); + return true; + } + vmcb->save.rip += 3; + /* + * Setting host EFLAGS.TF immediately before VMRUN, causes #DB + * trap after VMRUN completes on the host side (i.e., after + * VMEXIT from guest). + */ + host_rflags_ss_on_vmrun = true; + break; + case 2: + if (vmcb->control.exit_code != SVM_EXIT_VMMCALL || + post_vmrun_rip - (u64)(&vmrun_rip) != 3) { + report(false, "Unexpected VMEXIT or RIP mismatch." + " Exit reason 0x%x, VMRUN RIP: %lx, post-VMRUN" + " RIP: %lx", vmcb->control.exit_code, + (u64)(&vmrun_rip), post_vmrun_rip); + return true; + } + host_rflags_set_tf = false; + vmcb->save.rip += 3; + break; + default: + return true; + } + inc_test_stage(test); + return get_test_stage(test) == 4; +} + +static bool host_rflags_check(struct svm_test *test) +{ + return get_test_stage(test) == 3; +} + #define TEST(name) { #name, .v2 = name } /* @@ -2492,6 +2604,9 @@ struct svm_test svm_tests[] = { { "svm_init_intercept_test", smp_supported, init_intercept_prepare, default_prepare_gif_clear, init_intercept_test, init_intercept_finished, init_intercept_check, .on_vcpu = 2 }, + { "host_rflags", default_supported, host_rflags_prepare, + host_rflags_prepare_gif_clear, host_rflags_test, + host_rflags_finished, host_rflags_check }, TEST(svm_cr4_osxsave_test), TEST(svm_guest_state_test), TEST(svm_vmrun_errata_test),