2020-08-07 13:38:57

by Christian König

[permalink] [raw]
Subject: RFC: How to adjust the trace pid?

Hi everybody,

in amdgpu we got the following issue which I'm seeking advise how to cleanly handle it.

We have a bunch of trace points which are related to the VM subsystem and executed in either a work item, kthread or foreign process context.

Now tracing the pid of the context which we are executing in is not really that useful, so I'm wondering if we could just overwrite the pid recorded in the trace entry?

The following patch does exactly that for the vm_grab_id() trace point, but I'm not 100% sure if that is legal or not.

Any ideas? Comments?

Thanks,
Christian.



2020-08-12 13:43:20

by Christian König

[permalink] [raw]
Subject: Re: RFC: How to adjust the trace pid?

Ping? Daniel, Dave any opinion on this?

Christian.

Am 07.08.20 um 15:36 schrieb Christian König:
> Hi everybody,
>
> in amdgpu we got the following issue which I'm seeking advise how to cleanly handle it.
>
> We have a bunch of trace points which are related to the VM subsystem and executed in either a work item, kthread or foreign process context.
>
> Now tracing the pid of the context which we are executing in is not really that useful, so I'm wondering if we could just overwrite the pid recorded in the trace entry?
>
> The following patch does exactly that for the vm_grab_id() trace point, but I'm not 100% sure if that is legal or not.
>
> Any ideas? Comments?
>
> Thanks,
> Christian.
>
>

2020-08-12 13:53:39

by Daniel Vetter

[permalink] [raw]
Subject: Re: RFC: How to adjust the trace pid?

On Wed, Aug 12, 2020 at 3:42 PM Christian König
<[email protected]> wrote:
>
> Ping? Daniel, Dave any opinion on this?

Type patch, cc: tracing people, see what they say? tbh I have no idea,
but they have been making unhappy noises about some of the tricks
we've played in the past in i915 tracepoints. So not everything is
cool in there.

Otherwise I guess just add another tracepoint parameter to dump the
correct userspace mm.

3rd option could be to dump the current mm (since I'm assuming those
threads do kthread_use/unuse_mm to impersonate the right userspace
process correctly) in the tracepoint infrastructure too?

Cheers, Daniel

> Christian.
>
> Am 07.08.20 um 15:36 schrieb Christian König:
> > Hi everybody,
> >
> > in amdgpu we got the following issue which I'm seeking advise how to cleanly handle it.
> >
> > We have a bunch of trace points which are related to the VM subsystem and executed in either a work item, kthread or foreign process context.
> >
> > Now tracing the pid of the context which we are executing in is not really that useful, so I'm wondering if we could just overwrite the pid recorded in the trace entry?
> >
> > The following patch does exactly that for the vm_grab_id() trace point, but I'm not 100% sure if that is legal or not.
> >
> > Any ideas? Comments?
> >
> > Thanks,
> > Christian.
> >
> >
>


--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2020-08-12 14:09:16

by Christian König

[permalink] [raw]
Subject: Re: RFC: How to adjust the trace pid?

Am 12.08.20 um 15:49 schrieb Daniel Vetter:
> On Wed, Aug 12, 2020 at 3:42 PM Christian König
> <[email protected]> wrote:
>> Ping? Daniel, Dave any opinion on this?
> Type patch, cc: tracing people, see what they say?

Adding Ingo and Steven then.

> tbh I have no idea,
> but they have been making unhappy noises about some of the tricks
> we've played in the past in i915 tracepoints. So not everything is
> cool in there.

Well that was the feedback I was looking for.

> Otherwise I guess just add another tracepoint parameter to dump the
> correct userspace mm.

Well the tracing subsystem looks like rather complicated macro magic, so
I'm not touching that before speaking to he maintainer what approach we
should take.

> 3rd option could be to dump the current mm (since I'm assuming those
> threads do kthread_use/unuse_mm to impersonate the right userspace
> process correctly) in the tracepoint infrastructure too?

Nope, we don't use kthread_use/unuse_mm since we don't touch the process
which initiated the operation in any way.

This is just to improve debugging since it doesn't make much sense to
trace the pid of the worker thread. And since we have the pid of the
initiator around anyway using it should be trivial.

Question is rather how to do it correctly? I couldn't find much
precedence for this.

Thanks,
Christian.

>
> Cheers, Daniel
>
>> Christian.
>>
>> Am 07.08.20 um 15:36 schrieb Christian König:
>>> Hi everybody,
>>>
>>> in amdgpu we got the following issue which I'm seeking advise how to cleanly handle it.
>>>
>>> We have a bunch of trace points which are related to the VM subsystem and executed in either a work item, kthread or foreign process context.
>>>
>>> Now tracing the pid of the context which we are executing in is not really that useful, so I'm wondering if we could just overwrite the pid recorded in the trace entry?
>>>
>>> The following patch does exactly that for the vm_grab_id() trace point, but I'm not 100% sure if that is legal or not.
>>>
>>> Any ideas? Comments?
>>>
>>> Thanks,
>>> Christian.
>>>
>>>
>