From: Joel Fernandes <joel@joelfernandes.org>
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
"Frank Ch. Eigler" <fche@redhat.com>,
Jessica Yu <jeyu@kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Josh Poimboeuf <jpoimboe@redhat.com>,
jikos@kernel.org, mbenes@suse.cz, Petr Mladek <pmladek@suse.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrew Morton <akpm@linux-foundation.org>,
Robert Richter <rric@kernel.org>, rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@redhat.com>, Martin KaFai Lau <kafai@fb.com>,
Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>,
paulmck <paulmck@linux.ibm.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
oprofile-list@lists.sf.net, netdev <netdev@vger.kernel.org>,
bpf@vger.kernel.org
Subject: Re: [PATCH 2/3] module: Fix up module_notifier return values.
Date: Mon, 24 Jun 2019 11:52:13 -0400 [thread overview]
Message-ID: <20190624155213.GB261936@google.com> (raw)
In-Reply-To: <320564860.243.1561384864186.JavaMail.zimbra@efficios.com>
On Mon, Jun 24, 2019 at 10:01:04AM -0400, Mathieu Desnoyers wrote:
> ----- On Jun 24, 2019, at 5:18 AM, Peter Zijlstra peterz@infradead.org wrote:
>
> > While auditing all module notifiers I noticed a whole bunch of fail
> > wrt the return value. Notifiers have a 'special' return semantics.
> >
> > Cc: Robert Richter <rric@kernel.org>
> > Cc: Steven Rostedt <rostedt@goodmis.org>
> > Cc: Ingo Molnar <mingo@redhat.com>
> > Cc: Alexei Starovoitov <ast@kernel.org>
> > Cc: Daniel Borkmann <daniel@iogearbox.net>
> > Cc: Martin KaFai Lau <kafai@fb.com>
> > Cc: Song Liu <songliubraving@fb.com>
> > Cc: Yonghong Song <yhs@fb.com>
> > Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> > Cc: "Paul E. McKenney" <paulmck@linux.ibm.com>
> > Cc: "Joel Fernandes (Google)" <joel@joelfernandes.org>
> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: oprofile-list@lists.sf.net
> > Cc: linux-kernel@vger.kernel.org
> > Cc: netdev@vger.kernel.org
> > Cc: bpf@vger.kernel.org
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
>
> Thanks Peter for looking into this, especially considering your
> endless love for kernel modules! ;)
>
> It's not directly related to your changes, but I notice that
> kernel/trace/trace_printk.c:hold_module_trace_bprintk_format()
> appears to leak memory. Am I missing something ?
Could you elaborate? Do you mean there is no MODULE_STATE_GOING notifier
check? If that's what you mean then I agree, there should be some place
where the format structures are freed when the module is unloaded no?
>
> With respect to your changes:
> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Looks good to me too.
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Could we CC stable so that the fix is propagated to older kernels?
thanks,
- Joel
> I have a similar erroneous module notifier return value pattern
> in lttng-modules as well. I'll go fix it right away. CCing
> Frank Eigler from SystemTAP which AFAIK use a copy of
> lttng-tracepoint.c in their project, which should be fixed
> as well. I'm pasting the lttng-modules fix below.
>
> Thanks!
>
> Mathieu
>
> --
>
> commit 5eac9d146a7d947f0f314c4f7103c92cbccaeaf3
> Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> Date: Mon Jun 24 09:43:45 2019 -0400
>
> Fix: lttng-tracepoint module notifier should return NOTIFY_OK
>
> Module notifiers should return NOTIFY_OK on success rather than the
> value 0. The return value 0 does not seem to have any ill side-effects
> in the notifier chain caller, but it is preferable to respect the API
> requirements in case this changes in the future.
>
> Notifiers can encapsulate a negative errno value with
> notifier_from_errno(), but this is not needed by the LTTng tracepoint
> notifier.
>
> The approach taken in this notifier is to just print a console warning
> on error, because tracing failure should not prevent loading a module.
> So we definitely do not want to stop notifier iteration. Returning
> an error without stopping iteration is not really that useful, because
> only the return value of the last callback is returned to notifier chain
> caller.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
>
> diff --git a/lttng-tracepoint.c b/lttng-tracepoint.c
> index bbb2c7a4..8298b397 100644
> --- a/lttng-tracepoint.c
> +++ b/lttng-tracepoint.c
> @@ -256,7 +256,7 @@ int lttng_tracepoint_coming(struct tp_module *tp_mod)
> }
> }
> mutex_unlock(<tng_tracepoint_mutex);
> - return 0;
> + return NOTIFY_OK;
> }
>
> static
>
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com
next prev parent reply other threads:[~2019-06-24 15:52 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-24 9:18 [PATCH 0/3] Propagate module notifier errors Peter Zijlstra
2019-06-24 9:18 ` [PATCH 1/3] notifier: Fix broken error handling pattern Peter Zijlstra
2019-06-24 22:21 ` Josh Poimboeuf
2019-06-25 7:38 ` Peter Zijlstra
2019-06-25 12:13 ` Josh Poimboeuf
2019-06-25 13:22 ` Peter Zijlstra
2019-06-24 9:18 ` [PATCH 2/3] module: Fix up module_notifier return values Peter Zijlstra
2019-06-24 14:01 ` Mathieu Desnoyers
2019-06-24 15:52 ` Joel Fernandes [this message]
2019-06-24 17:50 ` Mathieu Desnoyers
2019-06-24 20:58 ` Frank Ch. Eigler
2019-06-25 7:42 ` Peter Zijlstra
2019-07-04 12:48 ` Robert Richter
2019-07-04 12:34 ` Robert Richter
2019-06-24 9:18 ` [PATCH 3/3] module: Properly propagate MODULE_STATE_COMING failure Peter Zijlstra
2019-06-24 11:07 ` Peter Zijlstra
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=20190624155213.GB261936@google.com \
--to=joel@joelfernandes.org \
--cc=akpm@linux-foundation.org \
--cc=ard.biesheuvel@linaro.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=fche@redhat.com \
--cc=jeyu@kernel.org \
--cc=jikos@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=kafai@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mbenes@suse.cz \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=oprofile-list@lists.sf.net \
--cc=paulmck@linux.ibm.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=rric@kernel.org \
--cc=songliubraving@fb.com \
--cc=tglx@linutronix.de \
--cc=yhs@fb.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.