On Fri, Jan 29, 2016 at 03:08:23PM -0500, Steven Rostedt wrote: > On Fri, 29 Jan 2016 13:47:15 -0600 > Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote: > > > > > 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. > > > > For live patching it actually does need to be called for every module. > > We need to check if any previously loaded patches have any modifications > > which affect the module. > > > > But only if you are using the live kernel patching facility. My point > is, if I never use live kernel patching (which 99.9% of Linux users do > no use), then the call will basically be a nop. > > With ftrace, that's not the story. Even if you don't ever use the > facility (like 99.8% of Linux users do not use ;-) the function is > still not a nop. There's three calls needed for each module. > > 1) convert all the calls to mcount/fentry into a nop, and save > those locations in a table. They are all marked as disabled (not to be > used) > > 2) After module setup (where the notifiers are called), the locations > need to be enabled, otherwise ftrace would never work for that module. > > 3) On module exit, the locations must be removed, otherwise ftrace may > still try to write to non-existing code which could brick specific > network cards. > > These are done if ftrace is configured regardless if it is every > actually used by a user. > > Thus, my question is, what does live kernel patching need to do if I > never add a patch? Right, as you say it's basically a nop 99.99% of the time. But we still need to do the "are any patches loaded" check, so we still need the call into a livepatch function to do that. -- Josh -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html