* [PATCH] perf vendor events intel: Add uncore_upi JSON support @ 2019-05-07 13:16 kan.liang 2019-05-13 21:29 ` Liang, Kan 2019-05-18 8:58 ` [tip:perf/core] " tip-bot for Kan Liang 0 siblings, 2 replies; 6+ messages in thread From: kan.liang @ 2019-05-07 13:16 UTC (permalink / raw) To: acme, jolsa, mingo, linux-kernel; +Cc: ak, Kan Liang From: Kan Liang <kan.liang@linux.intel.com> Perf cannot parse UPI events. #perf stat -e UPI_DATA_BANDWIDTH_TX event syntax error: 'UPI_DATA_BANDWIDTH_TX' \___ parser error Run 'perf list' for a list of valid events The JSON lists call the box UPI LL, while perf calls it upi. Add conversion support to json to convert the unit properly. Signed-off-by: Kan Liang <kan.liang@linux.intel.com> --- tools/perf/pmu-events/jevents.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c index 68c92bb..daaea50 100644 --- a/tools/perf/pmu-events/jevents.c +++ b/tools/perf/pmu-events/jevents.c @@ -235,6 +235,7 @@ static struct map { { "iMPH-U", "uncore_arb" }, { "CPU-M-CF", "cpum_cf" }, { "CPU-M-SF", "cpum_sf" }, + { "UPI LL", "uncore_upi" }, {} }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] perf vendor events intel: Add uncore_upi JSON support 2019-05-07 13:16 [PATCH] perf vendor events intel: Add uncore_upi JSON support kan.liang @ 2019-05-13 21:29 ` Liang, Kan 2019-05-13 22:05 ` Arnaldo Carvalho de Melo 2019-05-14 12:59 ` Arnaldo Carvalho de Melo 2019-05-18 8:58 ` [tip:perf/core] " tip-bot for Kan Liang 1 sibling, 2 replies; 6+ messages in thread From: Liang, Kan @ 2019-05-13 21:29 UTC (permalink / raw) To: acme, jolsa, mingo, linux-kernel; +Cc: ak Hi Arnaldo, Could you please apply this fix? Thanks, Kan On 5/7/2019 9:16 AM, kan.liang@linux.intel.com wrote: > From: Kan Liang <kan.liang@linux.intel.com> > > Perf cannot parse UPI events. > > #perf stat -e UPI_DATA_BANDWIDTH_TX > event syntax error: 'UPI_DATA_BANDWIDTH_TX' > \___ parser error > Run 'perf list' for a list of valid events > > The JSON lists call the box UPI LL, while perf calls it upi. > Add conversion support to json to convert the unit properly. > > Signed-off-by: Kan Liang <kan.liang@linux.intel.com> > --- > tools/perf/pmu-events/jevents.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c > index 68c92bb..daaea50 100644 > --- a/tools/perf/pmu-events/jevents.c > +++ b/tools/perf/pmu-events/jevents.c > @@ -235,6 +235,7 @@ static struct map { > { "iMPH-U", "uncore_arb" }, > { "CPU-M-CF", "cpum_cf" }, > { "CPU-M-SF", "cpum_sf" }, > + { "UPI LL", "uncore_upi" }, > {} > }; > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] perf vendor events intel: Add uncore_upi JSON support 2019-05-13 21:29 ` Liang, Kan @ 2019-05-13 22:05 ` Arnaldo Carvalho de Melo 2019-05-14 12:59 ` Arnaldo Carvalho de Melo 1 sibling, 0 replies; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2019-05-13 22:05 UTC (permalink / raw) To: Liang, Kan, jolsa, mingo, linux-kernel; +Cc: ak On May 13, 2019 6:29:30 PM GMT-03:00, "Liang, Kan" <kan.liang@linux.intel.com> wrote: >Hi Arnaldo, > >Could you please apply this fix? I think I merged this today, will check. Thanks - Arnaldo > >Thanks, >Kan > >On 5/7/2019 9:16 AM, kan.liang@linux.intel.com wrote: >> From: Kan Liang <kan.liang@linux.intel.com> >> >> Perf cannot parse UPI events. >> >> #perf stat -e UPI_DATA_BANDWIDTH_TX >> event syntax error: 'UPI_DATA_BANDWIDTH_TX' >> \___ parser error >> Run 'perf list' for a list of valid events >> >> The JSON lists call the box UPI LL, while perf calls it upi. >> Add conversion support to json to convert the unit properly. >> >> Signed-off-by: Kan Liang <kan.liang@linux.intel.com> >> --- >> tools/perf/pmu-events/jevents.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/tools/perf/pmu-events/jevents.c >b/tools/perf/pmu-events/jevents.c >> index 68c92bb..daaea50 100644 >> --- a/tools/perf/pmu-events/jevents.c >> +++ b/tools/perf/pmu-events/jevents.c >> @@ -235,6 +235,7 @@ static struct map { >> { "iMPH-U", "uncore_arb" }, >> { "CPU-M-CF", "cpum_cf" }, >> { "CPU-M-SF", "cpum_sf" }, >> + { "UPI LL", "uncore_upi" }, >> {} >> }; >> >> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] perf vendor events intel: Add uncore_upi JSON support 2019-05-13 21:29 ` Liang, Kan 2019-05-13 22:05 ` Arnaldo Carvalho de Melo @ 2019-05-14 12:59 ` Arnaldo Carvalho de Melo 2019-05-14 14:42 ` Liang, Kan 1 sibling, 1 reply; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2019-05-14 12:59 UTC (permalink / raw) To: Kan Liang Cc: Jiri Olsa, Ingo Molnar, linux-kernel, Andi Kleen, linux-perf-users Em Mon, May 13, 2019 at 05:29:30PM -0400, Liang, Kan escreveu: > Hi Arnaldo, > > Could you please apply this fix? Sure, please next time specify which arch this should be tested on, as I tried it here on a skylake notebook (lenovo t480s) before your patch and got: [root@quaco ~]# perf stat -e UPI_DATA_BANDWIDTH_TX event syntax error: 'UPI_DATA_BANDWIDTH_TX' \___ parser error Run 'perf list' for a list of valid events Usage: perf stat [<options>] [<command>] -e, --event <event> event selector. use 'perf list' to list available events [root@quaco ~]# Then, looking at 'perf list' /UPI I got just these: Pipeline: <SNIP> UPI [Uops Per Instruction] Which already probably told me a bit about what this is about, its under the "METRIC groups" header After your patch applied I get: [root@quaco ~]# perf stat -e UPI_DATA_BANDWIDTH_TX event syntax error: 'UPI_DATA_BANDWIDTH_TX' \___ parser error Run 'perf list' for a list of valid events Usage: perf stat [<options>] [<command>] -e, --event <event> event selector. use 'perf list' to list available events [root@quaco ~]# I.e. nothing seem to have changed, but then, to further look at this I tried: # strings ~/bin/perf | grep -i upi <SNIP> Data Response packets that go direct to Intel UPI. Unit: uncore_upi Counts Data Response (DRS) packets that attempted to go direct to Intel Ultra Path Interconnect (UPI) bypassing the CHA Cycles Intel UPI is in L1 power mode (shutdown). Unit: uncore_upi Counts cycles when the Intel Ultra Path Interconnect (UPI) is in L1 power mode. L1 is a mode that totally shuts down the UPI link. Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another, this event only coutns when both links are shutdown Cycles the Rx of the Intel UPI is in L0p power mode. Unit: uncore_upi Counts cycles when the the receive side (Rx) of the Intel Ultra Path Interconnect(UPI) is in L0p power mode. L0p is a mode where we disable 60% of the UPI lanes, decreasing our bandwidth in order to save power FLITs received which bypassed the Slot0 Receive Buffer. Unit: uncore_upi Valid data FLITs received from any slot. Unit: uncore_upi <SNIP> So this "UPI" TLA, here, should not mean "UOPS per instruction", but Intel's "Ultra Path Interconnect", right? Lemme update the changelog... /me googles... https://en.wikipedia.org/wiki/Intel_Ultra_Path_Interconnect So I'd need a Skylake-SP test machine to test this... Please add such notes in the future, helps reviewing and testing this. At some point I'd like to have 'perf test' test such stuff with a Requires_cpuid/arch, etc. - Arnaldo > Thanks, > Kan > > On 5/7/2019 9:16 AM, kan.liang@linux.intel.com wrote: > > From: Kan Liang <kan.liang@linux.intel.com> > > > > Perf cannot parse UPI events. > > > > #perf stat -e UPI_DATA_BANDWIDTH_TX > > event syntax error: 'UPI_DATA_BANDWIDTH_TX' > > \___ parser error > > Run 'perf list' for a list of valid events > > > > The JSON lists call the box UPI LL, while perf calls it upi. > > Add conversion support to json to convert the unit properly. > > > > Signed-off-by: Kan Liang <kan.liang@linux.intel.com> > > --- > > tools/perf/pmu-events/jevents.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c > > index 68c92bb..daaea50 100644 > > --- a/tools/perf/pmu-events/jevents.c > > +++ b/tools/perf/pmu-events/jevents.c > > @@ -235,6 +235,7 @@ static struct map { > > { "iMPH-U", "uncore_arb" }, > > { "CPU-M-CF", "cpum_cf" }, > > { "CPU-M-SF", "cpum_sf" }, > > + { "UPI LL", "uncore_upi" }, > > {} > > }; > > -- - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] perf vendor events intel: Add uncore_upi JSON support 2019-05-14 12:59 ` Arnaldo Carvalho de Melo @ 2019-05-14 14:42 ` Liang, Kan 0 siblings, 0 replies; 6+ messages in thread From: Liang, Kan @ 2019-05-14 14:42 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, Kan Liang Cc: Jiri Olsa, Ingo Molnar, linux-kernel, Andi Kleen, linux-perf-users On 5/14/2019 8:59 AM, Arnaldo Carvalho de Melo wrote: > Em Mon, May 13, 2019 at 05:29:30PM -0400, Liang, Kan escreveu: >> Hi Arnaldo, >> >> Could you please apply this fix? > > Sure, please next time specify which arch this should be tested on, as I > tried it here on a skylake notebook (lenovo t480s) before your patch and > got: > > [root@quaco ~]# perf stat -e UPI_DATA_BANDWIDTH_TX > event syntax error: 'UPI_DATA_BANDWIDTH_TX' > \___ parser error > Run 'perf list' for a list of valid events > > Usage: perf stat [<options>] [<command>] > > -e, --event <event> event selector. use 'perf list' to list available events > [root@quaco ~]# > > Then, looking at 'perf list' /UPI I got just these: > > Pipeline: > <SNIP> > UPI > [Uops Per Instruction] > > Which already probably told me a bit about what this is about, its under > the "METRIC groups" header > > After your patch applied I get: > > [root@quaco ~]# perf stat -e UPI_DATA_BANDWIDTH_TX > event syntax error: 'UPI_DATA_BANDWIDTH_TX' > \___ parser error > Run 'perf list' for a list of valid events > > Usage: perf stat [<options>] [<command>] > > -e, --event <event> event selector. use 'perf list' to list available events > [root@quaco ~]# > > I.e. nothing seem to have changed, but then, to further look at this I > tried: > > # strings ~/bin/perf | grep -i upi > <SNIP> > Data Response packets that go direct to Intel UPI. Unit: uncore_upi > Counts Data Response (DRS) packets that attempted to go direct to Intel Ultra Path Interconnect (UPI) bypassing the CHA > Cycles Intel UPI is in L1 power mode (shutdown). Unit: uncore_upi > Counts cycles when the Intel Ultra Path Interconnect (UPI) is in L1 power mode. L1 is a mode that totally shuts down the UPI link. Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another, this event only coutns when both links are shutdown > Cycles the Rx of the Intel UPI is in L0p power mode. Unit: uncore_upi > Counts cycles when the the receive side (Rx) of the Intel Ultra Path Interconnect(UPI) is in L0p power mode. L0p is a mode where we disable 60% of the UPI lanes, decreasing our bandwidth in order to save power > FLITs received which bypassed the Slot0 Receive Buffer. Unit: uncore_upi > Valid data FLITs received from any slot. Unit: uncore_upi > <SNIP> > > So this "UPI" TLA, here, should not mean "UOPS per instruction", but > Intel's "Ultra Path Interconnect", right? Lemme update the changelog... > Right. > /me googles... https://en.wikipedia.org/wiki/Intel_Ultra_Path_Interconnect > > So I'd need a Skylake-SP test machine to test this... > > Please add such notes in the future, helps reviewing and testing this. > Sorry for the inconvenience. > At some point I'd like to have 'perf test' test such stuff with a > Requires_cpuid/arch, etc. We will improve our internal test to cover this issue. I will think about how to enhance the 'perf test'. Thanks, Kan > > - Arnaldo > >> Thanks, >> Kan >> >> On 5/7/2019 9:16 AM, kan.liang@linux.intel.com wrote: >>> From: Kan Liang <kan.liang@linux.intel.com> >>> >>> Perf cannot parse UPI events. >>> >>> #perf stat -e UPI_DATA_BANDWIDTH_TX >>> event syntax error: 'UPI_DATA_BANDWIDTH_TX' >>> \___ parser error >>> Run 'perf list' for a list of valid events >>> >>> The JSON lists call the box UPI LL, while perf calls it upi. >>> Add conversion support to json to convert the unit properly. >>> >>> Signed-off-by: Kan Liang <kan.liang@linux.intel.com> >>> --- >>> tools/perf/pmu-events/jevents.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c >>> index 68c92bb..daaea50 100644 >>> --- a/tools/perf/pmu-events/jevents.c >>> +++ b/tools/perf/pmu-events/jevents.c >>> @@ -235,6 +235,7 @@ static struct map { >>> { "iMPH-U", "uncore_arb" }, >>> { "CPU-M-CF", "cpum_cf" }, >>> { "CPU-M-SF", "cpum_sf" }, >>> + { "UPI LL", "uncore_upi" }, >>> {} >>> }; >>> > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [tip:perf/core] perf vendor events intel: Add uncore_upi JSON support 2019-05-07 13:16 [PATCH] perf vendor events intel: Add uncore_upi JSON support kan.liang 2019-05-13 21:29 ` Liang, Kan @ 2019-05-18 8:58 ` tip-bot for Kan Liang 1 sibling, 0 replies; 6+ messages in thread From: tip-bot for Kan Liang @ 2019-05-18 8:58 UTC (permalink / raw) To: linux-tip-commits Cc: linux-kernel, hpa, acme, kan.liang, tglx, mingo, ak, jolsa Commit-ID: bf6d18cffa5f26bd5dc71485c2a2ad0c42a0ce60 Gitweb: https://git.kernel.org/tip/bf6d18cffa5f26bd5dc71485c2a2ad0c42a0ce60 Author: Kan Liang <kan.liang@linux.intel.com> AuthorDate: Tue, 7 May 2019 06:16:31 -0700 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Wed, 15 May 2019 16:36:47 -0300 perf vendor events intel: Add uncore_upi JSON support Perf cannot parse UPI (Intel's "Ultra Path Interconnect" [1]) events. # perf stat -e UPI_DATA_BANDWIDTH_TX event syntax error: 'UPI_DATA_BANDWIDTH_TX' \___ parser error Run 'perf list' for a list of valid events The JSON lists call the box UPI LL, while perf calls it upi. Add conversion support to JSON to convert the unit properly. Committer notes: [1] https://en.wikipedia.org/wiki/Intel_Ultra_Path_Interconnect "The Intel Ultra Path Interconnect (UPI) is a point-to-point processor interconnect developed by Intel which replaced the Intel QuickPath Interconnect (QPI) in Xeon Skylake-SP platforms starting in 2017. UPI is a low-latency coherent interconnect for scalable multiprocessor systems with a shared address space. It uses a directory-based home snoop coherency protocol with a transfer speed of up to 10.4 GT/s. Supporting processors typically have two or three UPI links." Signed-off-by: Kan Liang <kan.liang@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Link: http://lkml.kernel.org/r/1557234991-130456-1-git-send-email-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/pmu-events/jevents.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c index 68c92bb599ee..daaea5003d4a 100644 --- a/tools/perf/pmu-events/jevents.c +++ b/tools/perf/pmu-events/jevents.c @@ -235,6 +235,7 @@ static struct map { { "iMPH-U", "uncore_arb" }, { "CPU-M-CF", "cpum_cf" }, { "CPU-M-SF", "cpum_sf" }, + { "UPI LL", "uncore_upi" }, {} }; ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-05-18 8:59 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-05-07 13:16 [PATCH] perf vendor events intel: Add uncore_upi JSON support kan.liang 2019-05-13 21:29 ` Liang, Kan 2019-05-13 22:05 ` Arnaldo Carvalho de Melo 2019-05-14 12:59 ` Arnaldo Carvalho de Melo 2019-05-14 14:42 ` Liang, Kan 2019-05-18 8:58 ` [tip:perf/core] " tip-bot for Kan Liang
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.