From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v7 09/13] KVM: x86: Implement Intel Processor Trace context switch Date: Fri, 4 May 2018 23:49:44 +0200 Message-ID: References: <1525349323-9938-1-git-send-email-luwei.kang@intel.com> <1525349323-9938-10-git-send-email-luwei.kang@intel.com> <20180504102958.u6c3mqackl4kzd54@um.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, rkrcmar@redhat.com, linux-kernel@vger.kernel.org, joro@8bytes.org, peterz@infradead.org, chao.p.peng@linux.intel.com To: Alexander Shishkin , Luwei Kang Return-path: In-Reply-To: <20180504102958.u6c3mqackl4kzd54@um.fi.intel.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 04/05/2018 12:29, Alexander Shishkin wrote: > On Thu, May 03, 2018 at 08:08:39PM +0800, Luwei Kang wrote: >> +static void pt_guest_enter(struct vcpu_vmx *vmx) >> +{ >> + if (pt_mode == PT_MODE_HOST || pt_mode == PT_MODE_HOST_GUEST) >> + rdmsrl(MSR_IA32_RTIT_CTL, vmx->pt_desc.host.ctl); >> + >> + if (pt_mode == PT_MODE_HOST_GUEST && >> + vmx->pt_desc.guest.ctl & RTIT_CTL_TRACEEN) { >> + wrmsrl(MSR_IA32_RTIT_CTL, 0); >> + pt_save_msr(&vmx->pt_desc.host, vmx->pt_desc.range_cnt); >> + pt_load_msr(&vmx->pt_desc.guest, vmx->pt_desc.range_cnt); >> + } >> +} >> + >> +static void pt_guest_exit(struct vcpu_vmx *vmx) >> +{ >> + if (pt_mode == PT_MODE_HOST_GUEST && >> + vmx->pt_desc.guest.ctl & RTIT_CTL_TRACEEN) { >> + pt_save_msr(&vmx->pt_desc.guest, vmx->pt_desc.range_cnt); >> + pt_load_msr(&vmx->pt_desc.host, vmx->pt_desc.range_cnt); >> + } >> + >> + if (pt_mode == PT_MODE_HOST || pt_mode == PT_MODE_HOST_GUEST) >> + wrmsrl(MSR_IA32_RTIT_CTL, vmx->pt_desc.host.ctl); >> +} > > This means that a host PT event won't get the guest traces and won't get > any notification as to what'd happened or why. At the minimum we need to > send a PARTIAL AUX record at the pt_guest_enter(), when we turn the host > tracing off. How do you do that? :) Paolo