From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932071Ab3KVPT5 (ORCPT ); Fri, 22 Nov 2013 10:19:57 -0500 Received: from mail-pb0-f43.google.com ([209.85.160.43]:47608 "EHLO mail-pb0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753041Ab3KVPT4 (ORCPT ); Fri, 22 Nov 2013 10:19:56 -0500 Subject: Re: [PATCH 14/22] tools lib traceevent: Update kvm plugin with is_writable_pte helper From: Namhyung Kim To: Jiri Olsa Cc: linux-kernel@vger.kernel.org, Corey Ashford , Frederic Weisbecker , Ingo Molnar , Paul Mackerras , Peter Zijlstra , Arnaldo Carvalho de Melo , Steven Rostedt , David Ahern In-Reply-To: <1385031680-9014-15-git-send-email-jolsa@redhat.com> References: <1385031680-9014-1-git-send-email-jolsa@redhat.com> <1385031680-9014-15-git-send-email-jolsa@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Sat, 23 Nov 2013 00:19:48 +0900 Message-ID: <1385133588.1747.91.camel@leonhard> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2013-11-21 (목), 12:01 +0100, Jiri Olsa: > Adding is_writable_pte print helper function, so the > kvmmmu:fast_page_fault print format gets resolved properly. > > The diff of 'perf script' output generated by old and new code: > (data was generated by 'perf record -e 'kvm:*,kvmmmu:*' -a') > > --- script.kvm.old > +++ script.kvm.new > - qemu-system-x86 3290 [002] 10708.755312: kvmmmu:fast_page_fault: [FAILED TO PARSE] vcpu_id=0 gva=4094486080 error_code=3 sptep=0xffff88019f1e3670 old_spte=336391285 new_spte=336391287 retry=1 > + qemu-system-x86 3290 [002] 10708.755312: kvmmmu:fast_page_fault: vcpu 0 gva f40ce640 error_code P|W sptep 0xffff88019f1e3670 old 0x140cec75 new 140cec77 spurious 0 fixed 1 [SNIP] > +unsigned long long process_is_writable_pte(struct trace_seq *s, > + unsigned long long *args) > +{ > + unsigned long pte = args[0]; > + return pte & PT_WRITABLE_MASK; > +} > + > int PEVENT_PLUGIN_LOADER(struct pevent *pevent) > { > init_disassembler(); > @@ -415,5 +425,12 @@ int PEVENT_PLUGIN_LOADER(struct pevent *pevent) > pevent_register_event_handler(pevent, -1, "kvmmmu", > "kvm_mmu_prepare_zap_page", kvm_mmu_print_role, > NULL); > + > + pevent_register_print_function(pevent, > + process_is_writable_pte, > + PEVENT_FUNC_ARG_INT, Same as the previous reply - return type of the function is inconsistent. And please also consider making the function static. Thanks, Namhyung > + "is_writable_pte", > + PEVENT_FUNC_ARG_LONG, > + PEVENT_FUNC_ARG_VOID); > return 0; > }