mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Martijn Coenen <maco@android.com>
To: gregkh@linuxfoundation.org, john.stultz@linaro.org,
	tkjos@google.com, arve@android.com, sherryy@android.com,
	tglx@linutronix.de, peterz@infradead.org, amit.pundir@linaro.org
Cc: linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org,
	maco@google.com, Martijn Coenen <maco@android.com>
Subject: [PATCH v3 6/6] ANDROID: binder: Add tracing for binder priority inheritance.
Date: Thu, 26 Oct 2017 16:07:50 +0200	[thread overview]
Message-ID: <20171026140750.119265-7-maco@android.com> (raw)
In-Reply-To: <20171026140750.119265-1-maco@android.com>

This allows to easily trace and visualize priority inheritance
in the binder driver.

Signed-off-by: Martijn Coenen <maco@android.com>
---
 drivers/android/binder.c       |  4 ++++
 drivers/android/binder_trace.h | 24 ++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index af1c3bb3f53e..9bdffa7f9529 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -1203,6 +1203,10 @@ static void binder_do_set_priority(struct task_struct *task,
 			      task->pid, desired.prio,
 			      to_kernel_prio(policy, priority));
 
+	trace_binder_set_priority(task->tgid, task->pid, task->normal_prio,
+				  to_kernel_prio(policy, priority),
+				  desired.prio);
+
 	/* Set the actual priority */
 	if (task->policy != policy || is_rt_policy(policy)) {
 		struct sched_param params;
diff --git a/drivers/android/binder_trace.h b/drivers/android/binder_trace.h
index 76e3b9c8a8a2..b11dffc521e8 100644
--- a/drivers/android/binder_trace.h
+++ b/drivers/android/binder_trace.h
@@ -85,6 +85,30 @@ DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_ioctl_done);
 DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_write_done);
 DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_read_done);
 
+TRACE_EVENT(binder_set_priority,
+	TP_PROTO(int proc, int thread, unsigned int old_prio,
+		 unsigned int desired_prio, unsigned int new_prio),
+	TP_ARGS(proc, thread, old_prio, new_prio, desired_prio),
+
+	TP_STRUCT__entry(
+		__field(int, proc)
+		__field(int, thread)
+		__field(unsigned int, old_prio)
+		__field(unsigned int, new_prio)
+		__field(unsigned int, desired_prio)
+	),
+	TP_fast_assign(
+		__entry->proc = proc;
+		__entry->thread = thread;
+		__entry->old_prio = old_prio;
+		__entry->new_prio = new_prio;
+		__entry->desired_prio = desired_prio;
+	),
+	TP_printk("proc=%d thread=%d old=%d => new=%d desired=%d",
+		  __entry->proc, __entry->thread, __entry->old_prio,
+		  __entry->new_prio, __entry->desired_prio)
+);
+
 TRACE_EVENT(binder_wait_for_work,
 	TP_PROTO(bool proc_work, bool transaction_stack, bool thread_todo),
 	TP_ARGS(proc_work, transaction_stack, thread_todo),
-- 
2.15.0.rc2.357.g7e34df9404-goog

      parent reply	other threads:[~2017-10-26 14:08 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-26 14:07 [PATCH v3 0/6] ANDROID: binder: RT " Martijn Coenen
2017-10-26 14:07 ` [PATCH v3 1/6] ANDROID: binder: add support for RT prio inheritance Martijn Coenen
2017-11-15 13:01   ` Peter Zijlstra
2017-11-16  9:18     ` Martijn Coenen
2017-11-16 11:27       ` Peter Zijlstra
2017-11-16 13:03         ` Martijn Coenen
2017-11-16 15:10           ` Peter Zijlstra
2017-11-17 10:23             ` Martijn Coenen
2017-10-26 14:07 ` [PATCH v3 2/6] ANDROID: binder: add min sched_policy to node Martijn Coenen
2017-11-15 13:02   ` Peter Zijlstra
2017-11-16  9:27     ` Martijn Coenen
2017-10-26 14:07 ` [PATCH v3 3/6] ANDROID: binder: improve priority inheritance Martijn Coenen
2017-11-15 13:03   ` Peter Zijlstra
2017-11-16  9:31     ` Martijn Coenen
2017-10-26 14:07 ` [PATCH v3 4/6] ANDROID: binder: add RT inheritance flag to node Martijn Coenen
2017-11-15 13:05   ` Peter Zijlstra
2017-11-16  9:37     ` Martijn Coenen
2017-10-26 14:07 ` [PATCH v3 5/6] ANDROID: binder: don't check prio permissions on restore Martijn Coenen
2017-11-15 13:08   ` Peter Zijlstra
2017-10-26 14:07 ` Martijn Coenen [this message]

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=20171026140750.119265-7-maco@android.com \
    --to=maco@android.com \
    --cc=amit.pundir@linaro.org \
    --cc=arve@android.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.stultz@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maco@google.com \
    --cc=peterz@infradead.org \
    --cc=sherryy@android.com \
    --cc=tglx@linutronix.de \
    --cc=tkjos@google.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

Powered by JetHome