Re: livepatch: Implement separate coming and going module notifiers

From: Jessica Yu
Date: Fri Jan 29 2016 - 14:51:17 EST


+++ Steven Rostedt [29/01/16 14:29 -0500]:
On Fri, 29 Jan 2016 20:25:15 +0100 (CET)
Miroslav Benes <mbenes@xxxxxxx> wrote:

It is possible to achieve the same goal even with the notifiers. They are
processed synchronously in complete_formation(). So we can put our klp
hook after that, right? Or better, put it to load_module() after
complete_formation() call. There is an error handling code even today
(that is, parse_args() or mod_sysfs_setup() can fail). Moreover, we'll
have a hook there with Jessica's relocation rework patch set.

The problem with notifiers is that you don't know what is being called.
A function call directly in the code, where it will always be needed if
configured in, is a reasonable need to not use a notifier.

That's a pretty good reason. This bug popped up in the first place
due to a lack of clarity on which notifier gets called when.

Although, I have to admit, if live kernel patching is configured in,
it's not always needed to be called here, does it? With ftrace, the
call has to be done when ftrace is configured in regardless if tracing
is used or not.

Livepatch has to check if any of its patches affect the coming module,
so hardcoded or not it will still need to loop through the klp_patches
list like it does in the current notifiers.

Jessica