mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: kosaki.motohiro@jp.fujitsu.com,
	fche@redhat.com (Frank Ch. Eigler),
	zhaolei@cn.fujitsu.com, mingo@elte.hu, fweisbec@gmail.com,
	rostedt@goodmis.org, tzanussi@gmail.com,
	linux-kernel@vger.kernel.org, oleg@redhat.com
Subject: Re: [PATCH 0/4] workqueue_tracepoint: Add worklet tracepoints for worklet lifecycle tracing
Date: Wed, 29 Apr 2009 14:21:26 +0900 (JST)	[thread overview]
Message-ID: <20090429133813.4B14.A69D9226@jp.fujitsu.com> (raw)
In-Reply-To: <20090428212919.c1f6f4b4.akpm@linux-foundation.org>

> On Wed, 29 Apr 2009 13:03:51 +0900 (JST) KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:
> 
> > > But in this case the approach is different - the problem statement is
> > > "I need to add tracepoints to subsystem X".  It's not driven by any
> > > particular development problem.  So there's no guarantee at all that the
> > > end result will be _useful_ for anything!
> > 
> > May I explain my opinion? I am original patch author of latency enhancement of
> > workqueue tracer.
> > 
> > In real world, desktop and server user use various the out of tree driver and kernel
> > module (e.g. some graphics driver, DRBD, proprietery security software et.al).
> > and poor quality driver often make bug in asynchronous processing place
> > (e.g. timer, workqueue, irq).
> > 
> > the bug may not be easy fixable and analyzable. if kernel oops happend,
> > it's easy. oops log point out suspector clearly in almost case.
> > but if the poor driver makes large latency, the evidence often vanished
> > before latency occured.
> > 
> > When trouble happend, An administrator get large bafflement. "Oh, which software
> > is wrong? how do I divide good and wrong software?".
> > In past days, We always say "hehe, you use proprietery module. can you 
> > reproduce this bug on upstream kernel only?". this answer don't help
> > nor solve end-user. it is one of escape of accountability.
> > 
> > The good well defined static tracepoint help its situation largely.
> > 
> > 
> > In addition, As far as I know, typical DTrace user don't use dynamic 
> > tracing feature at all.
> > They think they don't know how choice proper probe point for dynamic tracing.
> > They repeatedly strongly hope to increase well defined static probe point. they
> > think dynamic trace feature is too hard to use.
> > 
> > I also strongly dislike random place tracepoint. but I don't think this patch
> > series is random.
> > and I think other asynchronous processing subsystem need static tracepoint.
> 
> OK.
> 
> It's quite unclear to me how we get from here to a situation where we
> have something which your administrator can use.  Hopefully someone
> some day will pull all this together into an overall integrated
> toolset.  The fact that the kernel work is being done (afaict)
> waaaaaaaay in advance of that development means that we'll probably
> have to revist the kernel work.  So be it.
> 
> But your administrator wouldn't even know to go looking at workqueues! 
> Unless the userspace support tools are very very good.  He might
> instead spend hours poking at the sleep-tracer or the rwsem-tracer or
> the slow-work-tracer or blah blah.

Agreed. then I add latency list displaying feature to worktracer stastics.
It display suspect workqueue (or no need doubt workqueue).

My expected use-case is:
good sorted-out stastics narrow down suspector. and most detailed information
can be get by event tracer.

IOW, generally I agree with you. good userspace tools is very very important.
but workqueue tracer latency view, I think current stastics is enough.


> I expect that a generic function-entry tracer (which we already have)
> would be the starting tool for diagnosing such a problem.  Probably it
> would be the ending tool too.

I think function tracer is control flow oriented tracer. event tracer is data flow
oriented tracer.
they see another aspect to one thing.

example, if big latency is caused complex funny locking dependency, control
flow analysis don't solve issue, we need data flow analysis.




> What's the terminal state here?  The end result?  I see lots of random
> somewhat-useless-looking tracers being added, but what are we actually
> working towards?
> 
> Until we know that, how do we know that we're not adding stuff
> which we won't need (as I suspect we are doing)?

Oh well. I can't say the goal of ftrace framework itself.

I only say:
many issue and trouble in real world isn't kernel itself
problem. but we aren't always white hands. There are various half gray
issue.
In past days, we always say "it isn't kernel bug, it's userland mis-use".
but I don't think it's real solution. it makes game of cat and mouse.

strong analysis helping feature seems right way of improve linux quality
of end-user view (not kernel developer view).

Fortunately, I'm working for big server vendor now and I can see
past trouble log and I also have some userland development experience. 
then, I think I know some frequently troubled place
than pure kernel developer and I can help to discuss "which is proper 
place of well known tracepoint".

but it's only "I think". I need good discussion.




  reply	other threads:[~2009-04-29  5:21 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-13  0:53 [PATCH 0/1] tracing, workqueuetrace: Make workqueue tracepoints use TRACE_EVENT macro Zhaolei
2009-04-13  0:54 ` [PATCH 1/1] " Zhaolei
2009-04-13  1:44   ` KOSAKI Motohiro
2009-04-13  3:25     ` KOSAKI Motohiro
2009-04-13  3:49       ` Zhaolei
2009-04-13  3:57         ` Ingo Molnar
2009-04-13  4:07           ` Re: [PATCH 1/1] tracing, workqueuetrace: Make workqueuetracepoints " Zhaolei
2009-04-13  3:57         ` [PATCH 1/1] tracing, workqueuetrace: Make workqueue tracepoints " KOSAKI Motohiro
2009-04-13  5:52           ` [PATCH v2 1/4] ftrace, " KOSAKI Motohiro
2009-04-13  5:53             ` [PATCH v2 2/4] ftrace: introduce workqueue_handler_exit tracepoint and rename workqueue_execution to workqueue_handler_entry KOSAKI Motohiro
2009-04-13 16:25               ` Frederic Weisbecker
2009-04-15 10:22                 ` Oleg Nesterov
2009-04-15 11:09                   ` Ingo Molnar
2009-04-15 11:33                     ` Oleg Nesterov
2009-04-15 11:45                       ` Ingo Molnar
2009-04-15 12:05                         ` Oleg Nesterov
2009-04-13  5:53             ` [PATCH v2 3/4] ftrace: add max execution time mesurement to workqueue tracer KOSAKI Motohiro
2009-04-13 16:16               ` Frederic Weisbecker
2009-04-13 21:21                 ` Ingo Molnar
2009-04-14  1:43                 ` KOSAKI Motohiro
2009-04-14 11:40                   ` Frederic Weisbecker
2009-04-15  0:31                     ` KOSAKI Motohiro
2009-04-13  5:55             ` [PATCH v2 4/4] ftrace: add latecy mesurement feature " KOSAKI Motohiro
2009-04-14  2:50               ` KOSAKI Motohiro
2009-04-13 15:24             ` [PATCH v2 1/4] ftrace, workqueuetrace: Make workqueue tracepoints use TRACE_EVENT macro Frederic Weisbecker
2009-04-14  4:03             ` [PATCH v2 5/4] ftrace, workqueuetrace: display work name KOSAKI Motohiro
2009-04-14 21:16               ` Frederic Weisbecker
2009-04-14 23:55                 ` KOSAKI Motohiro
2009-04-15  1:15                   ` Frederic Weisbecker
2009-04-15  6:13                     ` KOSAKI Motohiro
2009-04-15  6:17                       ` Zhaolei
2009-04-15  9:44                       ` Ingo Molnar
2009-04-15 16:23                       ` Frederic Weisbecker
2009-04-17  6:56                       ` [PATCH v3 0/1] ftrace, workqueuetrace: Make workqueue tracepoints use TRACE_EVENT macro Zhaolei
2009-04-17  7:15                         ` [PATCH v3 1/1] " Zhaolei
2009-04-17 13:45                           ` Ingo Molnar
2009-04-20  1:30                             ` [PATCH v3 1/1] ftrace, workqueuetrace: Make workqueuetracepoints " Zhaolei
2009-04-20  1:38                               ` KOSAKI Motohiro
2009-04-20  1:43                                 ` Zhaolei
2009-04-20  1:49                                   ` KOSAKI Motohiro
2009-04-20  8:46                                     ` Ingo Molnar
2009-04-20 22:25                                       ` Oleg Nesterov
2009-04-20 23:48                                         ` Frederic Weisbecker
2009-04-21 15:28                                           ` Oleg Nesterov
2009-04-21 15:50                                             ` Oleg Nesterov
2009-04-21 18:33                                               ` Frederic Weisbecker
2009-04-21 18:28                                             ` Frederic Weisbecker
2009-04-21 19:37                                               ` Oleg Nesterov
2009-04-24 11:42                             ` [PATCH 0/4] workqueue_tracepoint: Add worklet tracepoints for worklet lifecycle tracing Zhaolei
2009-04-24 11:43                               ` [PATCH 1/4] workqueue_tracepoint: introduce workqueue_handler_exit tracepoint and rename workqueue_execution to workqueue_handler_entry Zhaolei
2009-04-24 11:45                               ` [PATCH 2/4] workqueue_tracepoint: Add workqueue_flush and worklet_cancel tracepoint Zhaolei
2009-04-24 11:45                               ` [PATCH 3/4] workqueue_tracepoint: Change tracepoint name to fit worklet and workqueue lifecycle Zhaolei
2009-04-24 11:46                               ` [PATCH 4/4] workqueue_trace: Separate worklet_insertion into worklet_enqueue and worklet_enqueue_delayed Zhaolei
2009-04-24 20:06                               ` [PATCH 0/4] workqueue_tracepoint: Add worklet tracepoints for worklet lifecycle tracing Andrew Morton
2009-04-24 22:59                                 ` Frederic Weisbecker
2009-04-24 23:20                                   ` Andrew Morton
2009-04-25  0:37                                     ` Frederic Weisbecker
2009-04-25  1:28                                       ` Andrew Morton
2009-04-25  2:00                                         ` Steven Rostedt
2009-04-25  2:24                                           ` Andrew Morton
2009-04-25  2:51                                             ` Steven Rostedt
2009-04-25  3:10                                               ` Andrew Morton
2009-04-25  3:32                                                 ` Steven Rostedt
2009-04-26 10:47                                         ` Ingo Molnar
2009-04-27  5:44                                           ` Andrew Morton
2009-04-27 15:02                                             ` Oleg Nesterov
2009-04-27 15:43                                               ` Ingo Molnar
2009-04-27 19:09                                                 ` Oleg Nesterov
2009-04-28 13:42                                               ` Frederic Weisbecker
2009-04-28 16:43                                                 ` Oleg Nesterov
2009-04-28 17:49                                                   ` Frederic Weisbecker
2009-04-24 23:27                                   ` Frederic Weisbecker
2009-04-28 17:24                                 ` Frank Ch. Eigler
2009-04-28 18:48                                   ` Andrew Morton
2009-04-28 20:51                                     ` Frank Ch. Eigler
2009-04-29  4:03                                     ` KOSAKI Motohiro
2009-04-29  4:29                                       ` Andrew Morton
2009-04-29  5:21                                         ` KOSAKI Motohiro [this message]
2009-04-20 17:11                           ` [PATCH v3 1/1] ftrace, workqueuetrace: Make workqueue tracepoints use TRACE_EVENT macro Frederic Weisbecker
2009-04-21  1:20                             ` KOSAKI Motohiro
2009-04-20  6:42                       ` [PATCH 0/4] ftrace, workqueuetrace: Add worklet informationame Zhaolei
2009-04-20  6:58                         ` [PATCH 1/4] trace_workqueue: use list_for_each_entry() instead of list_for_each_entry_safe() Zhaolei
2009-04-20  7:26                           ` Frederic Weisbecker
2009-04-20  6:59                         ` [PATCH 2/4] trace_workqueue: Remove cpu_workqueue_stats->first_entry Zhaolei
2009-04-20  7:02                         ` [PATCH 3/4] trace_workqueue: Remove blank line between each cpu Zhaolei
2009-04-20  7:09                         ` [PATCH 4/4] trace_workqueue: Add worklet information Zhaolei
2009-04-20 11:36                           ` Frederic Weisbecker
2009-04-21  1:57                             ` Zhaolei
2009-04-21 23:39                               ` Frederic Weisbecker
2009-04-20  7:23                         ` [PATCH 0/4] ftrace, workqueuetrace: Add worklet informationame Frederic Weisbecker
2009-04-13 14:34     ` [PATCH 1/1] tracing, workqueuetrace: Make workqueue tracepoints use TRACE_EVENT macro Frederic Weisbecker
2009-04-13 14:13   ` Frederic Weisbecker
2009-04-15  6:47     ` KOSAKI Motohiro
2009-04-13 13:57 ` [PATCH 0/1] " 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=20090429133813.4B14.A69D9226@jp.fujitsu.com \
    --to=kosaki.motohiro@jp.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=fche@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=oleg@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=tzanussi@gmail.com \
    --cc=zhaolei@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®