From patchwork Wed Nov 14 01:36:53 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro YUNOMAE X-Patchwork-Id: 1737191 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 2A1EB3FCAE for ; Wed, 14 Nov 2012 01:40:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756176Ab2KNBj4 (ORCPT ); Tue, 13 Nov 2012 20:39:56 -0500 Received: from mailxx.hitachi.co.jp ([133.145.228.50]:53243 "EHLO mailxx.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756123Ab2KNBjy (ORCPT ); Tue, 13 Nov 2012 20:39:54 -0500 Received: from mail4.hitachi.co.jp by mailxx.hitachi.co.jp (8.9.3p3/3.7W-mailx) id KAA24700; Wed, 14 Nov 2012 10:39:53 +0900 Received: from mlsv1.hitachi.co.jp (unknown [133.144.234.166]) by mail4.hitachi.co.jp (Postfix) with ESMTP id 9899D33CC7; Wed, 14 Nov 2012 10:37:42 +0900 (JST) Received: from mfilter04.hitachi.co.jp by mlsv1.hitachi.co.jp (8.13.1/8.13.1) id qAE1bgHf013160; Wed, 14 Nov 2012 10:37:42 +0900 Received: from vshuts02.hitachi.co.jp (vshuts02.hitachi.co.jp [10.201.6.84]) by mfilter04.hitachi.co.jp (Switch-3.3.4/Switch-3.3.4) with ESMTP id qAE1bfpR013502; Wed, 14 Nov 2012 10:37:42 +0900 Received: from vshuts3.hitachi.co.jp (unknown [10.201.6.72]) by vshuts02.hitachi.co.jp (Postfix) with ESMTP id 2900149004D; Wed, 14 Nov 2012 10:37:41 +0900 (JST) X-AuditID: b753bd60-97251ba000002f78-00-50a2f5e453b1 Received: from hsdlmain.sdl.hitachi.co.jp (unknown [133.144.14.194]) by vshuts3.hitachi.co.jp (Symantec Mail Security) with ESMTP id D4AD277425C; Wed, 14 Nov 2012 10:37:40 +0900 (JST) Received: from hsdlvgate2.sdl.hitachi.co.jp by hsdlmain.sdl.hitachi.co.jp (8.13.8/3.7W11021512) id qAE1becC005651; Wed, 14 Nov 2012 10:37:40 +0900 X-AuditID: b753bd60-97251ba000002f78-00-50a2f5e453b1 Received: from sdl99w.sdl.hitachi.co.jp (sdl99w.sdl.hitachi.co.jp [133.144.14.250]) by hsdlvgate2.sdl.hitachi.co.jp (Symantec Mail Security) with ESMTP id 6BD6A28F0AE; Wed, 14 Nov 2012 10:37:40 +0900 (JST) Received: from maild.sdl.hitachi.co.jp (sdl99d.sdl.hitachi.co.jp [133.144.14.199]) by sdl99w.sdl.hitachi.co.jp (Postfix) with ESMTP id 3BA7753C158; Wed, 14 Nov 2012 10:37:43 +0900 (JST) Received: from [192.168.16.191] (unknown [10.227.55.82]) by maild.sdl.hitachi.co.jp (Postfix) with ESMTP id 1F33A495B7F; Wed, 14 Nov 2012 10:37:40 +0900 (JST) Subject: [RFC PATCH 1/2] kvm/vmx: Print TSC_OFFSET information when TSC offset value is written to VMCS To: linux-kernel@vger.kernel.org From: Yoshihiro YUNOMAE Cc: "H. Peter Anvin" , kvm@vger.kernel.org, Joerg Roedel , David Sharp , Marcelo Tosatti , Steven Rostedt , Hidehiro Kawai , Ingo Molnar , Avi Kivity , yrl.pp-manager.tt@hitachi.com, Masami Hiramatsu , Thomas Gleixner Date: Wed, 14 Nov 2012 10:36:53 +0900 Message-ID: <20121114013643.5338.55452.stgit@yunodevel> In-Reply-To: <20121114013611.5338.15086.stgit@yunodevel> References: <20121114013611.5338.15086.stgit@yunodevel> User-Agent: StGit/0.16 MIME-Version: 1.0 X-Brightmail-Tracker: AAAAAA== Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Print TSC_OFFSET information when TSC offset value is written to VMCS for measuring actual TSC of a guest. TSC value on a guest is always the host TSC plus the guest's "TSC offset". TSC offset is stored in the VMCS in vmx_write_tsc_offset() or vmx_adjust_tsc_offset(). KVM executes the former function when a guest boots. The latter function is executed when kvm clock is updated. On the other hand, the host can read the TSC offset values from VMCS. So, if the host outputs the TSC offset values, we can calculate an actual TSC value for each TSC timestamp recorded trace data of the guest. Signed-off-by: Yoshihiro YUNOMAE Cc: Avi Kivity Cc: Marcelo Tosatti Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Masami Hiramatsu Cc: Hidehiro Kawai --- arch/x86/kvm/vmx.c | 5 +++++ 1 file changed, 5 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index ad6b1dd..8edfe3c 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -1887,6 +1887,9 @@ static void vmx_write_tsc_offset(struct kvm_vcpu *vcpu, u64 offset) vmcs12->tsc_offset : 0)); } else { vmcs_write64(TSC_OFFSET, offset); + pr_info("kvm: (%d) write TSC offset %llu, now clock %llu\n", + current->pid, vmcs_read64(TSC_OFFSET), + native_read_tsc()); } } @@ -1894,6 +1897,8 @@ static void vmx_adjust_tsc_offset(struct kvm_vcpu *vcpu, s64 adjustment, bool ho { u64 offset = vmcs_read64(TSC_OFFSET); vmcs_write64(TSC_OFFSET, offset + adjustment); + pr_info("kvm: (%d) adjust TSC offset %llu, now clock %llu\n", + current->pid, vmcs_read64(TSC_OFFSET), native_read_tsc()); if (is_guest_mode(vcpu)) { /* Even when running L2, the adjustment needs to apply to L1 */ to_vmx(vcpu)->nested.vmcs01_tsc_offset += adjustment;