1. 14 Dec, 2020 5 commits
    • Steven Rostedt (VMware)'s avatar
      Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS" · adab66b7
      Steven Rostedt (VMware) authored
      It was believed that metag was the only architecture that required the ring
      buffer to keep 8 byte words aligned on 8 byte architectures, and with its
      removal, it was assumed that the ring buffer code did not need to handle
      this case. It appears that sparc64 also requires this.
      
      The following was reported on a sparc64 boot up:
      
         kernel: futex hash table entries: 65536 (order: 9, 4194304 bytes, linear)
         kernel: Running postponed tracer tests:
         kernel: Testing tracer function:
         kernel: Kernel unaligned access at TPC[552a20] trace_function+0x40/0x140
         kernel: Kernel unaligned access at TPC[552a24] trace_function+0x44/0x140
         kernel: Kernel unaligned access at TPC[552a20] trace_function+0x40/0x140
         kernel: Kernel unaligned access at TPC[552a24] trace_function+0x44/0x140
         kernel: Kernel unaligned access at TPC[552a20] trace_function+0x40/0x140
         kernel: PASSED
      
      Need to put back the 64BIT aligned code for the ring buffer.
      
      Link: https://lore.kernel.org/r/CADxRZqzXQRYgKc=y-KV=S_yHL+Y8Ay2mh5ezeZUnpRvg+syWKw@mail.gmail.com
      
      Cc: stable@vger.kernel.org
      Fixes: 86b3de60 ("ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS")
      Reported-by: default avatarAnatoly Pugachev <matorola@gmail.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      adab66b7
    • Qiujun Huang's avatar
      ring-buffer: Add rb_check_bpage in __rb_allocate_pages · 74e2afc6
      Qiujun Huang authored
      It may be better to check each page is aligned by 4 bytes. The 2
      least significant bits of the address will be used as flags.
      
      Link: https://lkml.kernel.org/r/20201015113842.2921-1-hqjagain@gmail.comSigned-off-by: default avatarQiujun Huang <hqjagain@gmail.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      74e2afc6
    • Qiujun Huang's avatar
      ring-buffer: Fix two typos in comments · 82db909e
      Qiujun Huang authored
      s/inerrupting/interrupting/
      s/beween/between/
      
      Link: https://lkml.kernel.org/r/20201014152749.29986-1-hqjagain@gmail.comSigned-off-by: default avatarQiujun Huang <hqjagain@gmail.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      82db909e
    • Lukas Bulwahn's avatar
      tracing: Drop unneeded assignment in ring_buffer_resize() · 3b349353
      Lukas Bulwahn authored
      Since commit 0a1754b2 ("ring-buffer: Return 0 on success from
      ring_buffer_resize()"), computing the size is not needed anymore.
      
      Drop unneeded assignment in ring_buffer_resize().
      
      Link: https://lkml.kernel.org/r/20201214084503.3079-1-lukas.bulwahn@gmail.comSigned-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      3b349353
    • Masami Hiramatsu's avatar
      tracing: Disable ftrace selftests when any tracer is running · 60efe21e
      Masami Hiramatsu authored
      Disable ftrace selftests when any tracer (kernel command line options
      like ftrace=, trace_events=, kprobe_events=, and boot-time tracing)
      starts running because selftest can disturb it.
      
      Currently ftrace= and trace_events= are checked, but kprobe_events
      has a different flag, and boot-time tracing didn't checked. This unifies
      the disabled flag and all of those boot-time tracing features sets
      the flag.
      
      This also fixes warnings on kprobe-event selftest
      (CONFIG_FTRACE_STARTUP_TEST=y and CONFIG_KPROBE_EVENTS=y) with boot-time
      tracing (ftrace.event.kprobes.EVENT.probes) like below;
      
      [   59.803496] trace_kprobe: Testing kprobe tracing:
      [   59.804258] ------------[ cut here ]------------
      [   59.805682] WARNING: CPU: 3 PID: 1 at kernel/trace/trace_kprobe.c:1987 kprobe_trace_self_tests_ib
      [   59.806944] Modules linked in:
      [   59.807335] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 5.10.0-rc7+ #172
      [   59.808029] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/01/204
      [   59.808999] RIP: 0010:kprobe_trace_self_tests_init+0x5f/0x42b
      [   59.809696] Code: e8 03 00 00 48 c7 c7 30 8e 07 82 e8 6d 3c 46 ff 48 c7 c6 00 b2 1a 81 48 c7 c7 7
      [   59.812439] RSP: 0018:ffffc90000013e78 EFLAGS: 00010282
      [   59.813038] RAX: 00000000ffffffef RBX: 0000000000000000 RCX: 0000000000049443
      [   59.813780] RDX: 0000000000049403 RSI: 0000000000049403 RDI: 000000000002deb0
      [   59.814589] RBP: ffffc90000013e90 R08: 0000000000000001 R09: 0000000000000001
      [   59.815349] R10: 0000000000000001 R11: 0000000000000000 R12: 00000000ffffffef
      [   59.816138] R13: ffff888004613d80 R14: ffffffff82696940 R15: ffff888004429138
      [   59.816877] FS:  0000000000000000(0000) GS:ffff88807dcc0000(0000) knlGS:0000000000000000
      [   59.817772] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   59.818395] CR2: 0000000001a8dd38 CR3: 0000000002222000 CR4: 00000000000006a0
      [   59.819144] Call Trace:
      [   59.819469]  ? init_kprobe_trace+0x6b/0x6b
      [   59.819948]  do_one_initcall+0x5f/0x300
      [   59.820392]  ? rcu_read_lock_sched_held+0x4f/0x80
      [   59.820916]  kernel_init_freeable+0x22a/0x271
      [   59.821416]  ? rest_init+0x241/0x241
      [   59.821841]  kernel_init+0xe/0x10f
      [   59.822251]  ret_from_fork+0x22/0x30
      [   59.822683] irq event stamp: 16403349
      [   59.823121] hardirqs last  enabled at (16403359): [<ffffffff810db81e>] console_unlock+0x48e/0x580
      [   59.824074] hardirqs last disabled at (16403368): [<ffffffff810db786>] console_unlock+0x3f6/0x580
      [   59.825036] softirqs last  enabled at (16403200): [<ffffffff81c0033a>] __do_softirq+0x33a/0x484
      [   59.825982] softirqs last disabled at (16403087): [<ffffffff81a00f02>] asm_call_irq_on_stack+0x10
      [   59.827034] ---[ end trace 200c544775cdfeb3 ]---
      [   59.827635] trace_kprobe: error on probing function entry.
      
      Link: https://lkml.kernel.org/r/160741764955.3448999.3347769358299456915.stgit@devnote2
      
      Fixes: 4d655281 ("tracing/boot Add kprobe event support")
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      60efe21e
  2. 07 Dec, 2020 3 commits
  3. 02 Dec, 2020 1 commit
    • Steven Rostedt (VMware)'s avatar
      ring-buffer: Add test to validate the time stamp deltas · 5b7be9c7
      Steven Rostedt (VMware) authored
      While debugging a situation where a delta for an event was calucalted wrong,
      I realize there was nothing making sure that the delta of events are
      correct. If a single event has an incorrect delta, then all events after it
      will also have one. If the discrepency gets large enough, it could cause
      the time stamps to go backwards when crossing sub buffers, that record a
      full 64 bit time stamp, and the new deltas are added to that.
      
      Add a way to validate the events at most events and when crossing a buffer
      page. This will help make sure that the deltas are always correct. This test
      will detect if they are ever corrupted.
      
      The test adds a high overhead to the ring buffer recording, as it does the
      audit for almost every event, and should only be used for testing the ring
      buffer.
      
      This will catch the bug that is fixed by commit 55ea4cf4 ("ring-buffer:
      Update write stamp with the correct ts"), which is not applied when this
      commit is applied.
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      5b7be9c7
  4. 18 Nov, 2020 1 commit
  5. 16 Nov, 2020 1 commit
  6. 13 Nov, 2020 4 commits
  7. 11 Nov, 2020 6 commits
  8. 06 Nov, 2020 11 commits
  9. 04 Nov, 2020 1 commit
  10. 02 Nov, 2020 6 commits
  11. 01 Nov, 2020 1 commit