mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kajoljain <kjain@linux.ibm.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: acme@kernel.org, peterz@infradead.org, mingo@redhat.com,
	mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	pc@us.ibm.com, namhyung@kernel.org, ak@linux.intel.com,
	yao.jin@linux.intel.com, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, irogers@google.com,
	maddy@linux.ibm.com, ravi.bangoria@linux.ibm.com,
	john.garry@huawei.com
Subject: Re: [PATCH v6 2/5] perf/jevents: Add new structure to pass json fields.
Date: Tue, 1 Sep 2020 11:32:45 +0530	[thread overview]
Message-ID: <e0cd9e5c-2e9a-5198-108e-14998a757d62@linux.ibm.com> (raw)
In-Reply-To: <20200831084357.GC287892@krava>



On 8/31/20 2:13 PM, Jiri Olsa wrote:
> On Thu, Aug 27, 2020 at 06:39:55PM +0530, Kajol Jain wrote:
> 
> SNIP
> 
>> -	if (!*field)						\
>> +#define TRY_FIXUP_FIELD(field) do { if (es->field && !je->field) {\
>> +	je->field = strdup(es->field);				\
>> +	if (!je->field)						\
>>  		return -ENOMEM;					\
>>  } } while (0)
>>  
>> @@ -428,11 +440,7 @@ static void free_arch_std_events(void)
>>  	}
>>  }
>>  
>> -static int save_arch_std_events(void *data, char *name, char *event,
>> -				char *desc, char *long_desc, char *pmu,
>> -				char *unit, char *perpkg, char *metric_expr,
>> -				char *metric_name, char *metric_group,
>> -				char *deprecated, char *metric_constraint)
>> +static int save_arch_std_events(void *data, struct json_event *je)
>>  {
>>  	struct event_struct *es;
>>  
>> @@ -486,17 +494,16 @@ static char *real_event(const char *name, char *event)
>>  		return NULL;
>>  
>>  	for (i = 0; fixed[i].name; i++)
>> -		if (!strcasecmp(name, fixed[i].name))
>> -			return (char *)fixed[i].event;
>> +		if (!strcasecmp(name, fixed[i].name)) {
>> +			strcpy(event, fixed[i].event);
> 
> hum what's this strcpy for in here? we're just replacing separated
> variables with struct members, why do you need to copy the event in
> here?
> 

Hi Jiri,
    Actually, initially when events is not part of 'json_event' structure, we are not
assigning result of function `real_event` to event field. But as we are not passing
event filed separately in functions like 'save_arch_std_events', freeing event
memory was giving me issue as we are returning pointer from real_event function in some cases.
So, that's why I replace it to strcpy to make sure we free je.event memory. Or should I remove
free(je.event) part?

-		err = func(data, name, real_event(name, event), desc, long_desc,
-			   pmu, unit, perpkg, metric_expr, metric_name,
-			   metric_group, deprecated, metric_constraint);
+		je.event = real_event(je.name, je.event);

This is the part, I am referring, here we are assigning result of real_event into je.event field.

Thanks,
Kajol Jain
> thanks,
> jirka
> 

  reply	other threads:[~2020-09-01  6:03 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-27 13:09 [PATCH v6 0/5] powerpc/perf: Add json file support for hv_24x7 core level events Kajol Jain
2020-08-27 13:09 ` [PATCH v6 1/5] perf/jevents: Remove jevents.h file Kajol Jain
2020-08-31  8:43   ` Jiri Olsa
2020-08-31  9:01     ` John Garry
2020-09-01  5:56       ` kajoljain
2020-09-02  7:25         ` John Garry
2020-09-01  5:50     ` kajoljain
2020-08-27 13:09 ` [PATCH v6 2/5] perf/jevents: Add new structure to pass json fields Kajol Jain
2020-08-31  8:43   ` Jiri Olsa
2020-09-01  6:02     ` kajoljain [this message]
2020-09-01 20:37       ` Jiri Olsa
2020-08-27 13:09 ` [PATCH v6 3/5] perf jevents: Add support for parsing perchip/percore events Kajol Jain
2020-08-31  8:44   ` Jiri Olsa
2020-09-01  6:03     ` kajoljain
2020-08-27 13:09 ` [PATCH v6 4/5] perf/tools: Pass pmu_event structure as a parameter for arch_get_runtimeparam Kajol Jain
2020-08-27 13:09 ` [PATCH v6 5/5] perf/tools/pmu_events/powerpc: Add hv_24x7 core level metric events Kajol Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e0cd9e5c-2e9a-5198-108e-14998a757d62@linux.ibm.com \
    --to=kjain@linux.ibm.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=irogers@google.com \
    --cc=john.garry@huawei.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=maddy@linux.ibm.com \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=pc@us.ibm.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=yao.jin@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®