Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1409280 > unrolled thread

[PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'

Started byTaeung Song <treeze.taeung@gmail.com>
First post2016-05-30 18:50 +0200
Last post2016-05-31 00:30 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set' Taeung Song <treeze.taeung@gmail.com> - 2016-05-30 18:50 +0200
    Re: [PATCH v3 3/7] perf config: Modify perf_config_set__delete()  using global variable 'config_set' Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-30 21:30 +0200
      Re: [PATCH v3 3/7] perf config: Modify perf_config_set__delete()  using global variable 'config_set' Taeung Song <treeze.taeung@gmail.com> - 2016-05-31 00:30 +0200

#1409280 — [PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'

FromTaeung Song <treeze.taeung@gmail.com>
Date2016-05-30 18:50 +0200
Subject[PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'
Message-ID<rEyy5-6IE-13@gated-at.bofh.it>
This function deleted allocated config set but
the global variable 'config_set' is used all around
so this directly remove 'config_set' instead of using local variable 'set'.

Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/builtin-config.c | 2 +-
 tools/perf/util/config.c    | 8 ++++----
 tools/perf/util/config.h    | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index b3bc01a..255015e 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -105,7 +105,7 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
 		usage_with_options(config_usage, config_options);
 	}
 
-	perf_config_set__delete(config_set);
+	perf_config_set__delete();
 out_err:
 	return ret;
 }
diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index adf2bad..68def9a 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -642,7 +642,7 @@ static int collect_config(const char *var, const char *value,
 
 out_free:
 	free(key);
-	perf_config_set__delete(set);
+	perf_config_set__delete();
 	return -1;
 }
 
@@ -740,10 +740,10 @@ static void perf_config_set__purge(struct perf_config_set *set)
 	}
 }
 
-void perf_config_set__delete(struct perf_config_set *set)
+void perf_config_set__delete(void)
 {
-	perf_config_set__purge(set);
-	free(set);
+	perf_config_set__purge(config_set);
+	zfree(&config_set);
 }
 
 /*
diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h
index ea157a4..e9b47b3 100644
--- a/tools/perf/util/config.h
+++ b/tools/perf/util/config.h
@@ -23,6 +23,6 @@ struct perf_config_set {
 extern struct perf_config_set *config_set;
 
 struct perf_config_set *perf_config_set__new(void);
-void perf_config_set__delete(struct perf_config_set *set);
+void perf_config_set__delete(void);
 
 #endif /* __PERF_CONFIG_H */
-- 
2.5.0

[toc] | [next] | [standalone]


#1409349 — Re: [PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2016-05-30 21:30 +0200
SubjectRe: [PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'
Message-ID<rEB2W-8w0-33@gated-at.bofh.it>
In reply to#1409280
Em Tue, May 31, 2016 at 01:44:07AM +0900, Taeung Song escreveu:
> This function deleted allocated config set but
> the global variable 'config_set' is used all around
> so this directly remove 'config_set' instead of using local variable 'set'.

Keep it like it is, i.e. foo__delete() acts on something returned by
foo__new(), for consistency.

We may want to, for instance, have two instances returned by foo__new()
and then call the destructor for each.

- Arnaldo
 
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Masami Hiramatsu <mhiramat@kernel.org>
> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/builtin-config.c | 2 +-
>  tools/perf/util/config.c    | 8 ++++----
>  tools/perf/util/config.h    | 2 +-
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
> index b3bc01a..255015e 100644
> --- a/tools/perf/builtin-config.c
> +++ b/tools/perf/builtin-config.c
> @@ -105,7 +105,7 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
>  		usage_with_options(config_usage, config_options);
>  	}
>  
> -	perf_config_set__delete(config_set);
> +	perf_config_set__delete();
>  out_err:
>  	return ret;
>  }
> diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
> index adf2bad..68def9a 100644
> --- a/tools/perf/util/config.c
> +++ b/tools/perf/util/config.c
> @@ -642,7 +642,7 @@ static int collect_config(const char *var, const char *value,
>  
>  out_free:
>  	free(key);
> -	perf_config_set__delete(set);
> +	perf_config_set__delete();
>  	return -1;
>  }
>  
> @@ -740,10 +740,10 @@ static void perf_config_set__purge(struct perf_config_set *set)
>  	}
>  }
>  
> -void perf_config_set__delete(struct perf_config_set *set)
> +void perf_config_set__delete(void)
>  {
> -	perf_config_set__purge(set);
> -	free(set);
> +	perf_config_set__purge(config_set);
> +	zfree(&config_set);
>  }
>  
>  /*
> diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h
> index ea157a4..e9b47b3 100644
> --- a/tools/perf/util/config.h
> +++ b/tools/perf/util/config.h
> @@ -23,6 +23,6 @@ struct perf_config_set {
>  extern struct perf_config_set *config_set;
>  
>  struct perf_config_set *perf_config_set__new(void);
> -void perf_config_set__delete(struct perf_config_set *set);
> +void perf_config_set__delete(void);
>  
>  #endif /* __PERF_CONFIG_H */
> -- 
> 2.5.0

[toc] | [prev] | [next] | [standalone]


#1409733 — Re: [PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'

FromTaeung Song <treeze.taeung@gmail.com>
Date2016-05-31 00:30 +0200
SubjectRe: [PATCH v3 3/7] perf config: Modify perf_config_set__delete() using global variable 'config_set'
Message-ID<rEDR9-1Zm-65@gated-at.bofh.it>
In reply to#1409349
Hi, Arnaldo :-D

On 05/31/2016 04:29 AM, Arnaldo Carvalho de Melo wrote:
> Em Tue, May 31, 2016 at 01:44:07AM +0900, Taeung Song escreveu:
>> This function deleted allocated config set but
>> the global variable 'config_set' is used all around
>> so this directly remove 'config_set' instead of using local variable 'set'.
>
> Keep it like it is, i.e. foo__delete() acts on something returned by
> foo__new(), for consistency.
>
> We may want to, for instance, have two instances returned by foo__new()
> and then call the destructor for each.
>

I understood it.
I'll just keep the function as it is
i.e. void perf_config_set__delete(struct perf_config_set *set)
, for consistency.

And at [PATCH v3 4/7] perf config: Reimplement perf_config() using 
perf_config_set__iter()
when calling the function at run_builtin(),
I'll modify it like below.

@@ -391,6 +391,7 @@ static int run_builtin(struct cmd_struct *p, int 
argc, const char **argv)

         perf_env__set_cmdline(&perf_env, argc, argv);
         status = p->fn(argc, argv, prefix);
+       perf_config_set__delete(config_set);
         exit_browser(status);
         perf_env__exit(&perf_env);
         bpf__clear();


Thanks,
Taeung

>> Cc: Namhyung Kim <namhyung@kernel.org>
>> Cc: Jiri Olsa <jolsa@redhat.com>
>> Cc: Masami Hiramatsu <mhiramat@kernel.org>
>> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
>> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
>> ---
>>   tools/perf/builtin-config.c | 2 +-
>>   tools/perf/util/config.c    | 8 ++++----
>>   tools/perf/util/config.h    | 2 +-
>>   3 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
>> index b3bc01a..255015e 100644
>> --- a/tools/perf/builtin-config.c
>> +++ b/tools/perf/builtin-config.c
>> @@ -105,7 +105,7 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
>>   		usage_with_options(config_usage, config_options);
>>   	}
>>
>> -	perf_config_set__delete(config_set);
>> +	perf_config_set__delete();
>>   out_err:
>>   	return ret;
>>   }
>> diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
>> index adf2bad..68def9a 100644
>> --- a/tools/perf/util/config.c
>> +++ b/tools/perf/util/config.c
>> @@ -642,7 +642,7 @@ static int collect_config(const char *var, const char *value,
>>
>>   out_free:
>>   	free(key);
>> -	perf_config_set__delete(set);
>> +	perf_config_set__delete();
>>   	return -1;
>>   }
>>
>> @@ -740,10 +740,10 @@ static void perf_config_set__purge(struct perf_config_set *set)
>>   	}
>>   }
>>
>> -void perf_config_set__delete(struct perf_config_set *set)
>> +void perf_config_set__delete(void)
>>   {
>> -	perf_config_set__purge(set);
>> -	free(set);
>> +	perf_config_set__purge(config_set);
>> +	zfree(&config_set);
>>   }
>>
>>   /*
>> diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h
>> index ea157a4..e9b47b3 100644
>> --- a/tools/perf/util/config.h
>> +++ b/tools/perf/util/config.h
>> @@ -23,6 +23,6 @@ struct perf_config_set {
>>   extern struct perf_config_set *config_set;
>>
>>   struct perf_config_set *perf_config_set__new(void);
>> -void perf_config_set__delete(struct perf_config_set *set);
>> +void perf_config_set__delete(void);
>>
>>   #endif /* __PERF_CONFIG_H */
>> --
>> 2.5.0

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web