From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752221AbdLFNih (ORCPT ); Wed, 6 Dec 2017 08:38:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59208 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751598AbdLFNid (ORCPT ); Wed, 6 Dec 2017 08:38:33 -0500 Date: Wed, 6 Dec 2017 14:38:29 +0100 From: Jiri Olsa To: John Garry Cc: peterz@infradead.org, mingo@redhat.com, acme@kernel.org, alexander.shishkin@linux.intel.com, namhyung@kernel.org, ak@linux.intel.com, wcohen@redhat.com, will.deacon@arm.com, ganapatrao.kulkarni@cavium.com, catalin.marinas@arm.com, mark.rutland@arm.com, xuwei5@hisilicon.com, linuxarm@huawei.com, zhangshaokun@hisilicon.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 1/5] perf jevents: add support for pmu events vendor subdirectory Message-ID: <20171206133829.GC12508@krava> References: <1512490399-94107-1-git-send-email-john.garry@huawei.com> <1512490399-94107-2-git-send-email-john.garry@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1512490399-94107-2-git-send-email-john.garry@huawei.com> User-Agent: Mutt/1.9.1 (2017-09-22) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 06 Dec 2017 13:38:33 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Dec 06, 2017 at 12:13:15AM +0800, John Garry wrote: SNIP > diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c > index b578aa2..a0d489e 100644 > --- a/tools/perf/pmu-events/jevents.c > +++ b/tools/perf/pmu-events/jevents.c > @@ -588,7 +588,7 @@ static char *file_name_to_table_name(char *fname) > * Derive rest of table name from basename of the JSON file, > * replacing hyphens and stripping out .json suffix. > */ > - n = asprintf(&tblname, "pme_%s", basename(fname)); > + n = asprintf(&tblname, "pme_%s", fname); > if (n < 0) { > pr_info("%s: asprintf() error %s for file %s\n", prog, > strerror(errno), fname); > @@ -598,7 +598,7 @@ static char *file_name_to_table_name(char *fname) > for (i = 0; i < strlen(tblname); i++) { > c = tblname[i]; > > - if (c == '-') > + if (c == '-' || c == '/') > tblname[i] = '_'; > else if (c == '.') { > tblname[i] = '\0'; > @@ -755,15 +755,52 @@ static int get_maxfds(void) > static FILE *eventsfp; > static char *mapfile; > > +static int isLeafDir(const char *fpath) we use _ to separate words in functions names > +{ > + DIR *d; > + struct dirent *dir; > + int res = 1; > + d = opendir(fpath); > + if (!d) > + return 0; > + > + while ((dir = readdir(d)) != NULL) { > + if (dir-> d_type == DT_DIR && dir->d_name[0] != '.') { > + res = 0; > + break; just recently got into a issue on xfs when d_type is DT_UNKNOWN for directory.. you need to handle it thanks, jirka