17 Aug, 2018

1 commit

  • The Linux kernel adopted the SPDX License format headers to ease license
    compliance management, and uses the C++ '//' style comments for the SPDX
    header tags. Some files in the tracing directory used the C style /* */
    comments for them. To be consistent across all files, replace the /* */
    C style SPDX tags with the C++ // SPDX tags.

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

11 Mar, 2018

2 commits

  • In order to allow information to be passed between trace events, add
    support for per-element variables to tracing_map. This provides a
    means for histograms to associate a value or values with an entry when
    it's saved or updated, and retrieved by a subsequent event occurrences.

    Variables can be set using tracing_map_set_var() and read using
    tracing_map_read_var(). tracing_map_var_set() returns true or false
    depending on whether or not the variable has been set or not, which is
    important for event-matching applications.

    tracing_map_read_var_once() reads the variable and resets it to the
    'unset' state, implementing read-once variables, which are also
    important for event-matching uses.

    Link: http://lkml.kernel.org/r/7fa001108252556f0c6dd9d63145eabfe3370d1a.1516069914.git.tom.zanussi@linux.intel.com

    Signed-off-by: Tom Zanussi
    Signed-off-by: Steven Rostedt (VMware)

    Tom Zanussi
     
  • We now have the logic to detect and remove duplicates in the
    tracing_map hash table. The code which merges duplicates in the
    histogram is redundant now. So, modify this code just to detect
    duplicates. The duplication detection code is still kept to ensure
    that any rare race condition which might cause duplicates does not go
    unnoticed.

    Link: http://lkml.kernel.org/r/55215cf59e2674391bdaf772fdafc4c393352b03.1516069914.git.tom.zanussi@linux.intel.com

    Signed-off-by: Vedang Patel
    Signed-off-by: Tom Zanussi
    Signed-off-by: Steven Rostedt (VMware)

    Vedang Patel
     

18 Nov, 2017

1 commit

  • Pull tracing updates from

    - allow module init functions to be traced

    - clean up some unused or not used by config events (saves space)

    - clean up of trace histogram code

    - add support for preempt and interrupt enabled/disable events

    - other various clean ups

    * tag 'trace-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (30 commits)
    tracing, thermal: Hide cpu cooling trace events when not in use
    tracing, thermal: Hide devfreq trace events when not in use
    ftrace: Kill FTRACE_OPS_FL_PER_CPU
    perf/ftrace: Small cleanup
    perf/ftrace: Fix function trace events
    perf/ftrace: Revert ("perf/ftrace: Fix double traces of perf on ftrace:function")
    tracing, dma-buf: Remove unused trace event dma_fence_annotate_wait_on
    tracing, memcg, vmscan: Hide trace events when not in use
    tracing/xen: Hide events that are not used when X86_PAE is not defined
    tracing: mark trace_test_buffer as __maybe_unused
    printk: Remove superfluous memory barriers from printk_safe
    ftrace: Clear hashes of stale ips of init memory
    tracing: Add support for preempt and irq enable/disable events
    tracing: Prepare to add preempt and irq trace events
    ftrace/kallsyms: Have /proc/kallsyms show saved mod init functions
    ftrace: Add freeing algorithm to free ftrace_mod_maps
    ftrace: Save module init functions kallsyms symbols for tracing
    ftrace: Allow module init functions to be traced
    ftrace: Add a ftrace_free_mem() function for modules to use
    tracing: Reimplement log2
    ...

    Linus Torvalds
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

05 Oct, 2017

1 commit

  • The current default for the number of subkeys in a compound key is 2,
    which is too restrictive. Increase it to a more realistic value of 3.

    Link: http://lkml.kernel.org/r/b6952cca06d1f912eba33804a6fd6069b3847d44.1506105045.git.tom.zanussi@linux.intel.com

    Signed-off-by: Tom Zanussi
    Signed-off-by: Steven Rostedt (VMware)

    Tom Zanussi
     

20 Apr, 2016

3 commits

  • Make it clear exactly how many keys and values are supported through
    better defines, and add 1 to the vals count, since normally clients
    want support for at least a hitcount and two other values.

    Also, note the error return value for tracing_map_add_key/val_field()
    in the comments.

    Link: http://lkml.kernel.org/r/6696fa02ebc716aa344c27a571a2afaa25e5b4d4.1457029949.git.tom.zanussi@linux.intel.com

    Signed-off-by: Tom Zanussi
    Signed-off-by: Steven Rostedt

    Tom Zanussi
     
  • The config option for TRACING_MAP has "default n", which is not needed
    because the default of configs is 'n'.

    Also, since the TRACING_MAP has no config prompt, there's no reason to
    include "If in doubt, say N" in the help text.

    Fixed a typo in the comments of tracing_map.h.

    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Add tracing_map, a special-purpose lock-free map for tracing.

    tracing_map is designed to aggregate or 'sum' one or more values
    associated with a specific object of type tracing_map_elt, which
    is associated by the map to a given key.

    It provides various hooks allowing per-tracer customization and is
    separated out into a separate file in order to allow it to be shared
    between multiple tracers, but isn't meant to be generally used outside
    of that context.

    The tracing_map implementation was inspired by lock-free map
    algorithms originated by Dr. Cliff Click:

    http://www.azulsystems.com/blog/cliff/2007-03-26-non-blocking-hashtable
    http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf

    Link: http://lkml.kernel.org/r/b43d68d1add33582a396f553c8ef705a33a6a748.1449767187.git.tom.zanussi@linux.intel.com

    Signed-off-by: Tom Zanussi
    Tested-by: Masami Hiramatsu
    Reviewed-by: Namhyung Kim
    Signed-off-by: Steven Rostedt

    Tom Zanussi