[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1283452736.2356.388.camel@gandalf.stny.rr.com>
Date: Thu, 02 Sep 2010 14:38:56 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Avi Kivity <avi@...hat.com>
Cc: linux-kernel <linux-kernel@...r.kernel.org>,
KVM list <kvm@...r.kernel.org>
Subject: Re: kernelshark plugins and ftrace array fields
On Thu, 2010-09-02 at 14:16 -0400, Steven Rostedt wrote:
> On Thu, 2010-09-02 at 17:34 +0300, Avi Kivity wrote:
>
> OK, with no modification of what I have already, I just created this
> handler:
>
> static int
> kvm_emulate_insn_handler(struct trace_seq *s, struct record *record,
> struct event_format *event, void *context)
> {
> struct format_field *field;
> unsigned char *data = record->data;
> int i;
>
> field = pevent_find_field(event, "insn");
> if (!field) {
> trace_seq_puts(s, "Can't find inst field");
> return 0;
> }
>
> trace_seq_puts(s, "insn: ");
> for (i = 0; i < field->size; i++) {
> trace_seq_printf(s, "%s%02x",
> i ? "," : "",
> data[field->offset + i]);
> }
>
> return 0;
> }
>
>
> I think this is what you would want, right?
I think I will add a:
void *pevent_get_field_raw(stuct trace_seq *s,
struct event_format *event,
char *field_name,
struct record *record,
int **field_len);
which will return a pointer into record->data and set the field_len to
the actual size.
This will be useful for dynamic arrays too, since it is more complex
than just using a field->offset.
-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists