All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frankie Chang <Frankie.Chang@mediatek.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Todd Kjos" <tkjos@google.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Martijn Coenen" <maco@android.com>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Christian Brauner" <christian@brauner.io>,
	linux-kernel@vger.kernel.org, wsd_upstream@mediatek.com,
	"Jian-Min Liu" <Jian-Min.Liu@mediatek.com>
Subject: Re: [PATCH v13 3/3] binder: add transaction latency tracer
Date: Wed, 11 Nov 2020 23:59:05 +0800	[thread overview]
Message-ID: <1605110345.11768.39.camel@mtkswgap22> (raw)
In-Reply-To: <X6v/VAffVOOy56bG@kroah.com>

On Wed, 2020-11-11 at 16:12 +0100, Greg Kroah-Hartman wrote:
> On Wed, Nov 11, 2020 at 11:03:06PM +0800, Frankie Chang wrote:
> > On Wed, 2020-11-11 at 08:34 +0100, Greg Kroah-Hartman wrote:
> > > > - The reason why printing the related information to
> > > >   kernel information log but not trace buffer is that
> > > >   some abnormal transactions may be pending for a long
> > > >   time ago, they could not be recorded due to buffer
> > > >   limited.
> > > 
> > > Don't abuse the kernel information log for stuff that is just normal
> > > operations.  What is wrong with using the trace buffers here?  That's
> > > what they are designed for from what I can tell.
> > > 
> > As mentioned before, time limitation of recording is the reason why we
> > don't just use trace here.
> 
> What limitation?
> 
> > In some long time stability test, such as MTBF,
> 
> What is "MTBF"?
> 
Mean time between failures (MTBF) is the predicted elapsed time between
inherent failures of a mechanical or electronic system, during normal
system operation. 

And we use MTBF script to run long time stress test to
make sure our product stability is no problem.

> > the exception is caused by a series of transactions interaction.
> > Some abnormal transactions may be pending for a long time ago, they 
> > could not be recorded due to buffer limited.
> 
> How long of a time is this?  If they are pending, only when the timeout
> happens is the trace logged, right?
> 
> Again, please do not abuse the kernel log for this, that is not what it
> is for.
> 
Hmm..Do you mean that make timeout log print to trace buffer but not
kernel log? 

The reason We don't do this is that we need to enable these trace events
and enable trace everytimes before testing. But our testing script could
lead to device reboot, and then it continue testing after reboot. The
reboot would make these trace events disable, and we cannot get the
timeout log which happen after reboot.

> > > > +config BINDER_TRANSACTION_LATENCY_TRACKING
> > > > +	tristate "Android Binder transaction tracking"
> > > > +	help
> > > > +	  Used for track abnormal binder transaction which is over threshold,
> > > > +	  when the transaction is done or be free, this transaction would be
> > > > +	  checked whether it executed overtime.
> > > > +	  If yes, printing out the detailed info.
> > > 
> > > Why is this a separate module?  Who will ever want this split out?
> > > 
> > The reason we split out a separate module is that we adopted the
> > previously discussed recommendations in PATCH v1.
> > 
> > This way all of this tracing code is in-kernel but outside of binder.c.
> 
> Putting it in a single file is fine, but what does this benifit doing it
> in a separate file?  Doesn't it waste more codespace this way?
> 
Yeah, but I think separate file may be more manageable.

> > > > +/*
> > > > + * The reason setting the binder_txn_latency_threshold to 2 sec
> > > > + * is that most of timeout abort is greater or equal to 2 sec.
> > > > + * Making it configurable to let all users determine which
> > > > + * threshold is more suitable.
> > > > + */
> > > > +static uint32_t binder_txn_latency_threshold = 2;
> > > > +module_param_named(threshold, binder_txn_latency_threshold,
> > > > +			uint, 0644);
> > > 
> > > Again, this isn't the 1990's, please do not add module parameters if at
> > > all possible.
> > > 
> > 
> > Is any recommended method here?
> > Because we refer to the method in binder.c, we don't know if this method
> > is not suitable.
> 
> Look at the individual binder instances.  That is what trace should be
> on/off for, not for all binder instances in the system at the same time.
> 
But our testing script is not for specific binder instances, it includes
several testing and tests for several processes.

So the reason we trace for all binder instances is that we cannot
predict which process would happen timeout transaction.

Many thanks
Frankie Chang

  reply	other threads:[~2020-11-11 15:59 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-05  6:52 [PATCH v1 1/1] binder: transaction latency tracking for user build Frankie Chang
2020-02-05  6:52 ` Frankie Chang
2020-02-05  9:36 ` Greg Kroah-Hartman
2020-02-05  9:36   ` Greg Kroah-Hartman
2020-02-05 15:49   ` Joel Fernandes
2020-02-05 15:49     ` Joel Fernandes
2020-02-07  3:10     ` Frankie Chang
2020-02-07  3:10       ` Frankie Chang
2020-02-07  3:17       ` Joel Fernandes
2020-02-07  3:17         ` Joel Fernandes
2020-02-07  6:28         ` Frankie Chang
2020-02-07  6:28           ` Frankie Chang
2020-02-07 13:26           ` Joel Fernandes
2020-02-07 13:26             ` Joel Fernandes
2020-04-13  6:24             ` Frankie Chang
2020-04-13  6:24               ` Frankie Chang
2020-04-15  5:37               ` [PATCH v2] " Frankie Chang
2020-04-15  5:37                 ` Frankie Chang
2020-04-15  5:37                 ` [PATCH v2 1/1] " Frankie Chang
2020-04-15  5:37                   ` Frankie Chang
2020-04-15 22:25                   ` Todd Kjos
2020-04-15 22:25                     ` Todd Kjos
2020-04-29  8:32                     ` Frankie Chang
2020-04-29  8:32                       ` Frankie Chang
2020-04-30  8:13                   ` Frankie Chang
2020-04-30  8:13                     ` Frankie Chang
2020-04-30  8:13                     ` [PATCH v3 1/1] " Frankie Chang
2020-04-30  8:13                       ` Frankie Chang
2020-04-30  8:50                       ` Greg Kroah-Hartman
2020-04-30  8:50                         ` Greg Kroah-Hartman
2020-04-30  8:51                       ` Greg Kroah-Hartman
2020-04-30  8:51                         ` Greg Kroah-Hartman
2020-05-07  8:10                         ` Frankie Chang
2020-05-07  8:10                           ` Frankie Chang
2020-05-07  8:10                           ` [PATCH v4 1/3] binder: move structs from core file to header file Frankie Chang
2020-05-07  8:10                           ` [PATCH v4 2/3] binder: add trace at free transaction Frankie Chang
2020-05-07  8:10                           ` [PATCH v4 3/3] binder: add transaction latency tracer Frankie Chang
2020-05-07  8:55                             ` Greg Kroah-Hartman
2020-05-07  8:55                               ` Greg Kroah-Hartman
2020-05-11 12:32                               ` Frankie Chang
2020-05-11 12:32                                 ` Frankie Chang
2020-06-10 12:23                               ` [PATCH v5] binder: transaction latency tracking for user build Frankie Chang
2020-06-10 12:23                                 ` Frankie Chang
2020-06-10 12:23                                 ` [PATCH v5 1/3] binder: move structs from core file to header file Frankie Chang
2020-06-10 12:23                                 ` [PATCH v5 2/3] binder: add trace at free transaction Frankie Chang
2020-07-20 18:23                                   ` Todd Kjos
2020-07-20 18:23                                     ` Todd Kjos
2020-07-23  2:47                                     ` Frankie Chang
2020-07-23  2:47                                       ` Frankie Chang
2020-06-10 12:23                                 ` [PATCH v5 3/3] binder: add transaction latency tracer Frankie Chang
2020-07-20 18:56                                   ` Todd Kjos
2020-07-20 18:56                                     ` Todd Kjos
2020-07-23  3:01                                     ` Frankie Chang
2020-07-23  3:01                                       ` Frankie Chang
2020-07-02 13:25                                 ` [PATCH v5] binder: transaction latency tracking for user build Frankie Chang
2020-07-02 13:25                                   ` Frankie Chang
2020-07-20 13:40                                   ` Frankie Chang
2020-07-20 13:40                                     ` Frankie Chang
2020-07-28  3:19                                     ` [PATCH v6] " Frankie Chang
2020-07-28  3:19                                       ` Frankie Chang
2020-07-28  3:19                                       ` [PATCH v6 1/3] binder: move structs from core file to header file Frankie Chang
2020-07-28  3:19                                         ` Frankie Chang
2020-07-28  3:20                                       ` [PATCH v6 2/3] binder: add trace at free transaction Frankie Chang
2020-07-28  3:20                                         ` Frankie Chang
2020-07-31 18:50                                         ` Todd Kjos
2020-07-31 18:50                                           ` Todd Kjos
2020-08-03  3:11                                           ` Frankie Chang
2020-08-03  3:11                                             ` Frankie Chang
2020-08-03 15:12                                             ` Todd Kjos
2020-08-03 15:12                                               ` Todd Kjos
2020-08-04  2:45                                               ` Frankie Chang
2020-08-04  2:45                                                 ` Frankie Chang
2020-08-04 13:59                                                 ` [PATCH v7] binder: transaction latency tracking for user build Frankie Chang
2020-08-04 13:59                                                   ` Frankie Chang
2020-08-04 13:59                                                   ` [PATCH v7 1/3] binder: move structs from core file to header file Frankie Chang
2020-08-04 13:59                                                     ` Frankie Chang
2020-08-04 15:24                                                     ` Todd Kjos
2020-08-04 15:24                                                       ` Todd Kjos
2020-08-04 13:59                                                   ` [PATCH v7 2/3] binder: add trace at free transaction Frankie Chang
2020-08-04 13:59                                                     ` Frankie Chang
2020-08-04 15:26                                                     ` Todd Kjos
2020-08-04 15:26                                                       ` Todd Kjos
2020-08-04 13:59                                                   ` [PATCH v7 3/3] binder: add transaction latency tracer Frankie Chang
2020-08-04 13:59                                                     ` Frankie Chang
2020-08-04 15:28                                                     ` Todd Kjos
2020-08-04 15:28                                                       ` Todd Kjos
2020-09-07 14:41                                                     ` peter enderborg
2020-09-07 14:41                                                       ` peter enderborg
2020-09-03 16:21                                                   ` [PATCH v7] binder: transaction latency tracking for user build Greg Kroah-Hartman
2020-09-03 16:21                                                     ` Greg Kroah-Hartman
2020-09-07  6:49                                                     ` Frankie Chang
2020-09-07  6:49                                                       ` Frankie Chang
2020-09-07  7:00                                                       ` Greg Kroah-Hartman
2020-09-07  7:00                                                         ` Greg Kroah-Hartman
2020-09-07 12:00                                                         ` [PATCH v8] " Frankie Chang
2020-09-07 12:00                                                           ` Frankie Chang
2020-09-07 12:00                                                           ` [PATCH v8 1/3] binder: move structs from core file to header file Frankie Chang
2020-09-07 12:00                                                           ` [PATCH v8 2/3] binder: add trace at free transaction Frankie Chang
2020-09-07 12:00                                                           ` [PATCH v8 3/3] binder: add transaction latency tracer Frankie Chang
2020-09-07 12:25                                                             ` Greg Kroah-Hartman
2020-09-07 12:25                                                               ` Greg Kroah-Hartman
2020-09-07 13:51                                                               ` Frankie Chang
2020-09-07 13:51                                                                 ` Frankie Chang
2020-09-07 14:09                                                                 ` Greg Kroah-Hartman
2020-09-07 14:09                                                                   ` Greg Kroah-Hartman
2020-09-08  5:38                                                                   ` Frankie Chang
2020-09-08  5:38                                                                     ` Frankie Chang
2020-09-08 14:06                                                                     ` [PATCH v9] binder: transaction latency tracking for user build Frankie Chang
2020-09-08 14:06                                                                       ` Frankie Chang
2020-09-08 14:06                                                                       ` [PATCH v9 1/3] binder: move structs from core file to header file Frankie Chang
2020-09-08 14:06                                                                       ` [PATCH v9 2/3] binder: add trace at free transaction Frankie Chang
2020-09-08 14:06                                                                       ` [PATCH v9 3/3] binder: add transaction latency tracer Frankie Chang
2020-09-16 17:38                                                                         ` Greg Kroah-Hartman
2020-09-16 17:38                                                                           ` Greg Kroah-Hartman
2020-10-15 17:02                                                                           ` [PATCH v10 " Frankie Chang
2020-10-15 17:02                                                                             ` Frankie Chang
2020-10-15 17:02                                                                             ` [PATCH v10 1/3] binder: move structs from core file to header file Frankie Chang
2020-10-15 17:02                                                                             ` [PATCH v10 2/3] binder: add trace at free transaction Frankie Chang
2020-10-15 17:02                                                                             ` [PATCH v10 3/3] binder: add transaction latency tracer Frankie Chang
2020-10-29 16:08                                                                             ` Frankie Chang
2020-11-09 17:46                                                                               ` Greg Kroah-Hartman
2020-11-10  7:33                                                                                 ` Frankie Chang
2020-11-10  7:52                                                                                   ` Greg Kroah-Hartman
2020-11-10  7:53                                                                                     ` Greg Kroah-Hartman
2020-11-10  8:05                                                                                       ` Frankie Chang
2020-11-10 14:19                                                                                         ` [PATCH v12] " Frankie Chang
     [not found]                                                                                           ` <1605017955-18027-3-git-send-email-Frankie.Chang@mediatek.com>
2020-11-10 15:13                                                                                             ` [PATCH v12 2/3] Since the original trace_binder_transaction_received cannot precisely present the real finished time of transaction, adding a trace_binder_txn_latency_free at the point of free transaction may be more close to it Greg Kroah-Hartman
2020-11-11  3:02                                                                                               ` [PATCH v13] binder: add transaction latency tracer Frankie Chang
     [not found]                                                                                                 ` <1605063764-12930-4-git-send-email-Frankie.Chang@mediatek.com>
2020-11-11  7:34                                                                                                   ` [PATCH v13 3/3] " Greg Kroah-Hartman
2020-11-11 15:02                                                                                                     ` [PATCH v14] " Frankie Chang
     [not found]                                                                                                       ` <1605106964-25838-2-git-send-email-Frankie.Chang@mediatek.com>
2020-11-11 15:12                                                                                                         ` [PATCH v14 1/3] binder: move structs from core file to header file Greg Kroah-Hartman
2020-11-11 15:58                                                                                                           ` Frankie Chang
     [not found]                                                                                                     ` <1605106986.11768.14.camel@mtkswgap22>
2020-11-11 15:12                                                                                                       ` [PATCH v13 3/3] binder: add transaction latency tracer Greg Kroah-Hartman
2020-11-11 15:59                                                                                                         ` Frankie Chang [this message]
2020-11-13 15:45                                                                                                           ` Greg Kroah-Hartman
2020-11-11  7:34                                                                                                 ` [PATCH v13] " Greg Kroah-Hartman
2020-09-16 15:29                                                                       ` [PATCH v9] binder: transaction latency tracking for user build Greg Kroah-Hartman
2020-09-16 15:29                                                                         ` Greg Kroah-Hartman
2020-09-07 12:24                                                           ` [PATCH v8] " Greg Kroah-Hartman
2020-09-07 12:24                                                             ` Greg Kroah-Hartman
2020-07-28  3:20                                       ` [PATCH v6 3/3] binder: add transaction latency tracer Frankie Chang
2020-07-28  3:20                                         ` Frankie Chang
2020-05-07 18:21                             ` [PATCH v4 " Todd Kjos
2020-05-07 18:21                               ` Todd Kjos
2020-05-11 12:35                               ` Frankie Chang
2020-05-11 12:35                                 ` Frankie Chang

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=1605110345.11768.39.camel@mtkswgap22 \
    --to=frankie.chang@mediatek.com \
    --cc=Jian-Min.Liu@mediatek.com \
    --cc=arve@android.com \
    --cc=christian@brauner.io \
    --cc=gregkh@linuxfoundation.org \
    --cc=joel@joelfernandes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maco@android.com \
    --cc=tkjos@google.com \
    --cc=wsd_upstream@mediatek.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.