Re: [PATCHv10 2.6.35-rc6-tip 8/14] trace: Extract out common codefor kprobes/uprobes traceevents.

From: Srikar Dronamraju
Date: Tue Jul 27 2010 - 10:08:38 EST


>
> > ---
> [...]
> > +/* Recursive argument parser */
> > +static int parse_probe_arg(char *arg, const struct fetch_type *t,
> > + struct fetch_param *f, int is_return, bool is_kprobe)
>
> If you use "bool" for "is_kprobe", change "is_return" type too.

Okay.


>
> And, maybe you missed that the fetch function supports "string" type now,
> which needs a bit different manner for storing fetched value. You can find
> store_trace_args() function in trace_kprobe.c.

Yes, I have seen your changes for supporting string type. Though all
the fetch functions are in common code, uprobe based probes for now
supports register fetching only. We have to add support for other
types gradually. Please let me know if you see a reason to change the
way we fetch even when we only support register type access.

>
> BTW, current fetch functions doesn't support fetching "paged-out" user-variables
> because kprobe can't sleep inside its handler.
> However, user-space memory can be paged out, and I assume that uprobes allows
> its handler to I/O (and yield). If so, it can wait for accessing paged-out
> variable, can't it?

Yes, the uprobes handler might sleep and hence we would have to
handle accessing the paged-out user variables. When perf-uprobes
starts supporting dwarf based probing, we should look into these
issues. Currently its a todo.

--
Thanks and Regards
Srikar
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/