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

jirka

Reply via email to