From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753490AbdEILFR (ORCPT ); Tue, 9 May 2017 07:05:17 -0400 Received: from mail-pg0-f51.google.com ([74.125.83.51]:32784 "EHLO mail-pg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753043AbdEILFO (ORCPT ); Tue, 9 May 2017 07:05:14 -0400 From: Taeung Song To: Arnaldo Carvalho de Melo Cc: linux-kernel@vger.kernel.org, Jiri Olsa , Namhyung Kim Subject: [PATCH v3 7/7] perf config: Support autogeneration of config file when setting configs Date: Tue, 9 May 2017 20:05:10 +0900 Message-Id: <1494327910-25335-1-git-send-email-treeze.taeung@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Users should be able to set configs by perf-config, whether there aren't config files or not. But if there aren't config files, it fail to set configs on the config files. So automatically create config files if not exists. If not free config_set after perf_config_set__init() failed, we can do that. Before: $ rm -f ~/.perfconfig && perf config --user report.children=false $ cat ~/.perfconfig cat: /root/.perfconfig: No such file or directory After: $ rm -f ~/.perfconfig && perf config --user report.children=false $ cat ~/.perfconfig # this file is auto-generated. [report] children = false NOTE: The config set will be freed at the tail end. (i.e. by perf_config_set__delete() at the end of cmd_config()) Cc: Jiri Olsa Cc: Namhyung Kim Signed-off-by: Taeung Song --- tools/perf/util/config.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c index 8d724f0..1cc5d80 100644 --- a/tools/perf/util/config.c +++ b/tools/perf/util/config.c @@ -691,10 +691,7 @@ struct perf_config_set *perf_config_set__new(void) if (set) { INIT_LIST_HEAD(&set->sections); - if (perf_config_set__init(set) < 0) { - perf_config_set__delete(set); - set = NULL; - } + perf_config_set__init(set); } return set; -- 2.7.4