Re: [PATCH v9 01/12] user_events: Add minimal support for trace_event into ftrace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 18, 2022 at 12:45:17AM +0900, Masami Hiramatsu wrote:
> Hi Beau,
> 
> On Tue, 11 Jan 2022 09:25:51 -0800
> Beau Belgrave <beaub@xxxxxxxxxxxxxxxxxxx> wrote:
> 
> > +static int user_event_show(struct seq_file *m, struct dyn_event *ev)
> > +{
> > +	struct user_event *user = container_of(ev, struct user_event, devent);
> > +	struct ftrace_event_field *field, *next;
> > +	struct list_head *head;
> > +	int depth = 0;
> > +
> > +	seq_printf(m, "%s%s", USER_EVENTS_PREFIX, EVENT_NAME(user));
> > +
> > +	head = trace_get_fields(&user->call);
> > +
> > +	list_for_each_entry_safe_reverse(field, next, head, link) {
> > +		if (depth == 0)
> > +			seq_puts(m, " ");
> > +		else
> > +			seq_puts(m, "; ");
> > +		seq_printf(m, "%s %s", field->type, field->name);
> > +		depth++;
> > +	}
> > +
> > +	seq_puts(m, "\n");
> > +
> > +	return 0;
> > +}
> 
> Let me confirm just one point. Your syntax supports
> 
> [__data_loc|__rel_loc] [unsigned] TYPE[\[LEN\]] NAME
> 
> or
> 
> struct TYPE NAME SIZE
> 
> for the fields, right? In that case, above seq_printf() seems not enough.

Yep, I see.

The non-struct cases work as expected from my testing:
echo 'u:test unsigned char msg[20]' > dynamic_events
cat dynamic_events
u:test unsigned char msg[20]

In the struct case you are right, it's missing the size. Good catch!
I'll fix this up!

Was there another case you had in mind that I might have missed beyond
the struct case?

I also would like, since I'm re-spinning, to fix a warning the intel bot
found related to the same code pulled from single_open, etc.

See https://lore.kernel.org/llvm/YeGk0nIH9x91k01I@archlinux-ax161/

> 
> Thank you,
> 
> 
> -- 
> Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Thanks,
-Beau



[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux