From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Markus Rechberger" Subject: [PATCH] svm last branch recording MSR emulation Date: Fri, 25 Jan 2008 13:38:42 +0100 Message-ID: <4799D852.9080606@amd.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=------------030903000809030508080104 To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org, muli-7z/5BgaJwgfQT0dZR+AlfA@public.gmane.org Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org This is a multi-part message in MIME format. --------------030903000809030508080104 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, this patch adds support for the lbr MSR emulation, it also enables support for Windows XP 64bit guests. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger --------------030903000809030508080104 Content-Type: text/plain; name=svm.diff Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename=svm.diff --- svm.c.orig 2008-01-23 10:04:14.000000000 +0100 +++ svm.c 2008-01-25 12:52:11.000000000 +0100 @@ -1099,6 +1100,21 @@ case MSR_IA32_SYSENTER_ESP: *data = svm->vmcb->save.sysenter_esp; break; + case MSR_IA32_DEBUGCTLMSR: + *data = svm->vmcb->save.dbgctl; + break; + case MSR_IA32_LASTBRANCHFROMIP: + *data = svm->vmcb->save.br_from; + break; + case MSR_IA32_LASTBRANCHTOIP: + *data = svm->vmcb->save.br_to; + break; + case MSR_IA32_LASTINTFROMIP: + *data = svm->vmcb->save.last_excp_from; + break; + case MSR_IA32_LASTINTTOIP: + *data = svm->vmcb->save.last_excp_to; + break; default: return kvm_get_msr_common(vcpu, ecx, data); } @@ -1171,6 +1187,19 @@ if (data != 0) goto unhandled; break; + case MSR_IA32_DEBUGCTLMSR: + svm->vmcb->save.dbgctl = data; + if (svm->vmcb->save.dbgctl && svm_has(SVM_FEATURE_LBRV)) { + void *msrpm_va; + svm->vmcb->control.lbr_ctl = 1; + msrpm_va = page_address(pfn_to_page(msrpm_base >> PAGE_SHIFT)); + set_msr_interception(msrpm_va, MSR_IA32_DEBUGCTLMSR, 0, 0); + set_msr_interception(msrpm_va, MSR_IA32_LASTBRANCHFROMIP, 0, 0); + set_msr_interception(msrpm_va, MSR_IA32_LASTBRANCHTOIP, 0, 0); + set_msr_interception(msrpm_va, MSR_IA32_LASTINTFROMIP, 0, 0); + set_msr_interception(msrpm_va, MSR_IA32_LASTINTTOIP, 0, 0); + } + break; default: unhandled: return kvm_set_msr_common(vcpu, ecx, data); --------------030903000809030508080104 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ --------------030903000809030508080104 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kvm-devel mailing list kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/kvm-devel --------------030903000809030508080104--