All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>,
	linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH V3] tracing/timerlat: Hotplug support for the user-space interface
Date: Wed, 4 Oct 2023 08:17:31 -0400	[thread overview]
Message-ID: <20231004081731.141dfb99@gandalf.local.home> (raw)
In-Reply-To: <3fbe67a4-225c-14c1-cb5a-3f667ad80b0e@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 3875 bytes --]

On Wed, 4 Oct 2023 12:02:52 +0200
Daniel Bristot de Oliveira <bristot@kernel.org> wrote:

> On 10/4/23 03:03, Steven Rostedt wrote:
> > On Fri, 29 Sep 2023 17:02:46 +0200
> > Daniel Bristot de Oliveira <bristot@kernel.org> wrote:
> >   
> >> The osnoise/per_cpu/CPU$/timerlat_fd is create for each possible
> >> CPU, but it might create confusion if the CPU is not online.
> >>
> >> Create the file only for online CPUs, also follow hotplug by
> >> creating and deleting as CPUs come and go.
> >>
> >> Fixes: e88ed227f639 ("tracing/timerlat: Add user-space interface")  
> > 
> > Is this a fix that needs to go in now and Cc'd to stable? Or is this
> > something that can wait till the next merge window?  
> 
> We can wait for the next merge window... it is a non-trivial fix.
> 

A requirement is if it's a fix, not really how "trivial" it is.

That said, I'm able to consistently triggered this:

BUG: kernel NULL pointer dereference, address: 00000000000000a0
 #PF: supervisor write access in kernel mode
 #PF: error_code(0x0002) - not-present page
 PGD 0 P4D 0 
 Oops: 0002 [#1] PREEMPT SMP PTI
 CPU: 1 PID: 20 Comm: cpuhp/1 Not tainted 6.6.0-rc4-test-00008-g2df8f295b0e2 #103
 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
 RIP: 0010:down_write+0x23/0x70
 Code: 90 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 53 48 89 fb e8 2e bc ff ff bf 01 00 00 00 e8 24 14 31 ff 31 c0 ba 01 00 00 00 <f0> 48 0f b1 13 75 33 65 48 8b 04 25 00 36 03 00 48 89 43 08 bf 01
 RSP: 0018:ffffb17f800e3d98 EFLAGS: 00010246
 RAX: 0000000000000000 RBX: 00000000000000a0 RCX: ffffff8100000000
 RDX: 0000000000000001 RSI: 0000000000000064 RDI: ffffffffb6edd5cc
 RBP: ffffb17f800e3df8 R08: ffff8c6237c61188 R09: 000000008020001b
 R10: ffff8c6237c61160 R11: 0000000000000001 R12: 000000000002da30
 R13: 0000000000000000 R14: ffffffffb6314080 R15: ffff8c6237c61188
 FS:  0000000000000000(0000) GS:ffff8c6237c40000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00000000000000a0 CR3: 0000000102412001 CR4: 0000000000170ee0
 Call Trace:
  <TASK>
  ? __die+0x23/0x70
  ? page_fault_oops+0x17d/0x4c0
  ? exc_page_fault+0x7f/0x180
  ? asm_exc_page_fault+0x26/0x30
  ? __pfx_osnoise_cpu_die+0x10/0x10
  ? down_write+0x1c/0x70
  ? down_write+0x23/0x70
  ? down_write+0x1c/0x70
  simple_recursive_removal+0xef/0x280
  ? __pfx_remove_one+0x10/0x10
  ? __pfx_osnoise_cpu_die+0x10/0x10
  tracefs_remove+0x44/0x70
  timerlat_rm_per_cpu_interface+0x28/0x70
  osnoise_cpu_die+0xf/0x20
  cpuhp_invoke_callback+0xf8/0x460
  ? __pfx_smpboot_thread_fn+0x10/0x10
  cpuhp_thread_fun+0xf3/0x190
  smpboot_thread_fn+0x18c/0x230
  kthread+0xf7/0x130
  ? __pfx_kthread+0x10/0x10
  ret_from_fork+0x34/0x50
  ? __pfx_kthread+0x10/0x10
  ret_from_fork_asm+0x1b/0x30
  </TASK>
 Modules linked in:
 CR2: 00000000000000a0
 ---[ end trace 0000000000000000 ]---
 RIP: 0010:down_write+0x23/0x70
 Code: 90 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 53 48 89 fb e8 2e bc ff ff bf 01 00 00 00 e8 24 14 31 ff 31 c0 ba 01 00 00 00 <f0> 48 0f b1 13 75 33 65 48 8b 04 25 00 36 03 00 48 89 43 08 bf 01
 RSP: 0018:ffffb17f800e3d98 EFLAGS: 00010246
 RAX: 0000000000000000 RBX: 00000000000000a0 RCX: ffffff8100000000
 RDX: 0000000000000001 RSI: 0000000000000064 RDI: ffffffffb6edd5cc
 RBP: ffffb17f800e3df8 R08: ffff8c6237c61188 R09: 000000008020001b
 R10: ffff8c6237c61160 R11: 0000000000000001 R12: 000000000002da30
 R13: 0000000000000000 R14: ffffffffb6314080 R15: ffff8c6237c61188
 FS:  0000000000000000(0000) GS:ffff8c6237c40000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00000000000000a0 CR3: 0000000102412001 CR4: 0000000000170ee0
 note: cpuhp/1[20] exited with irqs disabled
 note: cpuhp/1[20] exited with preempt_count 1


With running the attached script as:

 # ./ftrace-test-tracers sleep 1

-- Steve

[-- Attachment #2: ftrace-test-tracers --]
[-- Type: application/octet-stream, Size: 799 bytes --]

#!/bin/bash

find_debugfs() {
    debugfs=`cat /proc/mounts | while read mount dir type opts a b; do
	if [ $mount == "debugfs" ]; then
	    echo $dir;
	    break
	fi
    done`
    if [ -z "$debugfs" ]; then
	if ! mount -t debugfs nodev /sys/kernel/debug; then
	    echo "FAILED to mount debugfs"
	    exit -1
	fi
	echo "/sys/kernel/debug"
    else
	echo $debugfs
    fi
}

debugfs=`find_debugfs`
tracedir="$debugfs/tracing"

arg="sleep 10"
if [ $# -gt 0 ]; then
	arg="$@"
fi

for tracer in `cat $tracedir/available_tracers`; do
	if [ $tracer == "nop" ]; then
		continue;
	fi
	echo "Testing tracer $tracer"
	echo $tracer > $tracedir/current_tracer
	echo "running $arg"
	$arg
	echo 0 > $tracedir/tracing_on
	cat $tracedir/trace
	echo nop > $tracedir/current_tracer
	echo 1 > $tracedir/tracing_on
done

  reply	other threads:[~2023-10-04 12:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-29 15:02 [PATCH V3] tracing/timerlat: Hotplug support for the user-space interface Daniel Bristot de Oliveira
2023-10-04  1:03 ` Steven Rostedt
2023-10-04 10:02   ` Daniel Bristot de Oliveira
2023-10-04 12:17     ` Steven Rostedt [this message]
2023-10-04 12:20       ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231004081731.141dfb99@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=bristot@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.