[Intel-gfx] [PATCH v4 2/5] drm: Add private data field to trace control block

Patrik Jakobsson patrik.r.jakobsson at gmail.com
Wed Aug 26 13:26:08 UTC 2015


On Tue, Aug 25, 2015 at 11:12 PM, Mike Frysinger <vapier at gentoo.org> wrote:
> On 24 Aug 2015 14:42, Patrik Jakobsson wrote:
>> We need to be able to store private data in the tcb across it's
>> lifetime. To ensure proper destruction of the data a free_priv_data
>> callback must be provided if an allocation is stored in priv_data. The
>> callback is executed automatically when the life of the tcb ends.
>>
>> * defs.h: Add extern declaration of free_tcb_priv_data.
>>  (struct tcb): Add priv_data and free_priv_data.
>> * strace.c (free_tcb_priv_data): New function
>> (drop_tcb): Execute free_tcb_priv_data callback
>> * syscall.c (trace_syscall_exiting): Execute free_tcb_priv_data callback
>>
>> Signed-off-by: Patrik Jakobsson <patrik.jakobsson at linux.intel.com>
>> ---
>>  defs.h    |  6 ++++++
>>  strace.c  | 14 ++++++++++++++
>>  syscall.c |  1 +
>>  3 files changed, 21 insertions(+)
>>
>> diff --git a/defs.h b/defs.h
>> index 9059026..bc3bd83 100644
>> --- a/defs.h
>> +++ b/defs.h
>> @@ -266,6 +266,10 @@ struct tcb {
>>       int u_error;            /* Error code */
>>       long scno;              /* System call number */
>>       long u_arg[MAX_ARGS];   /* System call arguments */
>> +
>> +     void *priv_data;        /* Private data for syscall decoding functions */
>> +     void (*free_priv_data)(void *); /* Callback for freeing priv_data */
>
> should we name these _priv_data and _free_priv_data and provides accessor
> functions ?  i worry that code paths might stomp on each other by accident
> and we don't end up noticing.
>
> static void set_tcb_priv_data(struct tcb *tcp, void *data, void (*free_data)(void *))
> {
>         assert(tcp->_priv_data == NULL && tcp->_free_priv_data == NULL);
>         ...
> }
> -mike

Yes, that's a good idea. My use case is pretty simple but usage can easliy grow.

I'll resend this patch and take it out of the drm/i915 series.

-Patrik




More information about the Strace-devel mailing list