# git rev-parse -q --verify 99ddf2254febae9eab7fb0bcc02c5322243f5c49^{commit} 99ddf2254febae9eab7fb0bcc02c5322243f5c49 already have revision, skipping fetch # git checkout -q -f -B kisskb 99ddf2254febae9eab7fb0bcc02c5322243f5c49 # git clean -qxdf # < git log -1 # commit 99ddf2254febae9eab7fb0bcc02c5322243f5c49 # Merge: 76f598ba7d8e 3357c6e42964 # Author: Linus Torvalds # Date: Wed Apr 5 09:11:08 2023 -0700 # # Merge tag 'trace-v6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace # # Pull tracing fixes from Steven Rostedt: # # - Fix timerlat notification, as it was not triggering the notify to # users when a new max latency was hit. # # - Do not trigger max latency if the tracing is off. # # When tracing is off, the ring buffer is not updated, it does not make # sense to notify when there's a new max latency detected by the # tracer, as why that latency happened is not available. The tracing # logic still runs when the ring buffer is disabled, but it should not # be triggering notifications. # # - Fix race on freeing the synthetic event "last_cmd" variable by adding # a mutex around it. # # - Fix race between reader and writer of the ring buffer by adding # memory barriers. When the writer is still on the reader page it must # have its content visible on the buffer before it moves the commit # index that the reader uses to know how much content is on the page. # # - Make get_lock_parent_ip() always inlined, as it uses _THIS_IP_ and # _RET_IP_, which gets broken if it is not inlined. # # - Make __field(int, arr[5]) in a TRACE_EVENT() macro fail to build. # # The field formats of trace events are calculated by using # sizeof(type) and other means by what is passed into the structure # macros like __field(). The __field() macro is only meant for atom # types like int, long, short, pointer, etc. It is not meant for # arrays. # # The code will currently compile with arrays, but then the format # produced will be inaccurate, and user space parsing tools will break. # # Two bugs have already been fixed, now add code that will make the # kernel fail to build if another trace event includes this buggy field # format. # # - Fix boot up snapshot code: # # Boot snapshots were triggering when not even asked for on the kernel # command line. This was caused by two bugs: # # 1) It would trigger a snapshot on any instance if one was created # from the kernel command line. # # 2) The error handling would only affect the top level instance. # So the fact that a snapshot was done on a instance that didn't # allocate a buffer triggered a warning written into the top level # buffer, and worse yet, disabled the top level buffer. # # - Fix memory leak that was caused when an error was logged in a trace # buffer instance, and then the buffer instance was removed. # # The allocated error log messages still needed to be freed. # # * tag 'trace-v6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: # tracing: Free error logs of tracing instances # tracing: Fix ftrace_boot_snapshot command line logic # tracing: Have tracing_snapshot_instance_cond() write errors to the appropriate instance # tracing: Error if a trace event has an array for a __field() # tracing/osnoise: Fix notify new tracing_max_latency # tracing/timerlat: Notify new max thread latency # ftrace: Mark get_lock_parent_ip() __always_inline # ring-buffer: Fix race while reader and writer are on the same page # tracing/synthetic: Fix races on freeing last_cmd # < /opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 99ddf2254febae9eab7fb0bcc02c5322243f5c49 # < make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- allnoconfig # < make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc11 # Build took: 0:02:07.372100