[PATCH v7] binder: transaction latency tracking for user build

From: Frankie Chang
Date: Tue Aug 04 2020 - 10:03:13 EST

Frankie.Chang (3):
binder: move structs from core file to header file
binder: add trace at free transaction.
binder: add transaction latency tracer

drivers/android/Kconfig | 8 +
drivers/android/Makefile | 1 +
drivers/android/binder.c | 425 ++-----------------------------
drivers/android/binder_internal.h | 417 ++++++++++++++++++++++++++++++
drivers/android/binder_latency_tracer.c | 112 ++++++++
drivers/android/binder_trace.h | 49 ++++
6 files changed, 607 insertions(+), 405 deletions(-) create mode 100644 drivers/android/binder_latency_tracer.c

Change from v7:
- Use the passed-in values instead of accessing via t->from/to_proc/to_thread
for trace_binder_txn_latency_free, when trace_binder_txn_latency_free_enable() return true.
- make a helper function to do the above.

Change from v6:
- change CONFIG_BINDER_TRANSACTION_LATENCY_TRACKING type from bool to tristate
- add comments to @timestamp and @tv under struct binder_transaction
- make binder_txn_latency threshold configurable
- enhance lock protection

Change from v5:
- change config name to the proper one, CONFIG_BINDER_TRANSACTION_LATENCY_TRACKING.
- change tracepoint name to more descriptive one, trace_binder_txn_latency_(alloc|info|free)
- enhance some lock protection.

Change from v4:
- split up into patch series.

Change from v3:
- use tracepoints for binder_update_info and print_binder_transaction_ext,
instead of custom registration functions.

Change from v2:
- create transaction latency module to monitor slow transaction.

Change from v1:
- first patchset.