1. 20 Mar, 2022 1 commit
    • Steven Rostedt (Google)'s avatar
      tracing: Have type enum modifications copy the strings · 795301d3
      Steven Rostedt (Google) authored
      When an enum is used in the visible parts of a trace event that is
      exported to user space, the user space applications like perf and
      trace-cmd do not have a way to know what the value of the enum is. To
      solve this, at boot up (or module load) the printk formats are modified to
      replace the enum with their numeric value in the string output.
      
      Array fields of the event are defined by [<nr-elements>] in the type
      portion of the format file so that the user space parsers can correctly
      parse the array into the appropriate size chunks. But in some trace
      events, an enum is used in defining the size of the array, which once
      again breaks the parsing of user space tooling.
      
      This was solved the same way as the print formats were, but it modified
      the type strings of the trace event. This caused crashes in some
      architectures because, as supposed to the print string, is a const string
      value. This was not detected on x86, as it appears that const strings are
      still writable (at least in boot up), but other architectures this is not
      the case, and writing to a const string will cause a kernel fault.
      
      To fix this, use kstrdup() to copy the type before modifying it. If the
      trace event is for the core kernel there's no need to free it because the
      string will be in use for the life of the machine being on line. For
      modules, create a link list to store all the strings being allocated for
      modules and when the module is removed, free them.
      
      Link: https://lore.kernel.org/all/yt9dr1706b4i.fsf@linux.ibm.com/
      Link: https://lkml.kernel.org/r/20220318153432.3984b871@gandalf.local.homeTested-by: default avatarMarc Zyngier <maz@kernel.org>
      Tested-by: default avatarSven Schnelle <svens@linux.ibm.com>
      Reported-by: default avatarSven Schnelle <svens@linux.ibm.com>
      Fixes: b3bc8547 ("tracing: Have TRACE_DEFINE_ENUM affect trace event types as well")
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      795301d3
  2. 15 Mar, 2022 1 commit
  3. 11 Mar, 2022 8 commits
  4. 10 Mar, 2022 3 commits
  5. 24 Feb, 2022 1 commit
  6. 11 Feb, 2022 16 commits
  7. 08 Feb, 2022 3 commits
  8. 04 Feb, 2022 3 commits
  9. 28 Jan, 2022 4 commits