Re: [PATCH] tracing: Propagate errors from remote event bulk updates

Vincent Donnefort <[email protected]>
Newsgroups org.kernel.vger.linux-trace-kernel
Message-ID <[email protected]>
On Wed, Jul 15, 2026 at 07:02:01AM +0000, Jackie Liu wrote:
> 2026年7月15日 14:44, "Vincent Donnefort" <[email protected] mailto:[email protected]?to=%22Vincent%20Donnefort%22%20%3Cvdonnefort%40google.com%3E > 写到:
> 
> 
> > 
> > On Wed, Jul 15, 2026 at 02:04:48PM +0800, Jackie Liu wrote:
> > 
> > > 
> > > From: Jackie Liu <[email protected]>
> > >  
> > >  remote_events_dir_enable_write() ignores the return value from
> > >  trace_remote_enable_event(). If a remote rejects an event state change,
> > >  the write therefore reports success even though the affected event remains
> > >  in its previous state.
> > >  
> > >  Keep trying all events, but retain and return the first error. This matches
> > >  __ftrace_set_clr_event_nolock(), which permits partial updates while
> > >  notifying userspace when an operation fails.
> > >  
> > >  Fixes: 775cb093bc50 ("tracing: Add events/ root files to trace remotes")
> > >  Assisted-by: Codex:gpt-5.6-sol
> > >  Signed-off-by: Jackie Liu <[email protected]>
> > > 
> > I have sent a related improvement for that here [1]
> > 
> > [1] https://lore.kernel.org/all/[email protected]/
> 
> Thanks for the pointer.
> 
> I checked the v2 series. Patch 02/18 handles registration failure cleanup,
> and patch 03/18 changes the boolean parsing in
> remote_events_dir_enable_write(), but the loop still ignores errors from
> trace_remote_enable_event().
> 
> Would you prefer this fix to be folded into your series, or should I resend
> a v2 rebased on top of it?

Ha yes my bad. Then no, no need to send it separately. 

> 
> -- 
> Jackie Liu
> 
> > 
> > > 
> > > ---
> > >  kernel/trace/trace_remote.c | 13 ++++++++++++-
> > >  1 file changed, 12 insertions(+), 1 deletion(-)
> > >  
> > >  diff --git a/kernel/trace/trace_remote.c b/kernel/trace/trace_remote.c
> > >  index 0f6ef5c36d84..5212e685f0a3 100644
> > >  --- a/kernel/trace/trace_remote.c
> > >  +++ b/kernel/trace/trace_remote.c
> > >  @@ -1149,11 +1149,22 @@ static ssize_t remote_events_dir_enable_write(struct file *filp, const char __us
> > >  guard(mutex)(&remote->lock);
> > >  
> > >  for (i = 0; i < remote->nr_events; i++) {
> > >  + int eret;
> > >  struct remote_event *evt = &remote->events[i];

Could you declare ert after? I have tried to use the reverse christmas tree
everywhere in the trace remote code.

> > >  
> > >  - trace_remote_enable_event(remote, evt, enable);
> > >  + eret = trace_remote_enable_event(remote, evt, enable);
> > >  + /*
> > >  + * Save the first error and return that. Some events
> > >  + * may still have been enabled, but let the user
> > >  + * know that something went wrong.
> > >  + */
> > >  + if (!ret && eret)
> > >  + ret = eret;
> > >  }
> > >  
> > >  + if (ret)
> > >  + return ret;
> > >  +
> > >  return count;
> > >  }
> > >  
> > >  -- 
> > >  2.54.0
> > >
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.