All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: John Garry <john.g.garry@oracle.com>
Cc: Ian Rogers <irogers@google.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] perf jevents: Raise exception for no definition of a arch std event
Date: Mon, 21 Aug 2023 10:01:51 -0300	[thread overview]
Message-ID: <ZONgPy7pK7Qc7Cc6@kernel.org> (raw)
In-Reply-To: <dd4bc3fe-5b8e-6e64-bcec-29263df43086@oracle.com>

Em Mon, Aug 21, 2023 at 11:46:20AM +0100, John Garry escreveu:
> On 10/08/2023 20:27, Ian Rogers wrote:
> > On Wed, Aug 9, 2023 at 10:11 PM Ilkka Koskinen
> > <ilkka@os.amperecomputing.com> wrote:
> > > 
> > > 
> > > Hi John,
> > > 
> > > On Mon, 7 Aug 2023, John Garry wrote:
> > > > Recently Ilkka reported that the JSONs for the AmpereOne arm64-based
> > > > platform included a dud event which referenced a non-existent arch std
> > > > event [0].
> > > 
> > > I wish I had found the bug in my patch a long time ago but, in fact, it
> > > was Dave Kleikamp who initially pointed it out to me and figured out the
> > > difference between jevents.c and jevents.py when porting the patch to 5.15
> > > kernel.
> > > 
> > > https://urldefense.com/v3/__http://lists.infradead.org/pipermail/linux-arm-kernel/2023-June/844874.html__;!!ACWV5N9M2RV99hQ!It9EhKK4s2uBUJyQvLg-ruUfENAA6Sw7TWVo_hF8XmFoQ6q565iYafTnN-yoBNh3EQ1IFa2tHknUjNHs5dI$
> > > 
> > > > 
> > > > Previously in the times of jevents.c, we would raise an exception for this.
> > > > 
> > > > This is still invalid, even though the current code just ignores such an
> > > > event.
> > > > 
> > > > Re-introduce code to raise an exception for when no definition exists to
> > > > help catch as many invalid JSONs as possible.
> > > > 
> > > > [0] https://urldefense.com/v3/__https://lore.kernel.org/linux-perf-users/9e851e2a-26c7-ba78-cb20-be4337b2916a@oracle.com/__;!!ACWV5N9M2RV99hQ!It9EhKK4s2uBUJyQvLg-ruUfENAA6Sw7TWVo_hF8XmFoQ6q565iYafTnN-yoBNh3EQ1IFa2tHknU_t28TiE$
> > > > 
> > > > Signed-off-by: John Garry <john.g.garry@oracle.com>
> > > 
> > > Thanks for the patch! I quickly tested it and it worked as expected. Just
> > > in case this is needed:
> > > 
> > > Tested-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
> > 
> > Reviewed-by: Ian Rogers <irogers@google.com>
> 
> Hi Arnaldo,
> 
> Can you consider applying this patch along with https://lore.kernel.org/linux-perf-users/CAP-5=fX2uE=B_Vb90nn5EV0mw+AJBpjDecP9w29OUn=j7HKPPg@mail.gmail.com/
> 
> I think that we should expect another version of that series with changes
> elsewhere.

Done, thanks for the ping.

- Arnaldo
 
> Thanks,
> John
> 
> > 
> > Thanks,
> > Ian
> > 
> > > Cheers, Ilkka
> > > 
> > > > ---
> > > > Please do not apply before [0], above.
> > > > 
> > > > diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py
> > > > index 8cd561aa606a..98cccc3fcbbd 100755
> > > > --- a/tools/perf/pmu-events/jevents.py
> > > > +++ b/tools/perf/pmu-events/jevents.py
> > > > @@ -347,12 +347,15 @@ class JsonEvent:
> > > >        if self.desc and not self.desc.endswith('. '):
> > > >          self.desc += '. '
> > > >        self.desc = (self.desc if self.desc else '') + ('Unit: ' + self.pmu + ' ')
> > > > -    if arch_std and arch_std.lower() in _arch_std_events:
> > > > -      event = _arch_std_events[arch_std.lower()].event
> > > > -      # Copy from the architecture standard event to self for undefined fields.
> > > > -      for attr, value in _arch_std_events[arch_std.lower()].__dict__.items():
> > > > -        if hasattr(self, attr) and not getattr(self, attr):
> > > > -          setattr(self, attr, value)
> > > > +    if arch_std:
> > > > +      if arch_std.lower() in _arch_std_events:
> > > > +        event = _arch_std_events[arch_std.lower()].event
> > > > +        # Copy from the architecture standard event to self for undefined fields.
> > > > +        for attr, value in _arch_std_events[arch_std.lower()].__dict__.items():
> > > > +          if hasattr(self, attr) and not getattr(self, attr):
> > > > +            setattr(self, attr, value)
> > > > +      else:
> > > > +        raise argparse.ArgumentTypeError('Cannot find arch std event:', arch_std)
> > > > 
> > > >      self.event = real_event(self.name, event)
> > > > 
> > > > --
> > > > 2.35.3
> > > > 
> > > > 
> 

-- 

- Arnaldo

  reply	other threads:[~2023-08-21 13:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-07 11:16 [PATCH] perf jevents: Raise exception for no definition of a arch std event John Garry
2023-08-10  5:10 ` Ilkka Koskinen
2023-08-10 19:27   ` Ian Rogers
2023-08-21 10:46     ` John Garry
2023-08-21 13:01       ` Arnaldo Carvalho de Melo [this message]
2023-08-26 19:30         ` Ilkka Koskinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZONgPy7pK7Qc7Cc6@kernel.org \
    --to=acme@kernel.org \
    --cc=ilkka@os.amperecomputing.com \
    --cc=irogers@google.com \
    --cc=john.g.garry@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.