Re: [PATCH 17/18] tracing: Add indirect to indirect access for function based events

Steven Rostedt
2018-02-13T15:28:28Z

On Tue, 13 Feb 2018 18:27:37 +0900
Namhyung Kim <namhyung@kernel.org> wrote:

> Hi Steve,
>
> On Mon, Feb 12, 2018 at 12:23:54PM -0500, Steven Rostedt wrote:
> > On Mon, 12 Feb 2018 11:15:34 +0900
> > Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > > > It should have been:
> > > >
> > > > return process_redirects(arg, val, buf);
> > >
> > > But I think you need to consider data type of the arg when
> > > dereferencing the last redirect.
> >
> > What for?
>
> Otherwise it'd return a value of unsigned long type regardless of the
> type of the arg. I thought it should have same logic as indirect
> args.

OK, I see what you are saying. Yeah, I think it should have the check,
or ...

>
> But it seems not matter since record_entry() would copy it only for
> the arg->size. Then type check in __get_arg() might be unnecessary
> too.

No, on big endian boxes it can break. I think the answer is to have the
final assignment do the conversion. Or I should have a helper function
to do it.

>
> >
> > Also this code has also changed. I haven't posted new patches but my
> > latest is in my git tree in the branch ftrace/dynamic-ftrace-events.
>
> I've checked it. And it seems to have another problem for indirect
> (but not redirect) arrays and strings. Like 'x32[1] foo[2]'?

Yep, I know the issue there, I haven't gotten around to fixing it.

Thanks!

-- Steve