All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: "Ingo Molnar" <mingo@elte.hu>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"Ananth N Mavinakayanahalli" <ananth@in.ibm.com>,
	"Avi Kivity" <avi@redhat.com>, "Andi Kleen" <ak@linux.intel.com>,
	"Christoph Hellwig" <hch@infradead.org>,
	"Frank Ch. Eigler" <fche@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Jason Baron" <jbaron@redhat.com>,
	"Jim Keniston" <jkenisto@us.ibm.com>,
	"K.Prasad" <prasad@linux.vnet.ibm.com>,
	"Lai Jiangshan" <laijs@cn.fujitsu.com>,
	"Li Zefan" <lizf@cn.fujitsu.com>,
	PrzemysławPawełczyk <przemyslaw@pawelczyk.it>,
	"Roland McGrath" <roland@redhat.com>,
	"Sam Ravnborg" <sam@ravnborg.org>,
	"Srikar Dronamraju" <srikar@linux.vnet.ibm.com>,
	"Tom Zanussi" <tzanussi@gmail.com>,
	"Vegard Nossum" <vegard.nossum@gmail.com>,
	systemtap <systemtap@sources.redhat.com>,
	kvm <kvm@vger.kernel.org>,
	DLE <dle-develop@lists.sourceforge.net>
Subject: Re: [TOOL] kprobestest : Kprobe stress test tool
Date: Thu, 20 Aug 2009 21:00:07 -0400	[thread overview]
Message-ID: <4A8DF197.2080107@redhat.com> (raw)
In-Reply-To: <20090821000108.GC6078@nowhere>

Frederic Weisbecker wrote:
>> Most of them can be fixed just by adding __kprobes.
>> Some of them which are already in the another section, kprobes
>> should check the symbols are in the section.
>
>
> You mean the blacklist?
>
> I also fear that putting bad kprobed functions into the kprobe
> section or into the blacklist may hide some kprobe internal bugs.
>
> Doing so is indeed mandatory for functions that trigger tracing
> recursion of things like that, but what if kprobe has an internal
> bug that only triggers while probe a certain class of function.
>
> Ie: it would be nice to identify the reason of the crash for
> each culprit in these lists.
 >
 > That may even help to find the others in advance.

Indeed, actually I've found some bugs while making jump-optimization
patches by using this stress test.
But some of them are obviously what we just forget to add __kprobes,
since those will be called from kprobes int3 handling functions.

And also, many lock-related code has been changed. I think
kprobes should use raw_*_lock, or prohibit to probe lock monitoring
functions like lockdep, because it will cause recursive call.

>
> Also kprobes seems to be a very fragile feature (that's what
> this selftest unearthes at least for me).
> And it really needs a recursion detection that stops every kprobing
> while reaching a given threshold of recursion. Something
> that would dump the stack and the falling kprobe structure.

Hmm, kprobes already has recursion detection(kp->nmiss), so
maybe, we can check it.

>
> That would avoid such hard lockups and also help to identify
> the dangerous symbols to probe.
>
>
>
>>> The problem is that I don't have any serial line in this
>>> box then I can't catch any crash log.
>>> My K7 testbox also died in my arms this afternoon.
>>>
>>> But I still have two other testboxes (one P2 and one P3),
>>> hopefully I could reproduce the problem in these boxes
>>> in which I can connect a serial line.
>>
>> Thank you for helping me to find it!
>>
>>> I've pushed your patches in the following git tree:
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/fgrederic/random-tracing.git \
>>> 	tracing/kprobes
>>>
>>> So you can send patches on top of this one.
>>
>> Great! I've found another trivial bugs, so I'll fix those on it.
>
> Cool :)
>
> Btw, here is the result of your stress test in a PIII (attaching the log
> and the config).

Thanks, I'll check that.

Thank you,

-- 
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division

e-mail: mhiramat@redhat.com


WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <mhiramat@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: "Ingo Molnar" <mingo@elte.hu>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"Ananth N Mavinakayanahalli" <ananth@in.ibm.com>,
	"Avi Kivity" <avi@redhat.com>, "Andi Kleen" <ak@linux.intel.com>,
	"Christoph Hellwig" <hch@infradead.org>,
	"Frank Ch. Eigler" <fche@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Jason Baron" <jbaron@redhat.com>,
	"Jim Keniston" <jkenisto@us.ibm.com>,
	"K.Prasad" <prasad@linux.vnet.ibm.com>,
	"Lai Jiangshan" <laijs@cn.fujitsu.com>,
	"Li Zefan" <lizf@cn.fujitsu.com>,
	PrzemysławPawełczyk <przemyslaw@pawelczyk.it>,
	"Roland McGrath" <roland@redhat.com>,
	"Sam Ravnborg" <sam@ravnborg.org>,
	"Srikar Dronamraju" <srikar@linux.vnet.ibm.com>,
	"Tom Zanussi" <tzanussi@gmail.com>,
	"Vegard Nossum" <vegard.nossum@gmail.com>
Subject: Re: [TOOL] kprobestest : Kprobe stress test tool
Date: Thu, 20 Aug 2009 21:00:07 -0400	[thread overview]
Message-ID: <4A8DF197.2080107@redhat.com> (raw)
In-Reply-To: <20090821000108.GC6078@nowhere>

Frederic Weisbecker wrote:
>> Most of them can be fixed just by adding __kprobes.
>> Some of them which are already in the another section, kprobes
>> should check the symbols are in the section.
>
>
> You mean the blacklist?
>
> I also fear that putting bad kprobed functions into the kprobe
> section or into the blacklist may hide some kprobe internal bugs.
>
> Doing so is indeed mandatory for functions that trigger tracing
> recursion of things like that, but what if kprobe has an internal
> bug that only triggers while probe a certain class of function.
>
> Ie: it would be nice to identify the reason of the crash for
> each culprit in these lists.
 >
 > That may even help to find the others in advance.

Indeed, actually I've found some bugs while making jump-optimization
patches by using this stress test.
But some of them are obviously what we just forget to add __kprobes,
since those will be called from kprobes int3 handling functions.

And also, many lock-related code has been changed. I think
kprobes should use raw_*_lock, or prohibit to probe lock monitoring
functions like lockdep, because it will cause recursive call.

>
> Also kprobes seems to be a very fragile feature (that's what
> this selftest unearthes at least for me).
> And it really needs a recursion detection that stops every kprobing
> while reaching a given threshold of recursion. Something
> that would dump the stack and the falling kprobe structure.

Hmm, kprobes already has recursion detection(kp->nmiss), so
maybe, we can check it.

>
> That would avoid such hard lockups and also help to identify
> the dangerous symbols to probe.
>
>
>
>>> The problem is that I don't have any serial line in this
>>> box then I can't catch any crash log.
>>> My K7 testbox also died in my arms this afternoon.
>>>
>>> But I still have two other testboxes (one P2 and one P3),
>>> hopefully I could reproduce the problem in these boxes
>>> in which I can connect a serial line.
>>
>> Thank you for helping me to find it!
>>
>>> I've pushed your patches in the following git tree:
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/fgrederic/random-tracing.git \
>>> 	tracing/kprobes
>>>
>>> So you can send patches on top of this one.
>>
>> Great! I've found another trivial bugs, so I'll fix those on it.
>
> Cool :)
>
> Btw, here is the result of your stress test in a PIII (attaching the log
> and the config).

Thanks, I'll check that.

Thank you,

-- 
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division

e-mail: mhiramat@redhat.com

  reply	other threads:[~2009-08-21  0:57 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-13 20:34 [PATCH -tip v14 00/12] tracing: kprobe-based event tracer and x86 instruction decoder Masami Hiramatsu
2009-08-13 20:34 ` Masami Hiramatsu
2009-08-13 20:34 ` [PATCH -tip v14 01/12] x86: instruction decoder API Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-19 23:42   ` Frederic Weisbecker
2009-08-20  0:21     ` Frederic Weisbecker
2009-08-20 15:03       ` Masami Hiramatsu
2009-08-20 15:03         ` Masami Hiramatsu
2009-08-20 15:25         ` Frederic Weisbecker
2009-08-20 16:16           ` Masami Hiramatsu
2009-08-20 16:16             ` Masami Hiramatsu
2009-08-20 18:07             ` Frederic Weisbecker
2009-08-20 19:01               ` Masami Hiramatsu
2009-08-20 19:01                 ` Masami Hiramatsu
2009-08-20 20:14                 ` Frederic Weisbecker
2009-08-20 14:42     ` Masami Hiramatsu
2009-08-20 14:42       ` Masami Hiramatsu
2009-08-20 14:46       ` Frederic Weisbecker
2009-08-13 20:34 ` [PATCH -tip v14 02/12] x86: x86 instruction decoder build-time selftest Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-13 20:34 ` [PATCH -tip v14 03/12] kprobes: checks probe address is instruction boudary on x86 Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-18 23:03   ` Frederic Weisbecker
2009-08-18 23:17     ` Masami Hiramatsu
2009-08-18 23:17       ` Masami Hiramatsu
2009-08-18 23:43       ` Frederic Weisbecker
2009-08-19  0:19         ` Masami Hiramatsu
2009-08-19  0:19           ` Masami Hiramatsu
2009-08-19  0:46           ` Frederic Weisbecker
2009-08-13 20:34 ` [PATCH -tip v14 04/12] kprobes: cleanup fix_riprel() using insn decoder " Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-13 20:34 ` [PATCH -tip v14 05/12] x86: add pt_regs register and stack access APIs Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-13 20:34 ` [PATCH -tip v14 06/12] tracing: ftrace dynamic ftrace_event_call support Masami Hiramatsu
2009-08-13 20:34   ` Masami Hiramatsu
2009-08-13 20:35 ` [PATCH -tip v14 07/12] tracing: Introduce TRACE_FIELD_ZERO() macro Masami Hiramatsu
2009-08-13 20:35   ` Masami Hiramatsu
2009-08-19  1:09   ` Frederic Weisbecker
2009-08-19  2:20     ` Masami Hiramatsu
2009-08-19  2:20       ` Masami Hiramatsu
2009-08-19 13:58       ` Frederic Weisbecker
2009-08-13 20:35 ` [PATCH -tip v14 08/12] tracing: add kprobe-based event tracer Masami Hiramatsu
2009-08-13 20:35   ` Masami Hiramatsu
2009-08-19  1:23   ` Frederic Weisbecker
2009-08-13 20:35 ` [PATCH -tip v14 09/12] tracing: Kprobe-tracer supports more than 6 arguments Masami Hiramatsu
2009-08-13 20:35   ` Masami Hiramatsu
2009-08-13 20:35 ` [PATCH -tip v14 10/12] tracing: Generate names for each kprobe event automatically Masami Hiramatsu
2009-08-13 20:35   ` Masami Hiramatsu
2009-08-13 20:35 ` [PATCH -tip v14 11/12] tracing: Kprobe tracer assigns new event ids for each event Masami Hiramatsu
2009-08-13 20:35   ` Masami Hiramatsu
2009-08-13 20:35 ` [PATCH -tip v14 12/12] tracing: Add kprobes event profiling interface Masami Hiramatsu
2009-08-13 20:35   ` Masami Hiramatsu
2009-08-13 20:57 ` [TOOL] kprobestest : Kprobe stress test tool Masami Hiramatsu
2009-08-13 20:57   ` Masami Hiramatsu
2009-08-20 18:43   ` Frederic Weisbecker
2009-08-20 19:45     ` Masami Hiramatsu
2009-08-20 19:45       ` Masami Hiramatsu
2009-08-21  0:01       ` Frederic Weisbecker
2009-08-21  1:00         ` Masami Hiramatsu [this message]
2009-08-21  1:00           ` Masami Hiramatsu
2009-08-21 19:43         ` [PATCH tracing/kprobes 1/4] x86: Fix x86 instruction decoder selftest to check only .text Masami Hiramatsu
2009-08-21 19:43           ` Masami Hiramatsu
2009-08-23 19:34           ` Frederic Weisbecker
2009-08-21 19:43         ` [PATCH tracing/kprobes 2/4] x86: Check awk features before generating inat-tables.c Masami Hiramatsu
2009-08-21 19:43           ` Masami Hiramatsu
2009-08-21 19:43         ` [PATCH tracing/kprobes 3/4] tracing/kprobes: Fix format typo in trace_kprobes Masami Hiramatsu
2009-08-21 19:43           ` Masami Hiramatsu
2009-08-21 19:43         ` [PATCH tracing/kprobes 4/4] tracing/kprobes: Change trace_arg to probe_arg Masami Hiramatsu
2009-08-21 19:43           ` Masami Hiramatsu
2009-08-13 20:59 ` [TOOL] c2kpe: C expression to kprobe event format converter Masami Hiramatsu
2009-08-13 20:59   ` Masami Hiramatsu
2009-08-13 21:05   ` Christoph Hellwig
2009-08-13 21:05     ` Christoph Hellwig
2009-08-30 19:50   ` Frederic Weisbecker
2009-08-31  4:14     ` Masami Hiramatsu
2009-08-31  4:14       ` Masami Hiramatsu
2009-08-31 22:14       ` Frederic Weisbecker

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=4A8DF197.2080107@redhat.com \
    --to=mhiramat@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=ananth@in.ibm.com \
    --cc=avi@redhat.com \
    --cc=dle-develop@lists.sourceforge.net \
    --cc=fche@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hch@infradead.org \
    --cc=hpa@zytor.com \
    --cc=jbaron@redhat.com \
    --cc=jkenisto@us.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=mingo@elte.hu \
    --cc=prasad@linux.vnet.ibm.com \
    --cc=przemyslaw@pawelczyk.it \
    --cc=roland@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=sam@ravnborg.org \
    --cc=srikar@linux.vnet.ibm.com \
    --cc=systemtap@sources.redhat.com \
    --cc=tzanussi@gmail.com \
    --cc=vegard.nossum@gmail.com \
    /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.