With using ftrace optimization, kprobes on the mcount callingaddress, use ftrace's mcount call instead of breakpoint.Furthermore, this optimization works with preemptive kernelnot like as current jump-based optimization. Of cource,this feature works only if the probe is on mcount call.

Only if kprobe.break_handler is set, that probe is notoptimized with ftrace (nor put on ftrace). The reason why thislimitation comes is that this break_handler may be used onlyfrom jprobes which changes ip address (for fetching the functionarguments), but function tracer ignores modified ip address.

Changes in v2: - Fix ftrace_ops registering right after setting its filter. - Unregister ftrace_ops if there is no kprobe using. - Remove notrace dependency from __kprobes macro.