From: Jiri Olsa <jolsa@redhat.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Milind Chabbi <chabbi.milind@gmail.com>,
lkml <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
David Ahern <dsahern@gmail.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Frederic Weisbecker <frederic@kernel.org>
Subject: [PATCH 3/2] perf/hw_breakpoint: Remove superfluous bp->attr.disabled = 0 new attr has disabled set
Date: Mon, 6 Aug 2018 17:08:36 +0200 [thread overview]
Message-ID: <20180806150836.GD16446@krava> (raw)
In-Reply-To: <20180806132353.GA7463@krava>
On Mon, Aug 06, 2018 at 03:23:53PM +0200, Jiri Olsa wrote:
> On Mon, Aug 06, 2018 at 02:48:40PM +0200, Oleg Nesterov wrote:
> > On 08/06, Jiri Olsa wrote:
> > >
> > > We need to change the breakpoint even if the attr with
> > > new fields has disabled set to true.
> >
> > Agreed... The patch looks fine to me, but I have a question
> >
> > > int modify_user_hw_breakpoint(struct perf_event *bp, struct perf_event_attr *attr)
> > > {
> > > + int err;
> > > +
> > > /*
> > > * modify_user_hw_breakpoint can be invoked with IRQs disabled and hence it
> > > * will not be possible to raise IPIs that invoke __perf_event_disable.
> > > @@ -520,11 +522,11 @@ int modify_user_hw_breakpoint(struct perf_event *bp, struct perf_event_attr *att
> > > else
> > > perf_event_disable(bp);
> > >
> > > - if (!attr->disabled) {
> > > - int err = modify_user_hw_breakpoint_check(bp, attr, false);
> > > + err = modify_user_hw_breakpoint_check(bp, attr, false);
> > > + if (err)
> > > + return err;
> > >
> > > - if (err)
> > > - return err;
> > > + if (!attr->disabled) {
> > > perf_event_enable(bp);
> > > bp->attr.disabled = 0;
> >
> > Afaics you do not need to clear attr.disabled, modify_user_hw_breakpoint_check()
> > updates it if err = 0. So I think
> >
> > if (!bp->attr.disabled)
> > perf_event_enable(bp);
> >
> > will look a bit better.
> >
> >
> > But, with or without this fix, shouldn't we set .disabled = 1 if modify_() fails?
> > IIUC this doesn't matter, bp->attr.disabled is not really used anyway, but looks a
> > bit confusing.
> >
>
> yea, I was looking on that, but as u said it makes no difference
> and I wanted to keep the patch as simple as possible ;-)
>
> I'll send something on top of this patch
like this ;-)
jirka
---
Once the breakpoint was succesfully modified, the attr->disabled
value is in bp->attr.disabled. So there's no reason to set it
again, removing that.
Link: http://lkml.kernel.org/n/tip-v5oaellzsmyszv3rfucuxkp0@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
kernel/events/hw_breakpoint.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c
index fb229d9c7f3c..3e560d7609fd 100644
--- a/kernel/events/hw_breakpoint.c
+++ b/kernel/events/hw_breakpoint.c
@@ -526,10 +526,9 @@ int modify_user_hw_breakpoint(struct perf_event *bp, struct perf_event_attr *att
if (err)
return err;
- if (!attr->disabled) {
+ if (!attr->disabled)
perf_event_enable(bp);
- bp->attr.disabled = 0;
- }
+
return 0;
}
EXPORT_SYMBOL_GPL(modify_user_hw_breakpoint);
--
2.17.1
next prev parent reply other threads:[~2018-08-06 15:08 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-06 10:12 [PATCH 0/2] perf/hw_breakpoint: Fix breakpoint modify Jiri Olsa
2018-08-06 10:12 ` [PATCH 1/2] perf tests: Add breakpoint modify test Jiri Olsa
2018-08-06 10:12 ` [PATCH 2/2] perf/hw_breakpoint: Modify breakpoint even if the new attr has disabled set Jiri Olsa
2018-08-06 12:48 ` Oleg Nesterov
2018-08-06 13:07 ` Oleg Nesterov
2018-08-06 13:37 ` Jiri Olsa
2018-08-06 13:49 ` Oleg Nesterov
2018-08-06 14:21 ` Jiri Olsa
2018-08-06 13:23 ` Jiri Olsa
2018-08-06 13:46 ` Oleg Nesterov
2018-08-06 15:08 ` Jiri Olsa [this message]
2018-08-06 16:34 ` [PATCH 3/2] perf/hw_breakpoint: Remove superfluous bp->attr.disabled = 0 " Oleg Nesterov
2018-08-07 8:16 ` Jiri Olsa
2018-08-07 9:10 ` Oleg Nesterov
2018-08-07 14:39 ` Jiri Olsa
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=20180806150836.GD16446@krava \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=chabbi.milind@gmail.com \
--cc=dsahern@gmail.com \
--cc=frederic@kernel.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=oleg@redhat.com \
/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.