05 Aug, 2020

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "It's been a busy cycle for documentation - hopefully the busiest for a
    while to come. Changes include:

    - Some new Chinese translations

    - Progress on the battle against double words words and non-HTTPS
    URLs

    - Some block-mq documentation

    - More RST conversions from Mauro. At this point, that task is
    essentially complete, so we shouldn't see this kind of churn again
    for a while. Unless we decide to switch to asciidoc or
    something...:)

    - Lots of typo fixes, warning fixes, and more"

    * tag 'docs-5.9' of git://git.lwn.net/linux: (195 commits)
    scripts/kernel-doc: optionally treat warnings as errors
    docs: ia64: correct typo
    mailmap: add entry for
    doc/zh_CN: add cpu-load Chinese version
    Documentation/admin-guide: tainted-kernels: fix spelling mistake
    MAINTAINERS: adjust kprobes.rst entry to new location
    devices.txt: document rfkill allocation
    PCI: correct flag name
    docs: filesystems: vfs: correct flag name
    docs: filesystems: vfs: correct sync_mode flag names
    docs: path-lookup: markup fixes for emphasis
    docs: path-lookup: more markup fixes
    docs: path-lookup: fix HTML entity mojibake
    CREDITS: Replace HTTP links with HTTPS ones
    docs: process: Add an example for creating a fixes tag
    doc/zh_CN: add Chinese translation prefer section
    doc/zh_CN: add clearing-warn-once Chinese version
    doc/zh_CN: add admin-guide index
    doc:it_IT: process: coding-style.rst: Correct __maybe_unused compiler label
    futex: MAINTAINERS: Re-add selftests directory
    ...

    Linus Torvalds
     

06 Jul, 2020

2 commits


01 Jul, 2020

1 commit


08 May, 2020

1 commit

  • There is and has been for a very long time been a lot more going on in
    flush_old_exec than just flushing the old state. After the movement
    of code from setup_new_exec there is a whole lot more going on than
    just flushing the old executables state.

    Rename flush_old_exec to begin_new_exec to more accurately reflect
    what this function does.

    Reviewed-by: Kees Cook
    Reviewed-by: Greg Ungerer
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     

28 Mar, 2020

3 commits


04 Mar, 2020

1 commit

  • The hwlat tracer runs a loop of width time during a given window. It then
    reports the max latency over a given threshold and records a timestamp. But
    this timestamp is the time after the width has finished, and not the time it
    actually triggered.

    Record the actual time when the latency was greater than the threshold as
    well as the number of times it was greater in a given width per window.

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

11 Jan, 2020

2 commits

  • Fix minor typos in the doc.

    Suggested-by: Randy Dunlap
    Reviewed-by: Steven Rostedt (VMware)
    Reviewed-by: Joel Fernandes (Google)
    Signed-off-by: Frank A. Cancio Bello
    Link: https://lore.kernel.org/r/9ef705d0208a4ca0852fed69bc0838a589a4df85.1577231751.git.frank@generalsoftwareinc.com
    Signed-off-by: Jonathan Corbet

    Frank A. Cancio Bello
     
  • The current text could mislead the user into believing that the number
    of pages allocated by each CPU ring buffer is calculated by the round
    up of the division: buffer_size_kb / PAGE_SIZE.

    Clarifies that a few extra pages may be allocated to accommodate buffer
    management meta-data.

    Suggested-by: Steven Rostedt (VMware)
    Suggested-by: Joel Fernandes (Google)
    Reviewed-by: Steven Rostedt (VMware)
    Reviewed-by: Joel Fernandes (Google)
    Signed-off-by: Frank A. Cancio Bello
    Link: https://lore.kernel.org/r/6f33be5f3d60e5ffc061d8d2b329d3d3ccf22a8c.1577231751.git.frank@generalsoftwareinc.com
    Signed-off-by: Jonathan Corbet

    Frank A. Cancio Bello
     

20 Dec, 2019

1 commit

  • Clarify a few places where the ring buffer and the "snapshot" buffer
    are cleared as a side effect of an operation.

    This will avoid users lost of tracing data because of these so far
    undocumented behavior.

    Signed-off-by: Frank A. Cancio Bello
    Reviewed-by: Steven Rostedt (VMware)
    Link: https://lore.kernel.org/r/20191218191553.q4lwyxmquvtjzjfz@frank-laptop
    Signed-off-by: Jonathan Corbet

    Frank A. Cancio Bello
     

04 Nov, 2019

1 commit

  • Livepatch uses ftrace for redirection to new patched functions. It means
    that if ftrace is disabled, all live patched functions are disabled as
    well. Toggling global 'ftrace_enabled' sysctl thus affect it directly.
    It is not a problem per se, because only administrator can set sysctl
    values, but it still may be surprising.

    Introduce PERMANENT ftrace_ops flag to amend this. If the
    FTRACE_OPS_FL_PERMANENT is set on any ftrace ops, the tracing cannot be
    disabled by disabling ftrace_enabled. Equally, a callback with the flag
    set cannot be registered if ftrace_enabled is disabled.

    Link: http://lkml.kernel.org/r/20191016113316.13415-2-mbenes@suse.cz

    Reviewed-by: Petr Mladek
    Reviewed-by: Kamalesh Babulal
    Signed-off-by: Miroslav Benes
    Signed-off-by: Steven Rostedt (VMware)

    Miroslav Benes
     

02 Sep, 2019

1 commit

  • The current text could mislead the user into believing that only read()
    disables tracing. Clarify that any open() call that requests read access
    disables tracing.

    Link: https://lkml.kernel.org/r/CAADnVQ+hU6QOC_dPmpjnuv=9g4SQEeaMEMqXOS2WpMj=q=LdiQ@mail.gmail.com
    Signed-off-by: Peter Wu
    Acked-by: Steven Rostedt (VMware)
    Signed-off-by: Jonathan Corbet

    Peter Wu
     

16 May, 2019

1 commit

  • Pull tracing updates from Steven Rostedt:
    "The major changes in this tracing update includes:

    - Removal of non-DYNAMIC_FTRACE from 32bit x86

    - Removal of mcount support from x86

    - Emulating a call from int3 on x86_64, fixes live kernel patching

    - Consolidated Tracing Error logs file

    Minor updates:

    - Removal of klp_check_compiler_support()

    - kdb ftrace dumping output changes

    - Accessing and creating ftrace instances from inside the kernel

    - Clean up of #define if macro

    - Introduction of TRACE_EVENT_NOP() to disable trace events based on
    config options

    And other minor fixes and clean ups"

    * tag 'trace-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (44 commits)
    x86: Hide the int3_emulate_call/jmp functions from UML
    livepatch: Remove klp_check_compiler_support()
    ftrace/x86: Remove mcount support
    ftrace/x86_32: Remove support for non DYNAMIC_FTRACE
    tracing: Simplify "if" macro code
    tracing: Fix documentation about disabling options using trace_options
    tracing: Replace kzalloc with kcalloc
    tracing: Fix partial reading of trace event's id file
    tracing: Allow RCU to run between postponed startup tests
    tracing: Fix white space issues in parse_pred() function
    tracing: Eliminate const char[] auto variables
    ring-buffer: Fix mispelling of Calculate
    tracing: probeevent: Fix to make the type of $comm string
    tracing: probeevent: Do not accumulate on ret variable
    tracing: uprobes: Re-enable $comm support for uprobe events
    ftrace/x86_64: Emulate call function while updating in breakpoint handler
    x86_64: Allow breakpoints to emulate call instructions
    x86_64: Add gap to int3 to allow for call emulation
    tracing: kdb: Allow ftdump to skip all but the last few entries
    tracing: Add trace_total_entries() / trace_total_entries_cpu()
    ...

    Linus Torvalds
     

16 Apr, 2019

1 commit


08 Apr, 2019

1 commit

  • Move most of the hist trigger extended error documentation to
    ftrace.rst and expand on it to fully document tracing/error_log.

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

    Acked-by: Masami Hiramatsu
    Acked-by: Namhyung Kim
    Signed-off-by: Tom Zanussi
    Signed-off-by: Steven Rostedt (VMware)

    Tom Zanussi
     

16 Feb, 2019

1 commit

  • Enabling of large number of functions by echoing in a large subset of the
    functions in available_filter_functions can take a very long time. The
    process requires testing all functions registered by the function tracer
    (which is in the 10s of thousands), and doing a kallsyms lookup to convert
    the ip address into a name, then comparing that name with the string passed
    in.

    When a function causes the function tracer to crash the system, a binary
    bisect of the available_filter_functions can be done to find the culprit.
    But this requires passing in half of the functions in
    available_filter_functions over and over again, which makes it basically a
    O(n^2) operation. With 40,000 functions, that ends up bing 1,600,000,000
    opertions! And enabling this can take over 20 minutes.

    As a quick speed up, if a number is passed into one of the filter files,
    instead of doing a search, it just enables the function at the corresponding
    line of the available_filter_functions file. That is:

    # echo 50 > set_ftrace_filter
    # cat set_ftrace_filter
    x86_pmu_commit_txn

    # head -50 available_filter_functions | tail -1
    x86_pmu_commit_txn

    This allows setting of half the available_filter_functions to take place in
    less than a second!

    # time seq 20000 > set_ftrace_filter
    real 0m0.042s
    user 0m0.005s
    sys 0m0.015s

    # wc -l set_ftrace_filter
    20000 set_ftrace_filter

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

07 Feb, 2019

1 commit


08 Nov, 2018

1 commit


01 Sep, 2018

1 commit


27 Jul, 2018

1 commit


07 Jun, 2018

1 commit

  • Pull tracing updates from Steven Rostedt:
    "One new feature was added to ftrace, which is the trace_marker now
    supports triggers. For example:

    # cd /sys/kernel/debug/tracing
    # echo 'snapshot' > events/ftrace/print/trigger
    # echo 'cause snapshot' > trace_marker

    The rest of the changes are various clean ups and also one stable fix
    that was added late in the cycle"

    * tag 'trace-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (21 commits)
    tracing: Use match_string() instead of open coding it in trace_set_options()
    branch-check: fix long->int truncation when profiling branches
    ring-buffer: Fix typo in comment
    ring-buffer: Fix a bunch of typos in comments
    tracing/selftest: Add test to test simple snapshot trigger for trace_marker
    tracing/selftest: Add test to test hist trigger between kernel event and trace_marker
    tracing/selftest: Add selftests to test trace_marker histogram triggers
    ftrace/selftest: Fix reset_trigger() to handle triggers with filters
    ftrace/selftest: Have the reset_trigger code be a bit more careful
    tracing: Document trace_marker triggers
    tracing: Allow histogram triggers to access ftrace internal events
    tracing: Prevent further users of zero size static arrays in trace events
    tracing: Have zero size length in filter logic be full string
    tracing: Add trigger file for trace_markers tracefs/ftrace/print
    tracing: Do not show filter file for ftrace internal events
    tracing: Add brackets in ftrace event dynamic arrays
    tracing: Have event_trace_init() called by trace_init_tracefs()
    tracing: Add __find_event_file() to find event files without restrictions
    tracing: Do not reference event data in post call triggers
    tracepoints: Fix the descriptions of tracepoint_probe_register{_prio}
    ...

    Linus Torvalds
     

05 Jun, 2018

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "There's been a fair amount of work in the docs tree this time around,
    including:

    - Extensive RST conversions and organizational work in the
    memory-management docs thanks to Mike Rapoport.

    - An update of Documentation/features from Andrea Parri and a script
    to keep it updated.

    - Various LICENSES updates from Thomas, along with a script to check
    SPDX tags.

    - Work to fix dangling references to documentation files; this
    involved a fair number of one-liner comment changes outside of
    Documentation/

    ... and the usual list of documentation improvements, typo fixes, etc"

    * tag 'docs-4.18' of git://git.lwn.net/linux: (103 commits)
    Documentation: document hung_task_panic kernel parameter
    docs/admin-guide/mm: add high level concepts overview
    docs/vm: move ksm and transhuge from "user" to "internals" section.
    docs: Use the kerneldoc comments for memalloc_no*()
    doc: document scope NOFS, NOIO APIs
    docs: update kernel versions and dates in tables
    docs/vm: transhuge: split userspace bits to admin-guide/mm/transhuge
    docs/vm: transhuge: minor updates
    docs/vm: transhuge: change sections order
    Documentation: arm: clean up Marvell Berlin family info
    Documentation: gpio: driver: Fix a typo and some odd grammar
    docs: ranoops.rst: fix location of ramoops.txt
    scripts/documentation-file-ref-check: rewrite it in perl with auto-fix mode
    docs: uio-howto.rst: use a code block to solve a warning
    mm, THP, doc: Add document for thp_swpout/thp_swpout_fallback
    w1: w1_io.c: fix a kernel-doc warning
    Documentation/process/posting: wrap text at 80 cols
    docs: admin-guide: add cgroup-v2 documentation
    Revert "Documentation/features/vm: Remove arch support status file for 'pte_special'"
    Documentation: refcount-vs-atomic: Update reference to LKMM doc.
    ...

    Linus Torvalds
     

29 May, 2018

1 commit


26 Apr, 2018

1 commit

  • Revert commits

    92af4dcb4e1c ("tracing: Unify the "boot" and "mono" tracing clocks")
    127bfa5f4342 ("hrtimer: Unify MONOTONIC and BOOTTIME clock behavior")
    7250a4047aa6 ("posix-timers: Unify MONOTONIC and BOOTTIME clock behavior")
    d6c7270e913d ("timekeeping: Remove boot time specific code")
    f2d6fdbfd238 ("Input: Evdev - unify MONOTONIC and BOOTTIME clock behavior")
    d6ed449afdb3 ("timekeeping: Make the MONOTONIC clock behave like the BOOTTIME clock")
    72199320d49d ("timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock")

    As stated in the pull request for the unification of CLOCK_MONOTONIC and
    CLOCK_BOOTTIME, it was clear that we might have to revert the change.

    As reported by several folks systemd and other applications rely on the
    documented behaviour of CLOCK_MONOTONIC on Linux and break with the above
    changes. After resume daemons time out and other timeout related issues are
    observed. Rafael compiled this list:

    * systemd kills daemons on resume, after >WatchdogSec seconds
    of suspending (Genki Sky). [Verified that that's because systemd uses
    CLOCK_MONOTONIC and expects it to not include the suspend time.]

    * systemd-journald misbehaves after resume:
    systemd-journald[7266]: File /var/log/journal/016627c3c4784cd4812d4b7e96a34226/system.journal
    corrupted or uncleanly shut down, renaming and replacing.
    (Mike Galbraith).

    * NetworkManager reports "networking disabled" and networking is broken
    after resume 50% of the time (Pavel). [May be because of systemd.]

    * MATE desktop dims the display and starts the screensaver right after
    system resume (Pavel).

    * Full system hang during resume (me). [May be due to systemd or NM or both.]

    That happens on debian and open suse systems.

    It's sad, that these problems were neither catched in -next nor by those
    folks who expressed interest in this change.

    Reported-by: Rafael J. Wysocki
    Reported-by: Genki Sky ,
    Reported-by: Pavel Machek
    Signed-off-by: Thomas Gleixner
    Cc: Dmitry Torokhov
    Cc: John Stultz
    Cc: Jonathan Corbet
    Cc: Kevin Easton
    Cc: Linus Torvalds
    Cc: Mark Salyzyn
    Cc: Michael Kerrisk
    Cc: Peter Zijlstra
    Cc: Petr Mladek
    Cc: Prarit Bhargava
    Cc: Sergey Senozhatsky
    Cc: Steven Rostedt

    Thomas Gleixner
     

17 Apr, 2018

1 commit


11 Apr, 2018

1 commit

  • Pull tracing updates from Steven Rostedt:
    "New features:

    - Tom Zanussi's extended histogram work.

    This adds the synthetic events to have histograms from multiple
    event data Adds triggers "onmatch" and "onmax" to call the
    synthetic events Several updates to the histogram code from this

    - Allow way to nest ring buffer calls in the same context

    - Allow absolute time stamps in ring buffer

    - Rewrite of filter code parsing based on Al Viro's suggestions

    - Setting of trace_clock to global if TSC is unstable (on boot)

    - Better OOM handling when allocating large ring buffers

    - Added initcall tracepoints (consolidated initcall_debug code with
    them)

    And other various fixes and clean ups"

    * tag 'trace-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (68 commits)
    init: Have initcall_debug still work without CONFIG_TRACEPOINTS
    init, tracing: Have printk come through the trace events for initcall_debug
    init, tracing: instrument security and console initcall trace events
    init, tracing: Add initcall trace events
    tracing: Add rcu dereference annotation for test func that touches filter->prog
    tracing: Add rcu dereference annotation for filter->prog
    tracing: Fixup logic inversion on setting trace_global_clock defaults
    tracing: Hide global trace clock from lockdep
    ring-buffer: Add set/clear_current_oom_origin() during allocations
    ring-buffer: Check if memory is available before allocation
    lockdep: Add print_irqtrace_events() to __warn
    vsprintf: Do not preprocess non-dereferenced pointers for bprintf (%px and %pK)
    tracing: Uninitialized variable in create_tracing_map_fields()
    tracing: Make sure variable string fields are NULL-terminated
    tracing: Add action comparisons when testing matching hist triggers
    tracing: Don't add flag strings when displaying variable references
    tracing: Fix display of hist trigger expressions containing timestamps
    ftrace: Drop a VLA in module_exists()
    tracing: Mention trace_clock=global when warning about unstable clocks
    tracing: Default to using trace_global_clock if sched_clock is unstable
    ...

    Linus Torvalds
     

05 Apr, 2018

1 commit

  • Pull time(r) updates from Thomas Gleixner:
    "A small set of updates for timers and timekeeping:

    - The most interesting change is the consolidation of clock MONOTONIC
    and clock BOOTTIME.

    Clock MONOTONIC behaves now exactly like clock BOOTTIME and does
    not longer ignore the time spent in suspend. A new clock
    MONOTONIC_ACTIVE is provived which behaves like clock MONOTONIC in
    kernels before this change. This allows applications to
    programmatically check for the clock MONOTONIC behaviour.

    As discussed in the review thread, this has the potential of
    breaking user space and we might have to revert this. Knock on wood
    that we can avoid that exercise.

    - Updates to the NTP mechanism to improve accuracy

    - A new kernel internal data structure to aid the ongoing Y2038 work.

    - Cleanups and simplifications of the clocksource code.

    - Make the alarmtimer code play nicely with debugobjects"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    alarmtimer: Init nanosleep alarm timer on stack
    y2038: Introduce struct __kernel_old_timeval
    tracing: Unify the "boot" and "mono" tracing clocks
    hrtimer: Unify MONOTONIC and BOOTTIME clock behavior
    posix-timers: Unify MONOTONIC and BOOTTIME clock behavior
    timekeeping: Remove boot time specific code
    Input: Evdev - unify MONOTONIC and BOOTTIME clock behavior
    timekeeping: Make the MONOTONIC clock behave like the BOOTTIME clock
    timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock
    timekeeping/ntp: Determine the multiplier directly from NTP tick length
    timekeeping/ntp: Don't align NTP frequency adjustments to ticks
    clocksource: Use ATTRIBUTE_GROUPS
    clocksource: Use DEVICE_ATTR_RW/RO/WO to define device attributes
    clocksource: Don't walk the clocksource list for empty override

    Linus Torvalds
     

08 Mar, 2018

2 commits