ftrace changes for v6.17:

- Keep track of when fgraph_ops are registered or not

  Keep accounting of when fgraph_ops are registered as if a fgraph_ops is
  registered twice it can mess up the accounting and it will not work as
  expected later. Trigger a warning if something registers it twice as to
  catch bugs before they are found by things just not working as expected.

- Make DYNAMIC_FTRACE always enabled for architectures that support it

  As static ftrace (where all functions are always traced) is very expensive
  and only exists to help architectures support ftrace, do not make it an
  option. As soon as an architecture supports DYNAMIC_FTRACE make it use it.
  This simplifies the code.

- Remove redundant config HAVE_FTRACE_MCOUNT_RECORD

  The CONFIG_HAVE_FTRACE_MCOUNT was added to help simplify the
  DYNAMIC_FTRACE work, but now every architecture that implements
  DYNAMIC_FTRACE also has HAVE_FTRACE_MCOUNT set too, making it redundant
  with the HAVE_DYNAMIC_FTRACE.

- Make pid_ptr string size match the comment

  In print_graph_proc() the pid_ptr string is of size 11, but the comment says
  /* sign + log10(MAX_INT) + '\0' */ which is actually 12.
tracing: Remove redundant config HAVE_FTRACE_MCOUNT_RECORD

Ftrace is tightly coupled with architecture specific code because it
requires the use of trampolines written in assembly. This means that when
a new feature or optimization is made, it must be done for all
architectures. To simplify the approach, CONFIG_HAVE_FTRACE_* configs are
added to denote which architecture has the new enhancement so that other
architectures can still function until they too have been updated.

The CONFIG_HAVE_FTRACE_MCOUNT was added to help simplify the
DYNAMIC_FTRACE work, but now every architecture that implements
DYNAMIC_FTRACE also has HAVE_FTRACE_MCOUNT set too, making it redundant
with the HAVE_DYNAMIC_FTRACE.

Remove the HAVE_FTRACE_MCOUNT config and use DYNAMIC_FTRACE directly where
applicable.

Link: https://lore.kernel.org/all/20250703154916.48e3ada7@gandalf.local.home/

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/20250704104838.27a18690@gandalf.local.home
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
22 files changed