Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-26 Thread Athira Rajeev



> On 27-Sep-2023, at 4:07 AM, Namhyung Kim  wrote:
> 
> Hello,
> 
> On Mon, Sep 25, 2023 at 10:37 AM Arnaldo Carvalho de Melo
>  wrote:
>> 
>> 
>> 
>> On Wed, Sep 13, 2023, 7:40 AM Athira Rajeev  
>> wrote:
>>> 
>>> 
>>> 
 On 08-Sep-2023, at 7:48 PM, Athira Rajeev  
 wrote:
 
 
 
> On 08-Sep-2023, at 11:04 AM, Sachin Sant  wrote:
> 
> 
> 
>> On 07-Sep-2023, at 10:29 PM, Athira Rajeev  
>> wrote:
>> 
>> Testcase "Parsing of all PMU events from sysfs" parse events for
>> all PMUs, and not just cpu. In case of powerpc, the PowerVM
>> environment supports events from hv_24x7 and hv_gpci PMU which
>> is of example format like below:
>> 
>> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
>> - hv_gpci/event,partition_id=?/
>> 
>> The value for "?" needs to be filled in depending on system
>> configuration. It is better to skip these parametrized events
>> in this test as it is done in:
>> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
>> parametrized events")' which handled a simialr instance with
>> "all PMU test".
>> 
>> Fix parse-events test to skip parametrized events since
>> it needs proper setup of the parameters.
>> 
>> Signed-off-by: Athira Rajeev 
>> ---
>> Changelog:
>> v1 -> v2:
>> Addressed review comments from Ian. Updated size of
>> pmu event name variable and changed bool name which is
>> used to skip the test.
>> 
> 
> The patch fixes the reported issue.
> 
> 6.2: Parsing of all PMU events from sysfs  : Ok
> 6.3: Parsing of given PMU events from sysfs: Ok
> 
> Tested-by: Sachin Sant 
> 
> - Sachin
 
 Hi Sachin, Ian
 
 Thanks for testing the patch
>>> 
>>> Hi Arnaldo
>>> 
>>> Can you please check and pull this if it looks good to go .
>> 
>> 
>> Namhyung, can you please take a look?
> 
> Yep sure.  I think it needs to close the file when getline() fails.
> 
> Athira, can you please send v3 with that?

Sure, I will post V3 with this change

Athira
> 
> Thanks,
> Namhyung



Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-26 Thread Namhyung Kim
Hello,

On Mon, Sep 25, 2023 at 10:37 AM Arnaldo Carvalho de Melo
 wrote:
>
>
>
> On Wed, Sep 13, 2023, 7:40 AM Athira Rajeev  
> wrote:
>>
>>
>>
>> > On 08-Sep-2023, at 7:48 PM, Athira Rajeev  
>> > wrote:
>> >
>> >
>> >
>> >> On 08-Sep-2023, at 11:04 AM, Sachin Sant  wrote:
>> >>
>> >>
>> >>
>> >>> On 07-Sep-2023, at 10:29 PM, Athira Rajeev  
>> >>> wrote:
>> >>>
>> >>> Testcase "Parsing of all PMU events from sysfs" parse events for
>> >>> all PMUs, and not just cpu. In case of powerpc, the PowerVM
>> >>> environment supports events from hv_24x7 and hv_gpci PMU which
>> >>> is of example format like below:
>> >>>
>> >>> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
>> >>> - hv_gpci/event,partition_id=?/
>> >>>
>> >>> The value for "?" needs to be filled in depending on system
>> >>> configuration. It is better to skip these parametrized events
>> >>> in this test as it is done in:
>> >>> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
>> >>> parametrized events")' which handled a simialr instance with
>> >>> "all PMU test".
>> >>>
>> >>> Fix parse-events test to skip parametrized events since
>> >>> it needs proper setup of the parameters.
>> >>>
>> >>> Signed-off-by: Athira Rajeev 
>> >>> ---
>> >>> Changelog:
>> >>> v1 -> v2:
>> >>> Addressed review comments from Ian. Updated size of
>> >>> pmu event name variable and changed bool name which is
>> >>> used to skip the test.
>> >>>
>> >>
>> >> The patch fixes the reported issue.
>> >>
>> >> 6.2: Parsing of all PMU events from sysfs  : Ok
>> >> 6.3: Parsing of given PMU events from sysfs: Ok
>> >>
>> >> Tested-by: Sachin Sant 
>> >>
>> >> - Sachin
>> >
>> > Hi Sachin, Ian
>> >
>> > Thanks for testing the patch
>>
>> Hi Arnaldo
>>
>> Can you please check and pull this if it looks good to go .
>
>
> Namhyung, can you please take a look?

Yep sure.  I think it needs to close the file when getline() fails.

Athira, can you please send v3 with that?

Thanks,
Namhyung


Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-25 Thread Arnaldo Carvalho de Melo
On Wed, Sep 13, 2023, 7:40 AM Athira Rajeev 
wrote:

>
>
> > On 08-Sep-2023, at 7:48 PM, Athira Rajeev 
> wrote:
> >
> >
> >
> >> On 08-Sep-2023, at 11:04 AM, Sachin Sant  wrote:
> >>
> >>
> >>
> >>> On 07-Sep-2023, at 10:29 PM, Athira Rajeev <
> atraj...@linux.vnet.ibm.com> wrote:
> >>>
> >>> Testcase "Parsing of all PMU events from sysfs" parse events for
> >>> all PMUs, and not just cpu. In case of powerpc, the PowerVM
> >>> environment supports events from hv_24x7 and hv_gpci PMU which
> >>> is of example format like below:
> >>>
> >>> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
> >>> - hv_gpci/event,partition_id=?/
> >>>
> >>> The value for "?" needs to be filled in depending on system
> >>> configuration. It is better to skip these parametrized events
> >>> in this test as it is done in:
> >>> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
> >>> parametrized events")' which handled a simialr instance with
> >>> "all PMU test".
> >>>
> >>> Fix parse-events test to skip parametrized events since
> >>> it needs proper setup of the parameters.
> >>>
> >>> Signed-off-by: Athira Rajeev 
> >>> ---
> >>> Changelog:
> >>> v1 -> v2:
> >>> Addressed review comments from Ian. Updated size of
> >>> pmu event name variable and changed bool name which is
> >>> used to skip the test.
> >>>
> >>
> >> The patch fixes the reported issue.
> >>
> >> 6.2: Parsing of all PMU events from sysfs  : Ok
> >> 6.3: Parsing of given PMU events from sysfs: Ok
> >>
> >> Tested-by: Sachin Sant 
> >>
> >> - Sachin
> >
> > Hi Sachin, Ian
> >
> > Thanks for testing the patch
>
> Hi Arnaldo
>
> Can you please check and pull this if it looks good to go .
>

Namhyung, can you please take a look?

I'll be back home next week, now at Kernel Recipes in Paris.

- Arnaldo

>
> Thanks
> Athira
> >
> > Athira
> >
> >
>
>


Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-25 Thread kajoljain



On 9/7/23 22:29, Athira Rajeev wrote:
> Testcase "Parsing of all PMU events from sysfs" parse events for
> all PMUs, and not just cpu. In case of powerpc, the PowerVM
> environment supports events from hv_24x7 and hv_gpci PMU which
> is of example format like below:
> 
> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
> - hv_gpci/event,partition_id=?/
> 
> The value for "?" needs to be filled in depending on system
> configuration. It is better to skip these parametrized events
> in this test as it is done in:
> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
> parametrized events")' which handled a simialr instance with
> "all PMU test".
> 
> Fix parse-events test to skip parametrized events since
> it needs proper setup of the parameters.

Patch looks good to me.

Reviewed-by: Kajol Jain 

Thanks,
Kajol Jain

> 
> Signed-off-by: Athira Rajeev 
> ---
> Changelog:
> v1 -> v2:
>  Addressed review comments from Ian. Updated size of
>  pmu event name variable and changed bool name which is
>  used to skip the test.
> 
>  tools/perf/tests/parse-events.c | 38 +
>  1 file changed, 38 insertions(+)
> 
> diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
> index 658fb9599d95..1ecaeceb69f8 100644
> --- a/tools/perf/tests/parse-events.c
> +++ b/tools/perf/tests/parse-events.c
> @@ -2514,9 +2514,14 @@ static int test__pmu_events(struct test_suite *test 
> __maybe_unused, int subtest
>   while ((pmu = perf_pmus__scan(pmu)) != NULL) {
>   struct stat st;
>   char path[PATH_MAX];
> + char pmu_event[PATH_MAX];
> + char *buf = NULL;
> + FILE *file;
>   struct dirent *ent;
> + size_t len = 0;
>   DIR *dir;
>   int err;
> + int n;
>  
>   snprintf(path, PATH_MAX, 
> "%s/bus/event_source/devices/%s/events/",
>   sysfs__mountpoint(), pmu->name);
> @@ -2538,11 +2543,44 @@ static int test__pmu_events(struct test_suite *test 
> __maybe_unused, int subtest
>   struct evlist_test e = { .name = NULL, };
>   char name[2 * NAME_MAX + 1 + 12 + 3];
>   int test_ret;
> + bool is_event_parameterized = 0;
>  
>   /* Names containing . are special and cannot be used 
> directly */
>   if (strchr(ent->d_name, '.'))
>   continue;
>  
> + /* exclude parametrized ones (name contains '?') */
> + n = snprintf(pmu_event, sizeof(pmu_event), "%s%s", 
> path, ent->d_name);
> + if (n >= PATH_MAX) {
> + pr_err("pmu event name crossed PATH_MAX(%d) 
> size\n", PATH_MAX);
> + continue;
> + }
> +
> + file = fopen(pmu_event, "r");
> + if (!file) {
> + pr_debug("can't open pmu event file for 
> '%s'\n", ent->d_name);
> + ret = combine_test_results(ret, TEST_FAIL);
> + continue;
> + }
> +
> + if (getline(, , file) < 0) {
> + pr_debug(" pmu event: %s is a null event\n", 
> ent->d_name);
> + ret = combine_test_results(ret, TEST_FAIL);
> + continue;
> + }
> +
> + if (strchr(buf, '?'))
> + is_event_parameterized = 1;
> +
> + free(buf);
> + buf = NULL;
> + fclose(file);
> +
> + if (is_event_parameterized == 1) {
> + pr_debug("skipping parametrized PMU event: %s 
> which contains ?\n", pmu_event);
> + continue;
> + }
> +
>   snprintf(name, sizeof(name), "%s/event=%s/u", 
> pmu->name, ent->d_name);
>  
>   e.name  = name;


Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-12 Thread Athira Rajeev



> On 08-Sep-2023, at 7:48 PM, Athira Rajeev  wrote:
> 
> 
> 
>> On 08-Sep-2023, at 11:04 AM, Sachin Sant  wrote:
>> 
>> 
>> 
>>> On 07-Sep-2023, at 10:29 PM, Athira Rajeev  
>>> wrote:
>>> 
>>> Testcase "Parsing of all PMU events from sysfs" parse events for
>>> all PMUs, and not just cpu. In case of powerpc, the PowerVM
>>> environment supports events from hv_24x7 and hv_gpci PMU which
>>> is of example format like below:
>>> 
>>> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
>>> - hv_gpci/event,partition_id=?/
>>> 
>>> The value for "?" needs to be filled in depending on system
>>> configuration. It is better to skip these parametrized events
>>> in this test as it is done in:
>>> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
>>> parametrized events")' which handled a simialr instance with
>>> "all PMU test".
>>> 
>>> Fix parse-events test to skip parametrized events since
>>> it needs proper setup of the parameters.
>>> 
>>> Signed-off-by: Athira Rajeev 
>>> ---
>>> Changelog:
>>> v1 -> v2:
>>> Addressed review comments from Ian. Updated size of
>>> pmu event name variable and changed bool name which is
>>> used to skip the test.
>>> 
>> 
>> The patch fixes the reported issue.
>> 
>> 6.2: Parsing of all PMU events from sysfs  : Ok
>> 6.3: Parsing of given PMU events from sysfs: Ok
>> 
>> Tested-by: Sachin Sant 
>> 
>> - Sachin
> 
> Hi Sachin, Ian
> 
> Thanks for testing the patch

Hi Arnaldo

Can you please check and pull this if it looks good to go .

Thanks
Athira
> 
> Athira
> 
> 



Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-08 Thread Athira Rajeev



> On 08-Sep-2023, at 11:04 AM, Sachin Sant  wrote:
> 
> 
> 
>> On 07-Sep-2023, at 10:29 PM, Athira Rajeev  
>> wrote:
>> 
>> Testcase "Parsing of all PMU events from sysfs" parse events for
>> all PMUs, and not just cpu. In case of powerpc, the PowerVM
>> environment supports events from hv_24x7 and hv_gpci PMU which
>> is of example format like below:
>> 
>> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
>> - hv_gpci/event,partition_id=?/
>> 
>> The value for "?" needs to be filled in depending on system
>> configuration. It is better to skip these parametrized events
>> in this test as it is done in:
>> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
>> parametrized events")' which handled a simialr instance with
>> "all PMU test".
>> 
>> Fix parse-events test to skip parametrized events since
>> it needs proper setup of the parameters.
>> 
>> Signed-off-by: Athira Rajeev 
>> ---
>> Changelog:
>> v1 -> v2:
>> Addressed review comments from Ian. Updated size of
>> pmu event name variable and changed bool name which is
>> used to skip the test.
>> 
> 
> The patch fixes the reported issue.
> 
> 6.2: Parsing of all PMU events from sysfs  : Ok
> 6.3: Parsing of given PMU events from sysfs: Ok
> 
> Tested-by: Sachin Sant 
> 
> - Sachin

Hi Sachin, Ian

Thanks for testing the patch

Athira




Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-07 Thread Sachin Sant



> On 07-Sep-2023, at 10:29 PM, Athira Rajeev  
> wrote:
> 
> Testcase "Parsing of all PMU events from sysfs" parse events for
> all PMUs, and not just cpu. In case of powerpc, the PowerVM
> environment supports events from hv_24x7 and hv_gpci PMU which
> is of example format like below:
> 
> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
> - hv_gpci/event,partition_id=?/
> 
> The value for "?" needs to be filled in depending on system
> configuration. It is better to skip these parametrized events
> in this test as it is done in:
> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
> parametrized events")' which handled a simialr instance with
> "all PMU test".
> 
> Fix parse-events test to skip parametrized events since
> it needs proper setup of the parameters.
> 
> Signed-off-by: Athira Rajeev 
> ---
> Changelog:
> v1 -> v2:
> Addressed review comments from Ian. Updated size of
> pmu event name variable and changed bool name which is
> used to skip the test.
> 

The patch fixes the reported issue.

6.2: Parsing of all PMU events from sysfs  : Ok
6.3: Parsing of given PMU events from sysfs: Ok

Tested-by: Sachin Sant 

- Sachin

Re: [PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-07 Thread Ian Rogers
On Thu, Sep 7, 2023 at 9:59 AM Athira Rajeev
 wrote:
>
> Testcase "Parsing of all PMU events from sysfs" parse events for
> all PMUs, and not just cpu. In case of powerpc, the PowerVM
> environment supports events from hv_24x7 and hv_gpci PMU which
> is of example format like below:
>
> - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
> - hv_gpci/event,partition_id=?/
>
> The value for "?" needs to be filled in depending on system
> configuration. It is better to skip these parametrized events
> in this test as it is done in:
> 'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
> parametrized events")' which handled a simialr instance with
> "all PMU test".
>
> Fix parse-events test to skip parametrized events since
> it needs proper setup of the parameters.
>
> Signed-off-by: Athira Rajeev 

Tested-by: Ian Rogers 

Thanks,
Ian

> ---
> Changelog:
> v1 -> v2:
>  Addressed review comments from Ian. Updated size of
>  pmu event name variable and changed bool name which is
>  used to skip the test.
>
>  tools/perf/tests/parse-events.c | 38 +
>  1 file changed, 38 insertions(+)
>
> diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
> index 658fb9599d95..1ecaeceb69f8 100644
> --- a/tools/perf/tests/parse-events.c
> +++ b/tools/perf/tests/parse-events.c
> @@ -2514,9 +2514,14 @@ static int test__pmu_events(struct test_suite *test 
> __maybe_unused, int subtest
> while ((pmu = perf_pmus__scan(pmu)) != NULL) {
> struct stat st;
> char path[PATH_MAX];
> +   char pmu_event[PATH_MAX];
> +   char *buf = NULL;
> +   FILE *file;
> struct dirent *ent;
> +   size_t len = 0;
> DIR *dir;
> int err;
> +   int n;
>
> snprintf(path, PATH_MAX, 
> "%s/bus/event_source/devices/%s/events/",
> sysfs__mountpoint(), pmu->name);
> @@ -2538,11 +2543,44 @@ static int test__pmu_events(struct test_suite *test 
> __maybe_unused, int subtest
> struct evlist_test e = { .name = NULL, };
> char name[2 * NAME_MAX + 1 + 12 + 3];
> int test_ret;
> +   bool is_event_parameterized = 0;
>
> /* Names containing . are special and cannot be used 
> directly */
> if (strchr(ent->d_name, '.'))
> continue;
>
> +   /* exclude parametrized ones (name contains '?') */
> +   n = snprintf(pmu_event, sizeof(pmu_event), "%s%s", 
> path, ent->d_name);
> +   if (n >= PATH_MAX) {
> +   pr_err("pmu event name crossed PATH_MAX(%d) 
> size\n", PATH_MAX);
> +   continue;
> +   }
> +
> +   file = fopen(pmu_event, "r");
> +   if (!file) {
> +   pr_debug("can't open pmu event file for 
> '%s'\n", ent->d_name);
> +   ret = combine_test_results(ret, TEST_FAIL);
> +   continue;
> +   }
> +
> +   if (getline(, , file) < 0) {
> +   pr_debug(" pmu event: %s is a null event\n", 
> ent->d_name);
> +   ret = combine_test_results(ret, TEST_FAIL);
> +   continue;
> +   }
> +
> +   if (strchr(buf, '?'))
> +   is_event_parameterized = 1;
> +
> +   free(buf);
> +   buf = NULL;
> +   fclose(file);
> +
> +   if (is_event_parameterized == 1) {
> +   pr_debug("skipping parametrized PMU event: %s 
> which contains ?\n", pmu_event);
> +   continue;
> +   }
> +
> snprintf(name, sizeof(name), "%s/event=%s/u", 
> pmu->name, ent->d_name);
>
> e.name  = name;
> --
> 2.31.1
>


[PATCH V2] perf test: Fix parse-events tests to skip parametrized events

2023-09-07 Thread Athira Rajeev
Testcase "Parsing of all PMU events from sysfs" parse events for
all PMUs, and not just cpu. In case of powerpc, the PowerVM
environment supports events from hv_24x7 and hv_gpci PMU which
is of example format like below:

- hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
- hv_gpci/event,partition_id=?/

The value for "?" needs to be filled in depending on system
configuration. It is better to skip these parametrized events
in this test as it is done in:
'commit b50d691e50e6 ("perf test: Fix "all PMU test" to skip
parametrized events")' which handled a simialr instance with
"all PMU test".

Fix parse-events test to skip parametrized events since
it needs proper setup of the parameters.

Signed-off-by: Athira Rajeev 
---
Changelog:
v1 -> v2:
 Addressed review comments from Ian. Updated size of
 pmu event name variable and changed bool name which is
 used to skip the test.

 tools/perf/tests/parse-events.c | 38 +
 1 file changed, 38 insertions(+)

diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
index 658fb9599d95..1ecaeceb69f8 100644
--- a/tools/perf/tests/parse-events.c
+++ b/tools/perf/tests/parse-events.c
@@ -2514,9 +2514,14 @@ static int test__pmu_events(struct test_suite *test 
__maybe_unused, int subtest
while ((pmu = perf_pmus__scan(pmu)) != NULL) {
struct stat st;
char path[PATH_MAX];
+   char pmu_event[PATH_MAX];
+   char *buf = NULL;
+   FILE *file;
struct dirent *ent;
+   size_t len = 0;
DIR *dir;
int err;
+   int n;
 
snprintf(path, PATH_MAX, 
"%s/bus/event_source/devices/%s/events/",
sysfs__mountpoint(), pmu->name);
@@ -2538,11 +2543,44 @@ static int test__pmu_events(struct test_suite *test 
__maybe_unused, int subtest
struct evlist_test e = { .name = NULL, };
char name[2 * NAME_MAX + 1 + 12 + 3];
int test_ret;
+   bool is_event_parameterized = 0;
 
/* Names containing . are special and cannot be used 
directly */
if (strchr(ent->d_name, '.'))
continue;
 
+   /* exclude parametrized ones (name contains '?') */
+   n = snprintf(pmu_event, sizeof(pmu_event), "%s%s", 
path, ent->d_name);
+   if (n >= PATH_MAX) {
+   pr_err("pmu event name crossed PATH_MAX(%d) 
size\n", PATH_MAX);
+   continue;
+   }
+
+   file = fopen(pmu_event, "r");
+   if (!file) {
+   pr_debug("can't open pmu event file for 
'%s'\n", ent->d_name);
+   ret = combine_test_results(ret, TEST_FAIL);
+   continue;
+   }
+
+   if (getline(, , file) < 0) {
+   pr_debug(" pmu event: %s is a null event\n", 
ent->d_name);
+   ret = combine_test_results(ret, TEST_FAIL);
+   continue;
+   }
+
+   if (strchr(buf, '?'))
+   is_event_parameterized = 1;
+
+   free(buf);
+   buf = NULL;
+   fclose(file);
+
+   if (is_event_parameterized == 1) {
+   pr_debug("skipping parametrized PMU event: %s 
which contains ?\n", pmu_event);
+   continue;
+   }
+
snprintf(name, sizeof(name), "%s/event=%s/u", 
pmu->name, ent->d_name);
 
e.name  = name;
-- 
2.31.1