From nobody Wed May 22 01:30:40 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass header.i=vaishali.thakkar@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1710348105; cv=none; d=zohomail.com; s=zohoarc; b=keSY6TSrcyE9hyn2S81SJLuLzCBRJnjG4piHMGraONiZtkMN8OxbHDaa2IgFvmlxvFjhbnG415u4pVZ9vECZ3yEYeBoOjD0ehETfwYtuRm/e1PFU1EcaYn+nw0TajmrCMUqTtaSQnWEB0/dP7Mmqa2yfloSlKvg6AXYcLYLRGfQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710348105; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Zy65FkuCvNCvRgOvJCYiFpYTdL1M/+sk4RyW/gW0XNw=; b=fga/uki5nB7gUOQkKHLksJ/uSJA8eEjXXyMupPuLgCUmCTsRKkaC63Jv6uFtbr67vUSLPM/7U7GFsAJdjjJMFdMqjv7kPzyr8a3QzFX+r+fzcYT1NHh4SfeIAtLCOJtmsEX46qwrSoTtfv5HXsfw3IkL7N+SS+7jExzm+43ooek= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=vaishali.thakkar@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1710348105319513.8798438626965; Wed, 13 Mar 2024 09:41:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.692628.1079958 (Exim 4.92) (envelope-from ) id 1rkRfW-0008UF-ML; Wed, 13 Mar 2024 16:41:30 +0000 Received: by outflank-mailman (output) from mailman id 692628.1079958; Wed, 13 Mar 2024 16:41:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkRfW-0008U8-Jb; Wed, 13 Mar 2024 16:41:30 +0000 Received: by outflank-mailman (input) for mailman id 692628; Wed, 13 Mar 2024 16:41:28 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkRfU-0008TO-Ud for xen-devel@lists.xenproject.org; Wed, 13 Mar 2024 16:41:28 +0000 Received: from mail137-23.atl71.mandrillapp.com (mail137-23.atl71.mandrillapp.com [198.2.137.23]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 887fec5c-e158-11ee-a1ee-f123f15fe8a2; Wed, 13 Mar 2024 17:41:26 +0100 (CET) Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail137-23.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4Tvx9K4d6Cz1XLJlW for ; Wed, 13 Mar 2024 16:41:25 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id f8f7fb8bad3e41d192062b60b34287b4; Wed, 13 Mar 2024 16:41:25 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 887fec5c-e158-11ee-a1ee-f123f15fe8a2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1710348085; x=1710608585; bh=Zy65FkuCvNCvRgOvJCYiFpYTdL1M/+sk4RyW/gW0XNw=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=dcCRpZdN/62ZxP+p09/Tr+Ta5Ud27/2rmiCFV3nkC/76X/GWzK6dLLQrwCq1OPu8l qy/dQn6hRGYcKItbXp/XPH45ejpf6vW1NtS8fnVPJQriGHaB90oMuq2OQoeQt5M0qV BjxfeB9AKJx6XLmS4JjkzB3Fml/cKOxBjSsbLDTIhjulyCmQwC70pXXIGmKi4R/Diy YPBK4ZsWV67ZAOC/ckEtD+ZZEFupTE8NStGr/d8qX4X4oTDpvXmcuycMBbONPd+TH2 03F8zeKkP1Pg1byrxIS/RfqeIQ8UJXqhJFuHgydTEnsdjkwyJJVnMt/WCFDMUuEZqC U/Ff/MSIGv63w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1710348085; x=1710608585; i=vaishali.thakkar@vates.tech; bh=Zy65FkuCvNCvRgOvJCYiFpYTdL1M/+sk4RyW/gW0XNw=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=KLtXYWwV30uVfAgwBvYw5asP4U3O9E4iku42+JWVrl8h2t7LGjorhTa6iDNkuJHEP OZ4cCTTCWfhrid/tYUSu1b1DZR892MXbsE9BjX0FciCU8hwxnXZf31sThgB0gvFKka 5KK/w9hU/AJ6pJFQMdVs6W7jmZcyxB2i/KfkdCskYxwI+WfsDBIl2bq1jA57cKA6Gk hj3ol6HGSndbPC94AstaOMgWQEfabYTRp/D1flapBJavYg7mB2QOH3SkWztwvqOR4q 6AOn1Qx6HU0n+C7O5wi52yMWh/5A2n/BJ0z8zj0i+jrzAZ6jEqa66bD4PftB9iCbz4 7IcIeniDsY3KA== From: Vaishali Thakkar Subject: =?utf-8?Q?[PATCH=20v3=201/3]=20x86/svm:=20Drop=20the=20=5Fenabled=20suffix=20from=20vmcb=20bits?= X-Mailer: git-send-email 2.44.0 X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1710348084444 To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com, wl@xen.org, Vaishali Thakkar Message-Id: In-Reply-To: References: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f8f7fb8bad3e41d192062b60b34287b4?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20240313:md Date: Wed, 13 Mar 2024 16:41:25 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity vaishali.thakkar@vates.tech) (identity @mandrillapp.com) X-ZM-MESSAGEID: 1710348106804100003 Content-Type: text/plain; charset="utf-8" The suffix is redundant for np/sev/sev-es bits. Drop it to avoid adding extra code volume. Also, while we're here, drop the double negations in one of the instances of _np bit, replace 0/1 with false/true in the use cases of _np and use VMCB accessors instead of open coding. Suggested-by: Andrew Cooper Signed-off-by: Vaishali Thakkar Reviewed-by: Andrew Cooper --- Changes since v1: - Address Andrew and Jan's reviews related to dropping double negation and replacing 0/1 with false/true - Fix the typo around signed-off-by Changes since v2: - Use VMCB accessors instead of open coding for the code that's touched by this commit --- xen/arch/x86/hvm/svm/nestedsvm.c | 14 +++++++------- xen/arch/x86/hvm/svm/svm.c | 2 +- xen/arch/x86/hvm/svm/vmcb.c | 2 +- xen/arch/x86/include/asm/hvm/svm/vmcb.h | 20 ++++++++++---------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nested= svm.c index e4e01add8c..07630d74d3 100644 --- a/xen/arch/x86/hvm/svm/nestedsvm.c +++ b/xen/arch/x86/hvm/svm/nestedsvm.c @@ -571,7 +571,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, stru= ct cpu_user_regs *regs) if ( nestedhvm_paging_mode_hap(v) ) { /* host nested paging + guest nested paging. */ - n2vmcb->_np_enable =3D 1; + vmcb_set_np(n2vmcb, true); =20 nestedsvm_vmcb_set_nestedp2m(v, ns_vmcb, n2vmcb); =20 @@ -585,7 +585,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, stru= ct cpu_user_regs *regs) else if ( paging_mode_hap(v->domain) ) { /* host nested paging + guest shadow paging. */ - n2vmcb->_np_enable =3D 1; + vmcb_set_np(n2vmcb, true); /* Keep h_cr3 as it is. */ n2vmcb->_h_cr3 =3D n1vmcb->_h_cr3; /* When l1 guest does shadow paging @@ -601,7 +601,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, stru= ct cpu_user_regs *regs) else { /* host shadow paging + guest shadow paging. */ - n2vmcb->_np_enable =3D 0; + vmcb_set_np(n2vmcb, false); n2vmcb->_h_cr3 =3D 0x0; =20 /* TODO: Once shadow-shadow paging is in place come back to here @@ -706,7 +706,7 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs = *regs, } =20 /* nested paging for the guest */ - svm->ns_hap_enabled =3D !!ns_vmcb->_np_enable; + svm->ns_hap_enabled =3D vmcb_get_np(ns_vmcb); =20 /* Remember the V_INTR_MASK in hostflags */ svm->ns_hostflags.fields.vintrmask =3D !!ns_vmcb->_vintr.fields.intr_m= asking; @@ -1084,7 +1084,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_u= ser_regs *regs) if ( nestedhvm_paging_mode_hap(v) ) { /* host nested paging + guest nested paging. */ - ns_vmcb->_np_enable =3D n2vmcb->_np_enable; + vmcb_set_np(ns_vmcb, vmcb_get_np(n2vmcb)); ns_vmcb->_cr3 =3D n2vmcb->_cr3; /* The vmcb->h_cr3 is the shadowed h_cr3. The original * unshadowed guest h_cr3 is kept in ns_vmcb->h_cr3, @@ -1093,7 +1093,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_u= ser_regs *regs) else if ( paging_mode_hap(v->domain) ) { /* host nested paging + guest shadow paging. */ - ns_vmcb->_np_enable =3D 0; + vmcb_set_np(ns_vmcb, false); /* Throw h_cr3 away. Guest is not allowed to set it or * it can break out, otherwise (security hole!) */ ns_vmcb->_h_cr3 =3D 0x0; @@ -1104,7 +1104,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_u= ser_regs *regs) else { /* host shadow paging + guest shadow paging. */ - ns_vmcb->_np_enable =3D 0; + vmcb_set_np(ns_vmcb, false); ns_vmcb->_h_cr3 =3D 0x0; /* The vmcb->_cr3 is the shadowed cr3. The original * unshadowed guest cr3 is kept in ns_vmcb->_cr3, diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index b551eac807..b1ab0b568b 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -473,7 +473,7 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_= hw_cpu *c) =20 if ( paging_mode_hap(v->domain) ) { - vmcb_set_np_enable(vmcb, 1); + vmcb_set_np(vmcb, true); vmcb_set_g_pat(vmcb, MSR_IA32_CR_PAT_RESET /* guest PAT */); vmcb_set_h_cr3(vmcb, pagetable_get_paddr(p2m_get_pagetable(p2m))); } diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c index 282fe7cdbe..4e1f61dbe0 100644 --- a/xen/arch/x86/hvm/svm/vmcb.c +++ b/xen/arch/x86/hvm/svm/vmcb.c @@ -133,7 +133,7 @@ static int construct_vmcb(struct vcpu *v) =20 if ( paging_mode_hap(v->domain) ) { - vmcb->_np_enable =3D 1; /* enable nested paging */ + vmcb_set_np(vmcb, true); /* enable nested paging */ vmcb->_g_pat =3D MSR_IA32_CR_PAT_RESET; /* guest PAT */ vmcb->_h_cr3 =3D pagetable_get_paddr( p2m_get_pagetable(p2m_get_hostp2m(v->domain))); diff --git a/xen/arch/x86/include/asm/hvm/svm/vmcb.h b/xen/arch/x86/include= /asm/hvm/svm/vmcb.h index 91221ff4e2..bf2b8d9a94 100644 --- a/xen/arch/x86/include/asm/hvm/svm/vmcb.h +++ b/xen/arch/x86/include/asm/hvm/svm/vmcb.h @@ -385,7 +385,7 @@ typedef union bool iopm:1; /* 1: iopm_base_pa, msrpm_base_pa */ bool asid:1; /* 2: guest_asid */ bool tpr:1; /* 3: vintr */ - bool np:1; /* 4: np_enable, h_cr3, g_pat */ + bool np:1; /* 4: np, h_cr3, g_pat */ bool cr:1; /* 5: cr0, cr3, cr4, efer */ bool dr:1; /* 6: dr6, dr7 */ bool dt:1; /* 7: gdtr, idtr */ @@ -473,12 +473,12 @@ struct vmcb_struct { intinfo_t exit_int_info; /* offset 0x88 */ union { /* offset 0x90 - cleanbit 4 */ struct { - bool _np_enable :1; - bool _sev_enable :1; - bool _sev_es_enable :1; - bool _gmet :1; - bool _np_sss :1; - bool _vte :1; + bool _np :1; + bool _sev :1; + bool _sev_es :1; + bool _gmet :1; + bool _np_sss :1; + bool _vte :1; }; uint64_t _np_ctrl; }; @@ -645,9 +645,9 @@ VMCB_ACCESSORS(msrpm_base_pa, iopm) VMCB_ACCESSORS(guest_asid, asid) VMCB_ACCESSORS(vintr, tpr) VMCB_ACCESSORS(np_ctrl, np) -VMCB_ACCESSORS_(np_enable, bool, np) -VMCB_ACCESSORS_(sev_enable, bool, np) -VMCB_ACCESSORS_(sev_es_enable, bool, np) +VMCB_ACCESSORS_(np, bool, np) +VMCB_ACCESSORS_(sev, bool, np) +VMCB_ACCESSORS_(sev_es, bool, np) VMCB_ACCESSORS_(gmet, bool, np) VMCB_ACCESSORS_(vte, bool, np) VMCB_ACCESSORS(h_cr3, np) --=20 2.44.0 From nobody Wed May 22 01:30:40 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass header.i=vaishali.thakkar@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1710348109; cv=none; d=zohomail.com; s=zohoarc; b=QORpTha2S9EX4eieF/2HuHll2RRQ8IGzErUHhRVwcUCG6pHPvUxJQBKisYMlqaNbc49eacKQnEtB0sugzc4eJ9HdqHw6rRTS5RrAvuiPceg+eeaNxqpKB0vvFGo4DnvL52S54zY5vuJQggk6a3QgKIn1cEdyH4CjBCNPzqz1TsE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710348109; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rr1EGVf91eM8PfB9T0UeBppnRI+2X6vdx2ec2oXZ69o=; b=ZlyWr7g9oeDzvehMyEP19WtTtae0fvtoRMienPOpCyub0SqpXMSYw7F9MeiDxo1rQOQN4MZr99MbWFhUBnabc1AAvL8SmqYMcZ8S3UwZ5mRdIUM9zxUYIA5/1tlerjZzfzUySKxKEVZ38RhcKP08LieLyCub2RfHxbvm8uDfhD4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=vaishali.thakkar@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1710348109423262.49656925242516; Wed, 13 Mar 2024 09:41:49 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.692629.1079968 (Exim 4.92) (envelope-from ) id 1rkRfX-0000J0-Tg; Wed, 13 Mar 2024 16:41:31 +0000 Received: by outflank-mailman (output) from mailman id 692629.1079968; Wed, 13 Mar 2024 16:41:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkRfX-0000Ip-Qp; Wed, 13 Mar 2024 16:41:31 +0000 Received: by outflank-mailman (input) for mailman id 692629; Wed, 13 Mar 2024 16:41:30 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkRfW-0008Dq-8R for xen-devel@lists.xenproject.org; Wed, 13 Mar 2024 16:41:30 +0000 Received: from mail133-16.atl131.mandrillapp.com (mail133-16.atl131.mandrillapp.com [198.2.133.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 8a198dd9-e158-11ee-afdd-a90da7624cb6; Wed, 13 Mar 2024 17:41:29 +0100 (CET) Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail133-16.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4Tvx9N0CKwzB5p521 for ; Wed, 13 Mar 2024 16:41:28 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id 0a50c5bf78884ac4b4c33705b6ebd394; Wed, 13 Mar 2024 16:41:27 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8a198dd9-e158-11ee-afdd-a90da7624cb6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1710348088; x=1710608588; bh=rr1EGVf91eM8PfB9T0UeBppnRI+2X6vdx2ec2oXZ69o=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=EOIJGJy7/QVasU3fTPRh0emzLkv6sf8W3xrRO7PYQWVjPZYyXAJmDnWP9xhYTEpGV rKXoN9RvtKizA4/gvsFNXPvFUgiRXk4RtTK4EkEn/Wh/6rYzL7jreWs+zuYOoniydv LeOLQwhfNvEaAspKkDxGns8NxsPrIa9HcMDAjZsGjH/toLaxH0oIaHRDbjpnZXfEcO IBsYCCv8mIKXqM/73TdYr8UfwXxPJEqYB38NY/uoTAeNt2eJRLGrcayfr8gzPyE/Fg X8asq2pWxHTNnJsM5MiFehXY0RUeiXfecaI5cuGaVkybI+2mIHMZyzEFbeb7Tos8Jx bzpNG+95h/f4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1710348088; x=1710608588; i=vaishali.thakkar@vates.tech; bh=rr1EGVf91eM8PfB9T0UeBppnRI+2X6vdx2ec2oXZ69o=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=RNBnBA3yGqFMtOLYKHUafmF4i+JZa7dos4w2FB8q5V8ndCTV/c0fQQU6RrUwQ72Cr GlKZ5/SIRZTZx7c+YKYrF4e0MGNOjBEGO/UF64SSXIbuhr3wSUXPdeP6AnnYDu46WA kn1ewZZkoiHTGUTj58TgO3Mk86f8xmoyZPUh4AnHB9Rv+24cfgFJ8kPiu5Nnhk8xNB z9VsnYRciKVF4EM0Kr07FcjiqxndffNnke1JxsZ4+a0UMhtabwAhX/gK5osyPlQW7F s0/xTwIu3dDUz7j5e83Gy64wqhvyZuO3U7BPxdfHRunNbVVPKfP5BFqmVtzg3y2d0H hrc/06dHAstgg== From: Vaishali Thakkar Subject: =?utf-8?Q?[PATCH=20v3=202/3]=20x86/svm:=20Drop=20the=20suffix=20=5Fguest=20from=20vmcb=20bit?= X-Mailer: git-send-email 2.44.0 X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1710348086853 To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com, wl@xen.org, Vaishali Thakkar Message-Id: <88d5a0ce6745428120ebc37369d3d75358d5c582.1710347950.git.vaishali.thakkar@vates.tech> In-Reply-To: References: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0a50c5bf78884ac4b4c33705b6ebd394?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20240313:md Date: Wed, 13 Mar 2024 16:41:27 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @mandrillapp.com) (identity vaishali.thakkar@vates.tech) X-ZM-MESSAGEID: 1710348110415100001 Content-Type: text/plain; charset="utf-8" The suffix _guest is redundant for asid bit. Drop it to avoid adding extra code volume. While we're here, replace 0/1 with false/true and use VMCB accessors instead of open coding. Suggested-by: Andrew Cooper Signed-off-by: Vaishali Thakkar Reviewed-by: Jan Beulich --- Changes since v1: - This patch wasn't part of v1. It's been added to address Andrew's suggestion. Changes since v2: - replace 0/1 with false/true in one of the instance - Use VMCB accessors instead of open coding --- xen/arch/x86/hvm/svm/asid.c | 6 +++--- xen/arch/x86/hvm/svm/nestedsvm.c | 8 ++++---- xen/arch/x86/hvm/svm/svmdebug.c | 4 ++-- xen/arch/x86/include/asm/hvm/svm/nestedsvm.h | 2 +- xen/arch/x86/include/asm/hvm/svm/vmcb.h | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/hvm/svm/asid.c b/xen/arch/x86/hvm/svm/asid.c index 28e0dbc176..39e3c56919 100644 --- a/xen/arch/x86/hvm/svm/asid.c +++ b/xen/arch/x86/hvm/svm/asid.c @@ -37,14 +37,14 @@ void svm_asid_handle_vmrun(void) /* ASID 0 indicates that ASIDs are disabled. */ if ( p_asid->asid =3D=3D 0 ) { - vmcb_set_guest_asid(vmcb, 1); + vmcb_set_asid(vmcb,true); vmcb->tlb_control =3D cpu_has_svm_flushbyasid ? TLB_CTRL_FLUSH_ASID : TLB_CTRL_FLUSH= _ALL; return; } =20 - if ( vmcb_get_guest_asid(vmcb) !=3D p_asid->asid ) - vmcb_set_guest_asid(vmcb, p_asid->asid); + if ( vmcb_get_asid(vmcb) !=3D p_asid->asid ) + vmcb_set_asid(vmcb, p_asid->asid); =20 vmcb->tlb_control =3D !need_flush ? TLB_CTRL_NO_FLUSH : diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nested= svm.c index 07630d74d3..a8d5f4ee95 100644 --- a/xen/arch/x86/hvm/svm/nestedsvm.c +++ b/xen/arch/x86/hvm/svm/nestedsvm.c @@ -157,7 +157,7 @@ int cf_check nsvm_vcpu_reset(struct vcpu *v) svm->ns_hap_enabled =3D 0; svm->ns_vmcb_guestcr3 =3D 0; svm->ns_vmcb_hostcr3 =3D 0; - svm->ns_guest_asid =3D 0; + svm->ns_asid =3D 0; svm->ns_hostflags.bytes =3D 0; svm->ns_vmexit.exitinfo1 =3D 0; svm->ns_vmexit.exitinfo2 =3D 0; @@ -698,11 +698,11 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_reg= s *regs, /* Convert explicitely to boolean. Deals with l1 guests * that use flush-by-asid w/o checking the cpuid bits */ nv->nv_flushp2m =3D !!ns_vmcb->tlb_control; - if ( svm->ns_guest_asid !=3D ns_vmcb->_guest_asid ) + if ( svm->ns_asid !=3D vmcb_get_asid(ns_vmcb)) { nv->nv_flushp2m =3D 1; hvm_asid_flush_vcpu_asid(&vcpu_nestedhvm(v).nv_n2asid); - svm->ns_guest_asid =3D ns_vmcb->_guest_asid; + svm->ns_asid =3D vmcb_get_asid(ns_vmcb); } =20 /* nested paging for the guest */ @@ -1046,7 +1046,7 @@ nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_u= ser_regs *regs) /* Keep it. It's maintainted by the l1 guest. */ =20 /* ASID */ - /* ns_vmcb->_guest_asid =3D n2vmcb->_guest_asid; */ + /* vmcb_set_asid(ns_vmcb, vmcb_get_asid(n2vmcb)); */ =20 /* TLB control */ ns_vmcb->tlb_control =3D 0; diff --git a/xen/arch/x86/hvm/svm/svmdebug.c b/xen/arch/x86/hvm/svm/svmdebu= g.c index 24358c6eea..0d714c728c 100644 --- a/xen/arch/x86/hvm/svm/svmdebug.c +++ b/xen/arch/x86/hvm/svm/svmdebug.c @@ -51,8 +51,8 @@ void svm_vmcb_dump(const char *from, const struct vmcb_st= ruct *vmcb) vmcb->exitcode, vmcb->exit_int_info.raw); printk("exitinfo1 =3D %#"PRIx64" exitinfo2 =3D %#"PRIx64"\n", vmcb->exitinfo1, vmcb->exitinfo2); - printk("np_ctrl =3D %#"PRIx64" guest_asid =3D %#x\n", - vmcb_get_np_ctrl(vmcb), vmcb_get_guest_asid(vmcb)); + printk("np_ctrl =3D %#"PRIx64" asid =3D %#x\n", + vmcb_get_np_ctrl(vmcb), vmcb_get_asid(vmcb)); printk("virtual vmload/vmsave =3D %d, virt_ext =3D %#"PRIx64"\n", vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes); printk("cpl =3D %d efer =3D %#"PRIx64" star =3D %#"PRIx64" lstar =3D %= #"PRIx64"\n", diff --git a/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h b/xen/arch/x86/in= clude/asm/hvm/svm/nestedsvm.h index 406fc082b1..7767cd6080 100644 --- a/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h +++ b/xen/arch/x86/include/asm/hvm/svm/nestedsvm.h @@ -51,7 +51,7 @@ struct nestedsvm { * the l1 guest nested page table */ uint64_t ns_vmcb_guestcr3, ns_vmcb_hostcr3; - uint32_t ns_guest_asid; + uint32_t ns_asid; =20 bool ns_hap_enabled; =20 diff --git a/xen/arch/x86/include/asm/hvm/svm/vmcb.h b/xen/arch/x86/include= /asm/hvm/svm/vmcb.h index bf2b8d9a94..0396d10b90 100644 --- a/xen/arch/x86/include/asm/hvm/svm/vmcb.h +++ b/xen/arch/x86/include/asm/hvm/svm/vmcb.h @@ -383,7 +383,7 @@ typedef union bool intercepts:1; /* 0: cr/dr/exception/general intercepts, * pause_filter_count, tsc_offset */ bool iopm:1; /* 1: iopm_base_pa, msrpm_base_pa */ - bool asid:1; /* 2: guest_asid */ + bool asid:1; /* 2: asid */ bool tpr:1; /* 3: vintr */ bool np:1; /* 4: np, h_cr3, g_pat */ bool cr:1; /* 5: cr0, cr3, cr4, efer */ @@ -413,7 +413,7 @@ struct vmcb_struct { u64 _iopm_base_pa; /* offset 0x40 - cleanbit 1 */ u64 _msrpm_base_pa; /* offset 0x48 - cleanbit 1 */ u64 _tsc_offset; /* offset 0x50 - cleanbit 0 */ - u32 _guest_asid; /* offset 0x58 - cleanbit 2 */ + u32 _asid; /* offset 0x58 - cleanbit 2 */ u8 tlb_control; /* offset 0x5C - TLB_CTRL_* */ u8 res07[3]; vintr_t _vintr; /* offset 0x60 - cleanbit 3 */ @@ -642,7 +642,7 @@ VMCB_ACCESSORS(pause_filter_thresh, intercepts) VMCB_ACCESSORS(tsc_offset, intercepts) VMCB_ACCESSORS(iopm_base_pa, iopm) VMCB_ACCESSORS(msrpm_base_pa, iopm) -VMCB_ACCESSORS(guest_asid, asid) +VMCB_ACCESSORS(asid, asid) VMCB_ACCESSORS(vintr, tpr) VMCB_ACCESSORS(np_ctrl, np) VMCB_ACCESSORS_(np, bool, np) --=20 2.44.0 From nobody Wed May 22 01:30:40 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass header.i=vaishali.thakkar@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1710348111; cv=none; d=zohomail.com; s=zohoarc; b=e5sTY6HlwdEIzNN4c5HZHJVZ0OXV1vKYOAuc5PQ+Y63GOZIx5f/JWU/v9gVCr0w4ii/7h3Cvihxl3IQHQcFGVaXzJ5yvHN8GC2jlKSHEUOctfO2E9EutAsgyXkUfDh8KWRLELhCM69eRpHEy7um3HMZw9cvxKcXaZzCRJDMoIss= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710348111; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FMitaZpjptJvXQpvaxxHZ/aFZkkeDw8TY9xvhcTGIUY=; b=J+S1jj/OZkVz8+907rrc56O/L7oZb3Ga4d2jlC30XBm8yylsF4gJ7wwXEN5qkryPZLfre0Dtr/IPlqnIqnzv6DvkpCzyd1R33ys7hraeTC3h7Db4wv3fFicoxGlZrgGP4iadHEaSgCQE4rwAJ4KZzLiFW9NWP/KWLytJj2yDmZI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=vaishali.thakkar@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1710348111084400.65512293566076; Wed, 13 Mar 2024 09:41:51 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.692630.1079978 (Exim 4.92) (envelope-from ) id 1rkRfZ-0000Yi-8p; Wed, 13 Mar 2024 16:41:33 +0000 Received: by outflank-mailman (output) from mailman id 692630.1079978; Wed, 13 Mar 2024 16:41:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkRfZ-0000YY-5I; Wed, 13 Mar 2024 16:41:33 +0000 Received: by outflank-mailman (input) for mailman id 692630; Wed, 13 Mar 2024 16:41:31 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkRfX-0008Dq-8h for xen-devel@lists.xenproject.org; Wed, 13 Mar 2024 16:41:31 +0000 Received: from mail133-16.atl131.mandrillapp.com (mail133-16.atl131.mandrillapp.com [198.2.133.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 8b1cb283-e158-11ee-afdd-a90da7624cb6; Wed, 13 Mar 2024 17:41:30 +0100 (CET) Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail133-16.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4Tvx9Q14d0zB5p8C3 for ; Wed, 13 Mar 2024 16:41:30 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id 02c8ef692cf34864b336a41beefd05b2; Wed, 13 Mar 2024 16:41:30 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8b1cb283-e158-11ee-afdd-a90da7624cb6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1710348090; x=1710608590; bh=FMitaZpjptJvXQpvaxxHZ/aFZkkeDw8TY9xvhcTGIUY=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=NO1+mgHmuB344VkLQH3vs3M/sf9zVdMkXS3QvrvUEe8PmF3CnoqMWI+nSm6U0P0UK jA0YXSdhIbIVxDtAZRBx0Qu2zpqxsQBHg1yPPA/GvGn2yfT5EtPKYx2vFwyXxDs0QR 4ADyf893c7HoLOzTw5Kq46oKQ7VqX8zBc3DCoSCFI/EoJgpNW/i6FSL7cxUpiAB2N4 uIS3ejWHNAZGJxOcg27hCjrcnP9uzgRaTRVWt9dxXDq08JnKDoP/q2LUHHP94I56hQ KwA4EygUDkKE3VPF7BxSRzfBPODe6I3LLaQBLGKTTAIRv/XvEUbsY25QY8Vsfmvu1A CnSyhULIQN9cg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1710348090; x=1710608590; i=vaishali.thakkar@vates.tech; bh=FMitaZpjptJvXQpvaxxHZ/aFZkkeDw8TY9xvhcTGIUY=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=VBN6sibtXiH+TGClEeQQ3pqVM2hAo59ljZXcskj8Jkqux+uFWpvwmDmt+La4+y7oc YH83TUYMtJfCnoW2VeCf2vhifyKCUj45mWCHE3djhI+nWyNXcROj2mIciDWdXctTVE nfe1V58e1ZK6xkIjPRZAH4sNQU/uthsOH+ZCNBKBkft/7zY3t3ci1FqWtGSBDrOIRS G8JvAjfMk416jVBc7jKIryxggD8xNAmqfl9hLI4XYU/DUmPXuNhApcNPwl8Pv3jyiH e4+e0ojS/QyLUci6tkwW+26avYtzttuJOs0IqaARLmXoMzl3NwD7a4htSrEP5C9Z6w 0dkrNKcRGWD2Q== From: Vaishali Thakkar Subject: =?utf-8?Q?[PATCH=20v3=203/3]=20x86/svmdebug:=20Print=20np,=20sev=20and=20sev=5Fes=20vmcb=20bits?= X-Mailer: git-send-email 2.44.0 X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1710348088991 To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com, wl@xen.org, Vaishali Thakkar Message-Id: In-Reply-To: References: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.02c8ef692cf34864b336a41beefd05b2?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20240313:md Date: Wed, 13 Mar 2024 16:41:30 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @mandrillapp.com) (identity vaishali.thakkar@vates.tech) X-ZM-MESSAGEID: 1710348112412100003 Content-Type: text/plain; charset="utf-8" Currently only raw _np_ctrl is being printed. It can be informational to know about which particular bits are enabled. So, this commit adds the bit-by-bit decode for np, sev and sev_es bits. Note that while, only np is enabled in certain scenarios at the moment, work for enabling sev and sev_es is in progress. And it'll be useful to have this information as part of svmdebug. Signed-off-by: Vaishali Thakkar Acked-by: Jan Beulich --- Changes since v1: - Pretty printing Changes since v2: - Minor changes in pretty printing to make information clear - Improve commit log and subject to include _np bit --- xen/arch/x86/hvm/svm/svmdebug.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svmdebug.c b/xen/arch/x86/hvm/svm/svmdebu= g.c index 0d714c728c..9d3badcf5d 100644 --- a/xen/arch/x86/hvm/svm/svmdebug.c +++ b/xen/arch/x86/hvm/svm/svmdebug.c @@ -51,8 +51,11 @@ void svm_vmcb_dump(const char *from, const struct vmcb_s= truct *vmcb) vmcb->exitcode, vmcb->exit_int_info.raw); printk("exitinfo1 =3D %#"PRIx64" exitinfo2 =3D %#"PRIx64"\n", vmcb->exitinfo1, vmcb->exitinfo2); - printk("np_ctrl =3D %#"PRIx64" asid =3D %#x\n", - vmcb_get_np_ctrl(vmcb), vmcb_get_asid(vmcb)); + printk("asid =3D %#x np_ctrl =3D %#"PRIx64":%s%s%s\n", + vmcb_get_asid(vmcb), vmcb_get_np_ctrl(vmcb), + vmcb_get_np(vmcb) ? " NP" : "", + vmcb_get_sev(vmcb) ? " SEV" : "", + vmcb_get_sev_es(vmcb) ? " SEV_ES" : ""); printk("virtual vmload/vmsave =3D %d, virt_ext =3D %#"PRIx64"\n", vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes); printk("cpl =3D %d efer =3D %#"PRIx64" star =3D %#"PRIx64" lstar =3D %= #"PRIx64"\n", --=20 2.44.0