From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755754Ab3KVPGh (ORCPT ); Fri, 22 Nov 2013 10:06:37 -0500 Received: from mail-pd0-f173.google.com ([209.85.192.173]:62384 "EHLO mail-pd0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753034Ab3KVPGg (ORCPT ); Fri, 22 Nov 2013 10:06:36 -0500 Subject: Re: [PATCH 11/22] tools lib traceevent: Add xen plugin 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 , Jeremy Fitzhardinge In-Reply-To: <1385031680-9014-12-git-send-email-jolsa@redhat.com> References: <1385031680-9014-1-git-send-email-jolsa@redhat.com> <1385031680-9014-12-git-send-email-jolsa@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Sat, 23 Nov 2013 00:06:28 +0900 Message-ID: <1385132788.1747.70.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 xen plugin. > > This plugin adds fields resolving for > following tracepoint events: > xen:xen_mc_entry > xen:xen_mc_extend_args > > The diff of 'perf script' output generated by old and new code: > (data was generated by 'perf record -e 'xen:*' ls') > > --- script.xen.old > +++ script.xen.new > - swapper 0 [002] 136.267492: xen:xen_mc_entry: [FAILED TO PARSE] op=3 nargs=2 args=ARRAY[18, 00, 00, 00, 00, 00, 00, 00, 00, e0, d4, 4b, 04, 88, ff, ff, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00] > + swapper 0 [002] 136.267492: xen:xen_mc_entry: op 3(stack_switch) args [18, 0, 0, 0, 0, 0] > - perf 1970 [008] 136.273319: xen:xen_mc_extend_args: [FAILED TO PARSE] op=1 args=16 res=1 > + perf 1970 [008] 136.273319: xen:xen_mc_extend_args: extending op 1(mmu_update) by 16 bytes res ??? > > NOTE We still do not handle the 'sizeof' and fail > to parse following xen tracepoints: > xen:xen_mmu_set_pte > xen:xen_mmu_set_pte_atomic > xen:xen_mmu_set_domain_pte > xen:xen_mmu_set_pte_at > xen:xen_mmu_set_pmd > xen:xen_mmu_set_pud > xen:xen_mmu_set_pgd > xen:xen_mmu_ptep_modify_prot_start > xen:xen_mmu_ptep_modify_prot_commit > [SNIP] > +static const char *xen_hypercall_name(unsigned op) > +{ > + if (op < ARRAY_SIZE(xen_hypercall_names) && > + xen_hypercall_names[op] != NULL) > + return xen_hypercall_names[op]; > + > + return ""; How about defaults to "unknown" if not found? Thanks Namhyung > +} > + > +unsigned long long process_xen_hypercall_name(struct trace_seq *s, > + unsigned long long *args) > +{ > + unsigned int op = args[0]; > + > + trace_seq_printf(s, "%s", xen_hypercall_name(op)); > + return 0; > +} > + > +int PEVENT_PLUGIN_LOADER(struct pevent *pevent) > +{ > + pevent_register_print_function(pevent, > + process_xen_hypercall_name, > + PEVENT_FUNC_ARG_STRING, > + "xen_hypercall_name", > + PEVENT_FUNC_ARG_INT, > + PEVENT_FUNC_ARG_VOID); > + return 0; > +}