From patchwork Wed Jun 7 14:07:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 9771577 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9240360234 for ; Wed, 7 Jun 2017 14:09:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7305120265 for ; Wed, 7 Jun 2017 14:09:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 67CE52818E; Wed, 7 Jun 2017 14:09:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4CAAE204BD for ; Wed, 7 Jun 2017 14:09:37 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIbcM-0005K5-OF; Wed, 07 Jun 2017 14:07:26 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIbcL-0005JQ-Sm for xen-devel@lists.xenproject.org; Wed, 07 Jun 2017 14:07:26 +0000 Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id B6/E8-26106-C9808395; Wed, 07 Jun 2017 14:07:24 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJIsWRWlGSWpSXmKPExsXS6fjDS3cOh0W kwZELHBbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8aDtc8YC9ZlVixe59TA+Dmki5GTQ0ggT6Jx 4X5mEJtXwE7i07MTbCC2hIChxOmFN1lAbBYBVYnbN7rYQWw2AXWJtmfbWbsYOThEBAwkzh1N6 mLk4mAWmMUo0Xm1AaxeWMBU4vHHpawQ84sknn89BjaTU8BeonPxBBaQXl4BQYm/O4RBwsxAa1 cuucA8gZFnFkJmFpIMhK0l8fDXLRYIW1ti2cLXzCDlzALSEsv/cUCEzSX2NLxkRFUCYjtJ7Fm zi3EBI8cqRo3i1KKy1CJdQyO9pKLM9IyS3MTMHF1DA2O93NTi4sT01JzEpGK95PzcTYzAYGUA gh2Mr7qdDzFKcjApifIW3DSPFOJLyk+pzEgszogvKs1JLT7EqMHBIbBt1+oLjFIsefl5qUoSv AfZLSKFBItS01Mr0jJzgPEEUyrBwaMkwvuFDSjNW1yQmFucmQ6ROsWoKCXO+wmkTwAkkVGaB9 cGi+FLjLJSwryMQEcJ8RSkFuVmlqDKv2IU52BUEuY9ADKFJzOvBG76K6DFTECL+S6ZgCwuSUR ISTUw2k+5JF9a0vPT8jSfcsVnf5H7SnH7nE9oC+g3aFybOu3yJYV0mcczbGS/yC15tvaZ+QOZ H+fXbvjIZni7STbBIzn3iHJE+/U+dqWfS7dzVlw01w25PzMucVX2s2l7qvwqcmXVdj2L9gt0Z 9t/e1Pu8UPrxD5dKtaId8gSf2xvtivobJJZ0oczSizFGYmGWsxFxYkA/4egVdwCAAA= X-Env-Sender: JBeulich@suse.com X-Msg-Ref: server-11.tower-31.messagelabs.com!1496844442!73641725!1 X-Originating-IP: [137.65.248.74] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 19249 invoked from network); 7 Jun 2017 14:07:23 -0000 Received: from prv-mh.provo.novell.com (HELO prv-mh.provo.novell.com) (137.65.248.74) by server-11.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 7 Jun 2017 14:07:23 -0000 Received: from INET-PRV-MTA by prv-mh.provo.novell.com with Novell_GroupWise; Wed, 07 Jun 2017 08:07:21 -0600 Message-Id: <593824B902000078001606C8@prv-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 14.2.2 Date: Wed, 07 Jun 2017 08:07:21 -0600 From: "Jan Beulich" To: "xen-devel" References: <593822A3020000780016069F@prv-mh.provo.novell.com> <593822A3020000780016069F@prv-mh.provo.novell.com> In-Reply-To: <593822A3020000780016069F@prv-mh.provo.novell.com> Mime-Version: 1.0 Cc: Andrew Cooper , Boris Ostrovsky , Suravee Suthikulpanit Subject: [Xen-devel] [PATCH v2 3/4] SVM: clean up svm_vmcb_dump() X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP - constify parameter - use accessors - drop stray casts - adjust formatting Signed-off-by: Jan Beulich SVM: clean up svm_vmcb_dump() - constify parameter - use accessors - drop stray casts - adjust formatting Signed-off-by: Jan Beulich --- a/xen/arch/x86/hvm/svm/svmdebug.c +++ b/xen/arch/x86/hvm/svm/svmdebug.c @@ -26,60 +26,52 @@ static void svm_dump_sel(const char *nam name, s->sel, s->attr.bytes, s->limit, s->base); } -/* This function can directly access fields which are covered by clean bits. */ -void svm_vmcb_dump(const char *from, struct vmcb_struct *vmcb) +void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb) { printk("Dumping guest's current state at %s...\n", from); - printk("Size of VMCB = %d, paddr = %#lx, vaddr = %p\n", - (int) sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb); + printk("Size of VMCB = %zu, paddr = %"PRIpaddr", vaddr = %p\n", + sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb); printk("cr_intercepts = %#x dr_intercepts = %#x " "exception_intercepts = %#x\n", - vmcb->_cr_intercepts, vmcb->_dr_intercepts, - vmcb->_exception_intercepts); + vmcb_get_cr_intercepts(vmcb), vmcb_get_dr_intercepts(vmcb), + vmcb_get_exception_intercepts(vmcb)); printk("general1_intercepts = %#x general2_intercepts = %#x\n", - vmcb->_general1_intercepts, vmcb->_general2_intercepts); - printk("iopm_base_pa = %#Lx msrpm_base_pa = %#Lx tsc_offset = %#Lx\n", - (unsigned long long)vmcb->_iopm_base_pa, - (unsigned long long)vmcb->_msrpm_base_pa, - (unsigned long long)vmcb->_tsc_offset); - printk("tlb_control = %#x vintr = %#Lx interrupt_shadow = %#Lx\n", - vmcb->tlb_control, - (unsigned long long)vmcb->_vintr.bytes, - (unsigned long long)vmcb->interrupt_shadow); + vmcb_get_general1_intercepts(vmcb), vmcb_get_general2_intercepts(vmcb)); + printk("iopm_base_pa = %#"PRIx64" msrpm_base_pa = %#"PRIx64" tsc_offset = %#"PRIx64"\n", + vmcb_get_iopm_base_pa(vmcb), vmcb_get_msrpm_base_pa(vmcb), + vmcb_get_tsc_offset(vmcb)); + printk("tlb_control = %#x vintr = %#"PRIx64" interrupt_shadow = %#"PRIx64"\n", + vmcb->tlb_control, vmcb_get_vintr(vmcb).bytes, + vmcb->interrupt_shadow); printk("eventinj %016"PRIx64", valid? %d, ec? %d, type %u, vector %#x\n", vmcb->eventinj.bytes, vmcb->eventinj.fields.v, vmcb->eventinj.fields.ev, vmcb->eventinj.fields.type, vmcb->eventinj.fields.vector); - printk("exitcode = %#Lx exitintinfo = %#Lx\n", - (unsigned long long)vmcb->exitcode, - (unsigned long long)vmcb->exitintinfo.bytes); - printk("exitinfo1 = %#Lx exitinfo2 = %#Lx \n", - (unsigned long long)vmcb->exitinfo1, - (unsigned long long)vmcb->exitinfo2); - printk("np_enable = %Lx guest_asid = %#x\n", - (unsigned long long)vmcb->_np_enable, vmcb->_guest_asid); - printk("cpl = %d efer = %#Lx star = %#Lx lstar = %#Lx\n", - vmcb->_cpl, (unsigned long long)vmcb->_efer, - (unsigned long long)vmcb->star, (unsigned long long)vmcb->lstar); - printk("CR0 = 0x%016llx CR2 = 0x%016llx\n", - (unsigned long long)vmcb->_cr0, (unsigned long long)vmcb->_cr2); - printk("CR3 = 0x%016llx CR4 = 0x%016llx\n", - (unsigned long long)vmcb->_cr3, (unsigned long long)vmcb->_cr4); - printk("RSP = 0x%016llx RIP = 0x%016llx\n", - (unsigned long long)vmcb->rsp, (unsigned long long)vmcb->rip); - printk("RAX = 0x%016llx RFLAGS=0x%016llx\n", - (unsigned long long)vmcb->rax, (unsigned long long)vmcb->rflags); - printk("DR6 = 0x%016llx, DR7 = 0x%016llx\n", - (unsigned long long)vmcb->_dr6, (unsigned long long)vmcb->_dr7); - printk("CSTAR = 0x%016llx SFMask = 0x%016llx\n", - (unsigned long long)vmcb->cstar, - (unsigned long long)vmcb->sfmask); - printk("KernGSBase = 0x%016llx PAT = 0x%016llx \n", - (unsigned long long)vmcb->kerngsbase, - (unsigned long long)vmcb->_g_pat); - printk("H_CR3 = 0x%016llx CleanBits = %#x\n", - (unsigned long long)vmcb->_h_cr3, vmcb->cleanbits.bytes); + printk("exitcode = %#"PRIx64" exitintinfo = %#"PRIx64"\n", + vmcb->exitcode, vmcb->exitintinfo.bytes); + printk("exitinfo1 = %#"PRIx64" exitinfo2 = %#"PRIx64"\n", + vmcb->exitinfo1, vmcb->exitinfo2); + printk("np_enable = %#"PRIx64" guest_asid = %#x\n", + vmcb_get_np_enable(vmcb), vmcb_get_guest_asid(vmcb)); + printk("cpl = %d efer = %#"PRIx64" star = %#"PRIx64" lstar = %#"PRIx64"\n", + vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->lstar); + printk("CR0 = 0x%016"PRIx64" CR2 = 0x%016"PRIx64"\n", + vmcb_get_cr0(vmcb), vmcb_get_cr2(vmcb)); + printk("CR3 = 0x%016"PRIx64" CR4 = 0x%016"PRIx64"\n", + vmcb_get_cr3(vmcb), vmcb_get_cr4(vmcb)); + printk("RSP = 0x%016"PRIx64" RIP = 0x%016"PRIx64"\n", + vmcb->rsp, vmcb->rip); + printk("RAX = 0x%016"PRIx64" RFLAGS=0x%016"PRIx64"\n", + vmcb->rax, vmcb->rflags); + printk("DR6 = 0x%016"PRIx64", DR7 = 0x%016"PRIx64"\n", + vmcb_get_dr6(vmcb), vmcb_get_dr7(vmcb)); + printk("CSTAR = 0x%016"PRIx64" SFMask = 0x%016"PRIx64"\n", + vmcb->cstar, vmcb->sfmask); + printk("KernGSBase = 0x%016"PRIx64" PAT = 0x%016"PRIx64"\n", + vmcb->kerngsbase, vmcb_get_g_pat(vmcb)); + printk("H_CR3 = 0x%016"PRIx64" CleanBits = %#x\n", + vmcb_get_h_cr3(vmcb), vmcb->cleanbits.bytes); /* print out all the selectors */ printk(" sel attr limit base\n"); --- a/xen/include/asm-x86/hvm/svm/svmdebug.h +++ b/xen/include/asm-x86/hvm/svm/svmdebug.h @@ -22,7 +22,7 @@ #include #include -void svm_vmcb_dump(const char *from, struct vmcb_struct *vmcb); +void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb); bool_t svm_vmcb_isvalid(const char *from, struct vmcb_struct *vmcb, bool_t verbose); Reviewed-by: Boris Ostrovsky --- a/xen/arch/x86/hvm/svm/svmdebug.c +++ b/xen/arch/x86/hvm/svm/svmdebug.c @@ -26,60 +26,52 @@ static void svm_dump_sel(const char *nam name, s->sel, s->attr.bytes, s->limit, s->base); } -/* This function can directly access fields which are covered by clean bits. */ -void svm_vmcb_dump(const char *from, struct vmcb_struct *vmcb) +void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb) { printk("Dumping guest's current state at %s...\n", from); - printk("Size of VMCB = %d, paddr = %#lx, vaddr = %p\n", - (int) sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb); + printk("Size of VMCB = %zu, paddr = %"PRIpaddr", vaddr = %p\n", + sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb); printk("cr_intercepts = %#x dr_intercepts = %#x " "exception_intercepts = %#x\n", - vmcb->_cr_intercepts, vmcb->_dr_intercepts, - vmcb->_exception_intercepts); + vmcb_get_cr_intercepts(vmcb), vmcb_get_dr_intercepts(vmcb), + vmcb_get_exception_intercepts(vmcb)); printk("general1_intercepts = %#x general2_intercepts = %#x\n", - vmcb->_general1_intercepts, vmcb->_general2_intercepts); - printk("iopm_base_pa = %#Lx msrpm_base_pa = %#Lx tsc_offset = %#Lx\n", - (unsigned long long)vmcb->_iopm_base_pa, - (unsigned long long)vmcb->_msrpm_base_pa, - (unsigned long long)vmcb->_tsc_offset); - printk("tlb_control = %#x vintr = %#Lx interrupt_shadow = %#Lx\n", - vmcb->tlb_control, - (unsigned long long)vmcb->_vintr.bytes, - (unsigned long long)vmcb->interrupt_shadow); + vmcb_get_general1_intercepts(vmcb), vmcb_get_general2_intercepts(vmcb)); + printk("iopm_base_pa = %#"PRIx64" msrpm_base_pa = %#"PRIx64" tsc_offset = %#"PRIx64"\n", + vmcb_get_iopm_base_pa(vmcb), vmcb_get_msrpm_base_pa(vmcb), + vmcb_get_tsc_offset(vmcb)); + printk("tlb_control = %#x vintr = %#"PRIx64" interrupt_shadow = %#"PRIx64"\n", + vmcb->tlb_control, vmcb_get_vintr(vmcb).bytes, + vmcb->interrupt_shadow); printk("eventinj %016"PRIx64", valid? %d, ec? %d, type %u, vector %#x\n", vmcb->eventinj.bytes, vmcb->eventinj.fields.v, vmcb->eventinj.fields.ev, vmcb->eventinj.fields.type, vmcb->eventinj.fields.vector); - printk("exitcode = %#Lx exitintinfo = %#Lx\n", - (unsigned long long)vmcb->exitcode, - (unsigned long long)vmcb->exitintinfo.bytes); - printk("exitinfo1 = %#Lx exitinfo2 = %#Lx \n", - (unsigned long long)vmcb->exitinfo1, - (unsigned long long)vmcb->exitinfo2); - printk("np_enable = %Lx guest_asid = %#x\n", - (unsigned long long)vmcb->_np_enable, vmcb->_guest_asid); - printk("cpl = %d efer = %#Lx star = %#Lx lstar = %#Lx\n", - vmcb->_cpl, (unsigned long long)vmcb->_efer, - (unsigned long long)vmcb->star, (unsigned long long)vmcb->lstar); - printk("CR0 = 0x%016llx CR2 = 0x%016llx\n", - (unsigned long long)vmcb->_cr0, (unsigned long long)vmcb->_cr2); - printk("CR3 = 0x%016llx CR4 = 0x%016llx\n", - (unsigned long long)vmcb->_cr3, (unsigned long long)vmcb->_cr4); - printk("RSP = 0x%016llx RIP = 0x%016llx\n", - (unsigned long long)vmcb->rsp, (unsigned long long)vmcb->rip); - printk("RAX = 0x%016llx RFLAGS=0x%016llx\n", - (unsigned long long)vmcb->rax, (unsigned long long)vmcb->rflags); - printk("DR6 = 0x%016llx, DR7 = 0x%016llx\n", - (unsigned long long)vmcb->_dr6, (unsigned long long)vmcb->_dr7); - printk("CSTAR = 0x%016llx SFMask = 0x%016llx\n", - (unsigned long long)vmcb->cstar, - (unsigned long long)vmcb->sfmask); - printk("KernGSBase = 0x%016llx PAT = 0x%016llx \n", - (unsigned long long)vmcb->kerngsbase, - (unsigned long long)vmcb->_g_pat); - printk("H_CR3 = 0x%016llx CleanBits = %#x\n", - (unsigned long long)vmcb->_h_cr3, vmcb->cleanbits.bytes); + printk("exitcode = %#"PRIx64" exitintinfo = %#"PRIx64"\n", + vmcb->exitcode, vmcb->exitintinfo.bytes); + printk("exitinfo1 = %#"PRIx64" exitinfo2 = %#"PRIx64"\n", + vmcb->exitinfo1, vmcb->exitinfo2); + printk("np_enable = %#"PRIx64" guest_asid = %#x\n", + vmcb_get_np_enable(vmcb), vmcb_get_guest_asid(vmcb)); + printk("cpl = %d efer = %#"PRIx64" star = %#"PRIx64" lstar = %#"PRIx64"\n", + vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->lstar); + printk("CR0 = 0x%016"PRIx64" CR2 = 0x%016"PRIx64"\n", + vmcb_get_cr0(vmcb), vmcb_get_cr2(vmcb)); + printk("CR3 = 0x%016"PRIx64" CR4 = 0x%016"PRIx64"\n", + vmcb_get_cr3(vmcb), vmcb_get_cr4(vmcb)); + printk("RSP = 0x%016"PRIx64" RIP = 0x%016"PRIx64"\n", + vmcb->rsp, vmcb->rip); + printk("RAX = 0x%016"PRIx64" RFLAGS=0x%016"PRIx64"\n", + vmcb->rax, vmcb->rflags); + printk("DR6 = 0x%016"PRIx64", DR7 = 0x%016"PRIx64"\n", + vmcb_get_dr6(vmcb), vmcb_get_dr7(vmcb)); + printk("CSTAR = 0x%016"PRIx64" SFMask = 0x%016"PRIx64"\n", + vmcb->cstar, vmcb->sfmask); + printk("KernGSBase = 0x%016"PRIx64" PAT = 0x%016"PRIx64"\n", + vmcb->kerngsbase, vmcb_get_g_pat(vmcb)); + printk("H_CR3 = 0x%016"PRIx64" CleanBits = %#x\n", + vmcb_get_h_cr3(vmcb), vmcb->cleanbits.bytes); /* print out all the selectors */ printk(" sel attr limit base\n"); --- a/xen/include/asm-x86/hvm/svm/svmdebug.h +++ b/xen/include/asm-x86/hvm/svm/svmdebug.h @@ -22,7 +22,7 @@ #include #include -void svm_vmcb_dump(const char *from, struct vmcb_struct *vmcb); +void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb); bool_t svm_vmcb_isvalid(const char *from, struct vmcb_struct *vmcb, bool_t verbose);