On Wed 2019-10-09 10:26:54, Steven Rostedt wrote: > Petr Mladek <pmla...@suse.com> wrote: > I think Joe's approach is much easier to understand and implement. The > "ftrace_enabled" is a global flag, and affects all things ftrace (the > function bindings). What this patch was doing, was what you said. Make > ftrace_enabled only affect the ftrace_ops without the "PERMANENT" flag > set. But that is complex and requires a bit more accounting in the > ftrace system. Something I think we should try to avoid.
>From my POV, the fact that livepatches make use of ftrace handlers is just an implementation detail. Ideally, users should not know about it. The livepatch handlers should be handled special way and should not be affected by the ftrace sysfs interface. And ideally, the ftrace sysfs interface should still be available for other ftrace users. I would understand if this would be too complicated and we would need to find a compromise. > What we are now proposing, is that if "ftrace_enabled" is not set, the > register_ftrace_function() will fail if the ftrace_ops passed to it has > the PERMANENT flag set (which would cause live patching to fail to > load). >From the livepatch point of view it would be more reliable if ftrace_ops with PERMANENT flag would force "ftrace_enabled" to be always true. It will make the flag unusable for other ftrace users. But it will be already be the case when it can't be disabled. Best Regards, Petr