From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F389C3524F for ; Wed, 5 Feb 2020 08:15:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CCE552082E for ; Wed, 5 Feb 2020 08:15:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="qLP/9yEa" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728057AbgBEIPW (ORCPT ); Wed, 5 Feb 2020 03:15:22 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:14618 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725875AbgBEIPV (ORCPT ); Wed, 5 Feb 2020 03:15:21 -0500 X-UUID: 9ad21bda66b5410db1af0f5bc1f97c36-20200205 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=+Eehl38VYEUnGQv2W5X+HsgZ4ZWAQEHn3zauirYc0JY=; b=qLP/9yEaVNLyjmffhkleI1sCLuvIQo61R2habIuvMwzyVgvIE9nitOg0w6S0uKq5UMQZ1DRx0uDN/vHaJSAtIgNZeve0POCcRI/ud2WVzxe5IFCNF3rs105TjlTm5ed/RlOQcb9ecviKtHx09FNfKyHIk6/S+2PK+Nd6OgHS7xc=; X-UUID: 9ad21bda66b5410db1af0f5bc1f97c36-20200205 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1225700861; Wed, 05 Feb 2020 16:15:14 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 5 Feb 2020 16:14:28 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 5 Feb 2020 16:14:48 +0800 From: Frankie Chang To: Greg Kroah-Hartman , Todd Kjos , Martijn Coenen , =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Joel Fernandes , Christian Brauner CC: , , , , Frankie Chang Subject: [PATCH v1 1/1] binder: transaction latency tracking for user build Date: Wed, 5 Feb 2020 14:52:52 +0800 Message-ID: <1580885572-14272-1-git-send-email-Frankie.Chang@mediatek.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org UmVjb3JkIHN0YXJ0L2VuZCB0aW1lc3RhbXAgdG8gYmluZGVyIHRyYW5zYWN0aW9uLg0KV2hlbiB0 cmFuc2FjdGlvbiBpcyBjb21wbGV0ZWQgb3IgdHJhbnNhY3Rpb24gaXMgZnJlZSwNCml0IHdvdWxk IGJlIGNoZWNrZWQgaWYgdHJhbnNhY3Rpb24gbGF0ZW5jeSBvdmVyIHRocmVzaG9sZCAoMiBzZWMp LA0KaWYgeWVzLCBwcmludGluZyByZWxhdGVkIGluZm9ybWF0aW9uIGZvciB0cmFjaW5nLg0KDQpT aWduZWQtb2ZmLWJ5OiBGcmFua2llIENoYW5nIDxGcmFua2llLkNoYW5nQG1lZGlhdGVrLmNvbT4N Ci0tLQ0KIGRyaXZlcnMvYW5kcm9pZC9LY29uZmlnICAgICAgICAgICB8ICAgIDggKysrDQogZHJp dmVycy9hbmRyb2lkL2JpbmRlci5jICAgICAgICAgIHwgIDEwNyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQogZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oIHwg ICAgNCArKw0KIDMgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKykNCg0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvYW5kcm9pZC9LY29uZmlnIGIvZHJpdmVycy9hbmRyb2lkL0tjb25maWcNCmlu ZGV4IDZmZGYyYWIuLjdiYTgwZWIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FuZHJvaWQvS2NvbmZp Zw0KKysrIGIvZHJpdmVycy9hbmRyb2lkL0tjb25maWcNCkBAIC01NCw2ICs1NCwxNCBAQCBjb25m aWcgQU5EUk9JRF9CSU5ERVJfSVBDX1NFTEZURVNUDQogCSAgZXhoYXVzdGl2ZWx5IHdpdGggY29t YmluYXRpb25zIG9mIHZhcmlvdXMgYnVmZmVyIHNpemVzIGFuZA0KIAkgIGFsaWdubWVudHMuDQog DQorY29uZmlnIEJJTkRFUl9VU0VSX1RSQUNLSU5HDQorCWJvb2wgIkFuZHJvaWQgQmluZGVyIHRy YW5zYWN0aW9uIHRyYWNraW5nIg0KKwloZWxwDQorCSAgVXNlZCBmb3IgdHJhY2sgYWJub3JtYWwg YmluZGVyIHRyYW5zYWN0aW9uIHdoaWNoIGlzIG92ZXIgMiBzZWNvbmRzLA0KKwkgIHdoZW4gdGhl IHRyYW5zYWN0aW9uIGlzIGRvbmUgb3IgYmUgZnJlZSwgdGhpcyB0cmFuc2FjdGlvbiB3b3VsZCBi ZQ0KKwkgIGNoZWNrZWQgd2hldGhlciBpdCBleGVjdXRlZCBvdmVydGltZS4NCisJICBJZiB5ZXMs IHByaW50aW5nIG91dCB0aGUgZGV0YWlsIGluZm8gYWJvdXQgaXQuDQorDQogZW5kaWYgIyBpZiBB TkRST0lEDQogDQogZW5kbWVudQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIu YyBiL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYw0KaW5kZXggZTliYzlmYy4uNWEzNTJlZSAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYw0KKysrIGIvZHJpdmVycy9hbmRyb2lk L2JpbmRlci5jDQpAQCAtNzYsNiArNzYsMTEgQEANCiAjaW5jbHVkZSAiYmluZGVyX2ludGVybmFs LmgiDQogI2luY2x1ZGUgImJpbmRlcl90cmFjZS5oIg0KIA0KKyNpZmRlZiBDT05GSUdfQklOREVS X1VTRVJfVFJBQ0tJTkcNCisjaW5jbHVkZSA8bGludXgvcnRjLmg+DQorI2luY2x1ZGUgPGxpbnV4 L3RpbWUuaD4NCisjZW5kaWYNCisNCiBzdGF0aWMgSExJU1RfSEVBRChiaW5kZXJfZGVmZXJyZWRf bGlzdCk7DQogc3RhdGljIERFRklORV9NVVRFWChiaW5kZXJfZGVmZXJyZWRfbG9jayk7DQogDQpA QCAtNTkxLDggKzU5NiwxMDQgQEAgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiB7DQogCSAqIGR1 cmluZyB0aHJlYWQgdGVhcmRvd24NCiAJICovDQogCXNwaW5sb2NrX3QgbG9jazsNCisjaWZkZWYg Q09ORklHX0JJTkRFUl9VU0VSX1RSQUNLSU5HDQorCXN0cnVjdCB0aW1lc3BlYyB0aW1lc3RhbXA7 DQorCXN0cnVjdCB0aW1ldmFsIHR2Ow0KKyNlbmRpZg0KIH07DQogDQorI2lmZGVmIENPTkZJR19C SU5ERVJfVVNFUl9UUkFDS0lORw0KKw0KKy8qDQorICogYmluZGVyX3ByaW50X2RlbGF5IC0gT3V0 cHV0IGluZm8gb2YgYSBkZWxheSB0cmFuc2FjdGlvbg0KKyAqIEB0OiAgICAgICAgICBwb2ludGVy IHRvIHRoZSBvdmVyLXRpbWUgdHJhbnNhY3Rpb24NCisgKi8NCitzdGF0aWMgdm9pZCBiaW5kZXJf cHJpbnRfZGVsYXkoc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCkNCit7DQorCXN0cnVjdCBy dGNfdGltZSB0bTsNCisJc3RydWN0IHRpbWVzcGVjICpzdGFydGltZTsNCisJc3RydWN0IHRpbWVz cGVjIGN1ciwgc3ViX3Q7DQorDQorCWt0aW1lX2dldF90cygmY3VyKTsNCisJc3RhcnRpbWUgPSAm dC0+dGltZXN0YW1wOw0KKwlzdWJfdCA9IHRpbWVzcGVjX3N1YihjdXIsICpzdGFydGltZSk7DQor DQorCS8qIGlmIHRyYW5zYWN0aW9uIHRpbWUgaXMgb3ZlciB0aGFuIDIgc2VjLA0KKwkgKiBzaG93 IHRpbWVvdXQgd2FybmluZyBsb2cuDQorCSAqLw0KKwlpZiAoc3ViX3QudHZfc2VjIDwgMikNCisJ CXJldHVybjsNCisNCisJcnRjX3RpbWVfdG9fdG0odC0+dHYudHZfc2VjLCAmdG0pOw0KKw0KKwlz cGluX2xvY2soJnQtPmxvY2spOw0KKwlwcl9pbmZvX3JhdGVsaW1pdGVkKCIlZDogZnJvbSAlZDol ZCB0byAlZDolZCIsDQorCQkJICAgIHQtPmRlYnVnX2lkLA0KKwkJCSAgICB0LT5mcm9tID8gdC0+ ZnJvbS0+cHJvYy0+cGlkIDogMCwNCisJCQkgICAgdC0+ZnJvbSA/IHQtPmZyb20tPnBpZCA6IDAs DQorCQkJICAgIHQtPnRvX3Byb2MgPyB0LT50b19wcm9jLT5waWQgOiAwLA0KKwkJCSAgICB0LT50 b190aHJlYWQgPyB0LT50b190aHJlYWQtPnBpZCA6IDApOw0KKwlzcGluX3VubG9jaygmdC0+bG9j ayk7DQorDQorCXByX2luZm9fcmF0ZWxpbWl0ZWQoIiB0b3RhbCAldS4lMDNsZCBzIGNvZGUgJXUg c3RhcnQgJWx1LiUwM2xkIGFuZHJvaWQgJWQtJTAyZC0lMDJkICUwMmQ6JTAyZDolMDJkLiUwM2x1 XG4iLA0KKwkJCSAgICAodW5zaWduZWQgaW50KXN1Yl90LnR2X3NlYywNCisJCQkgICAgKHN1Yl90 LnR2X25zZWMgLyBOU0VDX1BFUl9NU0VDKSwNCisJCQkgICAgdC0+Y29kZSwNCisJCQkgICAgKHVu c2lnbmVkIGxvbmcpc3RhcnRpbWUtPnR2X3NlYywNCisJCQkgICAgKHN0YXJ0aW1lLT50dl9uc2Vj IC8gTlNFQ19QRVJfTVNFQyksDQorCQkJICAgICh0bS50bV95ZWFyICsgMTkwMCksICh0bS50bV9t b24gKyAxKSwgdG0udG1fbWRheSwNCisJCQkgICAgdG0udG1faG91ciwgdG0udG1fbWluLCB0bS50 bV9zZWMsDQorCQkJICAgICh1bnNpZ25lZCBsb25nKSh0LT50di50dl91c2VjIC8gVVNFQ19QRVJf TVNFQykpOw0KK30NCisNCitzdGF0aWMgdm9pZCBiaW5kZXJfbG9nX2VudHJ5X3NldHVwKHN0cnVj dCBiaW5kZXJfdHJhbnNhY3Rpb25fbG9nX2VudHJ5ICplKQ0KK3sNCisJa3RpbWVfZ2V0X3RzKCZl LT50aW1lc3RhbXApOw0KKwlkb19nZXR0aW1lb2ZkYXkoJmUtPnR2KTsNCisJZS0+dHYudHZfc2Vj IC09IChzeXNfdHoudHpfbWludXRlc3dlc3QgKiA2MCk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHRp bWVzdGFtcF9jb3B5KHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQsDQorCQkJICAgc3RydWN0 IGJpbmRlcl90cmFuc2FjdGlvbl9sb2dfZW50cnkgKmUpDQorew0KKwltZW1jcHkoJnQtPnRpbWVz dGFtcCwgJmUtPnRpbWVzdGFtcCwgc2l6ZW9mKHN0cnVjdCB0aW1lc3BlYykpOw0KKwltZW1jcHko JnQtPnR2LCAmZS0+dHYsIHNpemVvZihzdHJ1Y3QgdGltZXZhbCkpOw0KK30NCisNCitzdGF0aWMg dm9pZCBwcmludF9iaW5kZXJfdHJhbnNhY3Rpb25fZXh0KHN0cnVjdCBzZXFfZmlsZSAqbSwNCisJ CQkJCSBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0KQ0KK3sNCisJc3RydWN0IHJ0Y190aW1l IHRtOw0KKw0KKwlydGNfdGltZV90b190bSh0LT50di50dl9zZWMsICZ0bSk7DQorCXNlcV9wcmlu dGYobSwNCisJCSAgICIgc3RhcnQgJWx1LiUwNmx1IGFuZHJvaWQgJWQtJTAyZC0lMDJkICUwMmQ6 JTAyZDolMDJkLiUwM2x1IiwNCisJCSAgICh1bnNpZ25lZCBsb25nKXQtPnRpbWVzdGFtcC50dl9z ZWMsDQorCQkgICAodC0+dGltZXN0YW1wLnR2X25zZWMgLyBOU0VDX1BFUl9VU0VDKSwNCisJCSAg ICh0bS50bV95ZWFyICsgMTkwMCksICh0bS50bV9tb24gKyAxKSwgdG0udG1fbWRheSwNCisJCSAg IHRtLnRtX2hvdXIsIHRtLnRtX21pbiwgdG0udG1fc2VjLA0KKwkJICAgKHVuc2lnbmVkIGxvbmcp KHQtPnR2LnR2X3VzZWMgLyBVU0VDX1BFUl9NU0VDKSk7DQorfQ0KKyNlbHNlDQorc3RhdGljIHZv aWQgYmluZGVyX3ByaW50X2RlbGF5KHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQpDQorew0K K30NCisNCitzdGF0aWMgdm9pZCBiaW5kZXJfbG9nX2VudHJ5X3NldHVwKHN0cnVjdCBiaW5kZXJf dHJhbnNhY3Rpb25fbG9nX2VudHJ5ICplKQ0KK3sNCit9DQorDQorc3RhdGljIHZvaWQgdGltZXN0 YW1wX2NvcHkoc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCwNCisJCQkgICBzdHJ1Y3QgYmlu ZGVyX3RyYW5zYWN0aW9uX2xvZ19lbnRyeSAqZSkNCit7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHBy aW50X2JpbmRlcl90cmFuc2FjdGlvbl9leHQoc3RydWN0IHNlcV9maWxlICptLA0KKwkJCQkJIHN0 cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQpDQorew0KK30NCisjZW5kaWYNCisNCiAvKioNCiAg KiBzdHJ1Y3QgYmluZGVyX29iamVjdCAtIHVuaW9uIG9mIGZsYXQgYmluZGVyIG9iamVjdCB0eXBl cw0KICAqIEBoZHI6ICAgZ2VuZXJpYyBvYmplY3QgaGVhZGVyDQpAQCAtMTkyNyw2ICsyMDI4LDcg QEAgc3RhdGljIHZvaWQgYmluZGVyX2ZyZWVfdHJhbnNhY3Rpb24oc3RydWN0IGJpbmRlcl90cmFu c2FjdGlvbiAqdCkNCiAJICogSWYgdGhlIHRyYW5zYWN0aW9uIGhhcyBubyB0YXJnZXRfcHJvYywg dGhlbg0KIAkgKiB0LT5idWZmZXItPnRyYW5zYWN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY2xlYXJl ZC4NCiAJICovDQorCWJpbmRlcl9wcmludF9kZWxheSh0KTsNCiAJYmluZGVyX2ZyZWVfdHhuX2Zp eHVwcyh0KTsNCiAJa2ZyZWUodCk7DQogCWJpbmRlcl9zdGF0c19kZWxldGVkKEJJTkRFUl9TVEFU X1RSQU5TQUNUSU9OKTsNCkBAIC0yODcyLDYgKzI5NzQsOCBAQCBzdGF0aWMgdm9pZCBiaW5kZXJf dHJhbnNhY3Rpb24oc3RydWN0IGJpbmRlcl9wcm9jICpwcm9jLA0KIAllLT5vZmZzZXRzX3NpemUg PSB0ci0+b2Zmc2V0c19zaXplOw0KIAlzdHJzY3B5KGUtPmNvbnRleHRfbmFtZSwgcHJvYy0+Y29u dGV4dC0+bmFtZSwgQklOREVSRlNfTUFYX05BTUUpOw0KIA0KKwliaW5kZXJfbG9nX2VudHJ5X3Nl dHVwKGUpOw0KKw0KIAlpZiAocmVwbHkpIHsNCiAJCWJpbmRlcl9pbm5lcl9wcm9jX2xvY2socHJv Yyk7DQogCQlpbl9yZXBseV90byA9IHRocmVhZC0+dHJhbnNhY3Rpb25fc3RhY2s7DQpAQCAtMzA1 OCw2ICszMTYyLDcgQEAgc3RhdGljIHZvaWQgYmluZGVyX3RyYW5zYWN0aW9uKHN0cnVjdCBiaW5k ZXJfcHJvYyAqcHJvYywNCiAJCXJldHVybl9lcnJvcl9saW5lID0gX19MSU5FX187DQogCQlnb3Rv IGVycl9hbGxvY190X2ZhaWxlZDsNCiAJfQ0KKwl0aW1lc3RhbXBfY29weSh0LCBlKTsNCiAJSU5J VF9MSVNUX0hFQUQoJnQtPmZkX2ZpeHVwcyk7DQogCWJpbmRlcl9zdGF0c19jcmVhdGVkKEJJTkRF Ul9TVEFUX1RSQU5TQUNUSU9OKTsNCiAJc3Bpbl9sb2NrX2luaXQoJnQtPmxvY2spOw0KQEAgLTM0 OTYsNiArMzYwMSw3IEBAIHN0YXRpYyB2b2lkIGJpbmRlcl90cmFuc2FjdGlvbihzdHJ1Y3QgYmlu ZGVyX3Byb2MgKnByb2MsDQogCWtmcmVlKHRjb21wbGV0ZSk7DQogCWJpbmRlcl9zdGF0c19kZWxl dGVkKEJJTkRFUl9TVEFUX1RSQU5TQUNUSU9OX0NPTVBMRVRFKTsNCiBlcnJfYWxsb2NfdGNvbXBs ZXRlX2ZhaWxlZDoNCisJYmluZGVyX3ByaW50X2RlbGF5KHQpOw0KIAlrZnJlZSh0KTsNCiAJYmlu ZGVyX3N0YXRzX2RlbGV0ZWQoQklOREVSX1NUQVRfVFJBTlNBQ1RJT04pOw0KIGVycl9hbGxvY190 X2ZhaWxlZDoNCkBAIC01NTQ0LDYgKzU2NTAsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9iaW5kZXJf dHJhbnNhY3Rpb25faWxvY2tlZChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sDQogCQkgICB0LT50b190aHJl YWQgPyB0LT50b190aHJlYWQtPnBpZCA6IDAsDQogCQkgICB0LT5jb2RlLCB0LT5mbGFncywgdC0+ cHJpb3JpdHksIHQtPm5lZWRfcmVwbHkpOw0KIAlzcGluX3VubG9jaygmdC0+bG9jayk7DQorCXBy aW50X2JpbmRlcl90cmFuc2FjdGlvbl9leHQobSwgdCk7DQogDQogCWlmIChwcm9jICE9IHRvX3By b2MpIHsNCiAJCS8qDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5h bC5oIGIvZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oDQppbmRleCBhZTk5MTA5Li5l YTUyYzVkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oDQor KysgYi9kcml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmgNCkBAIC0xMzEsNiArMTMxLDEw IEBAIHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb25fbG9nX2VudHJ5IHsNCiAJdWludDMyX3QgcmV0 dXJuX2Vycm9yOw0KIAl1aW50MzJfdCByZXR1cm5fZXJyb3JfcGFyYW07DQogCWNoYXIgY29udGV4 dF9uYW1lW0JJTkRFUkZTX01BWF9OQU1FICsgMV07DQorI2lmZGVmIENPTkZJR19CSU5ERVJfVVNF Ul9UUkFDS0lORw0KKwlzdHJ1Y3QgdGltZXNwZWMgdGltZXN0YW1wOw0KKwlzdHJ1Y3QgdGltZXZh bCB0djsNCisjZW5kaWYNCiB9Ow0KIA0KIHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb25fbG9nIHsN Ci0tIA0KMS43LjkuNQ0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, URIBL_DBL_ABUSE_MALW,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CDC8C35249 for ; Wed, 5 Feb 2020 08:25:36 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F65520730 for ; Wed, 5 Feb 2020 08:25:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="IkCaLZwk"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="qLP/9yEa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F65520730 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=6oaQSf5IyrXEZGPAXW6aGhuW/MNyI/Bvd7yoqgWkATs=; b=IkCaLZwkPOhdCV nbNGKq5ShPPwGz/1Tr+KmNSKWeD5KryNwETFm3R3LD9NVspUCl6ffiBgPC/PZh+4O1gmfOTtA+Thg 40SHxfcfsiVVjeDM2mPcQ+iH0B+tzDQiuPThdDFV93kaD9T76u3ideg9ktT02JWJm+x81nnvoOP3G 7OHI7uDfqnsPifGYRxbSSjtaqFH3KHfAg/gYNq4C0lZQt7bHMKPgcUSUua0LNssrMGLdBmirkoW/U gA6F5O0JLRoA0mZEoD+vllUqCBmS2liliJ8xzlEkAcklAzkIwM5y9bkqHL+7FDNEYhBqPDnIMChTb Vhgi1og0PrDESs6DQUvg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1izFzy-0002gJ-1N; Wed, 05 Feb 2020 08:25:26 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1izFzv-0002fm-HY for linux-mediatek@lists.infradead.org; Wed, 05 Feb 2020 08:25:25 +0000 X-UUID: 1d7128ebb5034c8795d46345899b3554-20200205 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=+Eehl38VYEUnGQv2W5X+HsgZ4ZWAQEHn3zauirYc0JY=; b=qLP/9yEaVNLyjmffhkleI1sCLuvIQo61R2habIuvMwzyVgvIE9nitOg0w6S0uKq5UMQZ1DRx0uDN/vHaJSAtIgNZeve0POCcRI/ud2WVzxe5IFCNF3rs105TjlTm5ed/RlOQcb9ecviKtHx09FNfKyHIk6/S+2PK+Nd6OgHS7xc=; X-UUID: 1d7128ebb5034c8795d46345899b3554-20200205 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1872029705; Wed, 05 Feb 2020 00:25:18 -0800 Received: from mtkmbs07n1.mediatek.inc (172.21.101.16) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 5 Feb 2020 00:15:14 -0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 5 Feb 2020 16:14:28 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 5 Feb 2020 16:14:48 +0800 From: Frankie Chang To: Greg Kroah-Hartman , Todd Kjos , Martijn Coenen , =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Joel Fernandes , Christian Brauner Subject: [PATCH v1 1/1] binder: transaction latency tracking for user build Date: Wed, 5 Feb 2020 14:52:52 +0800 Message-ID: <1580885572-14272-1-git-send-email-Frankie.Chang@mediatek.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200205_002523_597053_2B66D424 X-CRM114-Status: GOOD ( 12.56 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Frankie Chang , Jian-Min.Liu@mediatek.com, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, wsd_upstream@mediatek.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Record start/end timestamp to binder transaction. When transaction is completed or transaction is free, it would be checked if transaction latency over threshold (2 sec), if yes, printing related information for tracing. Signed-off-by: Frankie Chang --- drivers/android/Kconfig | 8 +++ drivers/android/binder.c | 107 +++++++++++++++++++++++++++++++++++++ drivers/android/binder_internal.h | 4 ++ 3 files changed, 119 insertions(+) diff --git a/drivers/android/Kconfig b/drivers/android/Kconfig index 6fdf2ab..7ba80eb 100644 --- a/drivers/android/Kconfig +++ b/drivers/android/Kconfig @@ -54,6 +54,14 @@ config ANDROID_BINDER_IPC_SELFTEST exhaustively with combinations of various buffer sizes and alignments. +config BINDER_USER_TRACKING + bool "Android Binder transaction tracking" + help + Used for track abnormal binder transaction which is over 2 seconds, + when the transaction is done or be free, this transaction would be + checked whether it executed overtime. + If yes, printing out the detail info about it. + endif # if ANDROID endmenu diff --git a/drivers/android/binder.c b/drivers/android/binder.c index e9bc9fc..5a352ee 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -76,6 +76,11 @@ #include "binder_internal.h" #include "binder_trace.h" +#ifdef CONFIG_BINDER_USER_TRACKING +#include +#include +#endif + static HLIST_HEAD(binder_deferred_list); static DEFINE_MUTEX(binder_deferred_lock); @@ -591,8 +596,104 @@ struct binder_transaction { * during thread teardown */ spinlock_t lock; +#ifdef CONFIG_BINDER_USER_TRACKING + struct timespec timestamp; + struct timeval tv; +#endif }; +#ifdef CONFIG_BINDER_USER_TRACKING + +/* + * binder_print_delay - Output info of a delay transaction + * @t: pointer to the over-time transaction + */ +static void binder_print_delay(struct binder_transaction *t) +{ + struct rtc_time tm; + struct timespec *startime; + struct timespec cur, sub_t; + + ktime_get_ts(&cur); + startime = &t->timestamp; + sub_t = timespec_sub(cur, *startime); + + /* if transaction time is over than 2 sec, + * show timeout warning log. + */ + if (sub_t.tv_sec < 2) + return; + + rtc_time_to_tm(t->tv.tv_sec, &tm); + + spin_lock(&t->lock); + pr_info_ratelimited("%d: from %d:%d to %d:%d", + t->debug_id, + t->from ? t->from->proc->pid : 0, + t->from ? t->from->pid : 0, + t->to_proc ? t->to_proc->pid : 0, + t->to_thread ? t->to_thread->pid : 0); + spin_unlock(&t->lock); + + pr_info_ratelimited(" total %u.%03ld s code %u start %lu.%03ld android %d-%02d-%02d %02d:%02d:%02d.%03lu\n", + (unsigned int)sub_t.tv_sec, + (sub_t.tv_nsec / NSEC_PER_MSEC), + t->code, + (unsigned long)startime->tv_sec, + (startime->tv_nsec / NSEC_PER_MSEC), + (tm.tm_year + 1900), (tm.tm_mon + 1), tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec, + (unsigned long)(t->tv.tv_usec / USEC_PER_MSEC)); +} + +static void binder_log_entry_setup(struct binder_transaction_log_entry *e) +{ + ktime_get_ts(&e->timestamp); + do_gettimeofday(&e->tv); + e->tv.tv_sec -= (sys_tz.tz_minuteswest * 60); +} + +static void timestamp_copy(struct binder_transaction *t, + struct binder_transaction_log_entry *e) +{ + memcpy(&t->timestamp, &e->timestamp, sizeof(struct timespec)); + memcpy(&t->tv, &e->tv, sizeof(struct timeval)); +} + +static void print_binder_transaction_ext(struct seq_file *m, + struct binder_transaction *t) +{ + struct rtc_time tm; + + rtc_time_to_tm(t->tv.tv_sec, &tm); + seq_printf(m, + " start %lu.%06lu android %d-%02d-%02d %02d:%02d:%02d.%03lu", + (unsigned long)t->timestamp.tv_sec, + (t->timestamp.tv_nsec / NSEC_PER_USEC), + (tm.tm_year + 1900), (tm.tm_mon + 1), tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec, + (unsigned long)(t->tv.tv_usec / USEC_PER_MSEC)); +} +#else +static void binder_print_delay(struct binder_transaction *t) +{ +} + +static void binder_log_entry_setup(struct binder_transaction_log_entry *e) +{ +} + +static void timestamp_copy(struct binder_transaction *t, + struct binder_transaction_log_entry *e) +{ +} + +static void print_binder_transaction_ext(struct seq_file *m, + struct binder_transaction *t) +{ +} +#endif + /** * struct binder_object - union of flat binder object types * @hdr: generic object header @@ -1927,6 +2028,7 @@ static void binder_free_transaction(struct binder_transaction *t) * If the transaction has no target_proc, then * t->buffer->transaction has already been cleared. */ + binder_print_delay(t); binder_free_txn_fixups(t); kfree(t); binder_stats_deleted(BINDER_STAT_TRANSACTION); @@ -2872,6 +2974,8 @@ static void binder_transaction(struct binder_proc *proc, e->offsets_size = tr->offsets_size; strscpy(e->context_name, proc->context->name, BINDERFS_MAX_NAME); + binder_log_entry_setup(e); + if (reply) { binder_inner_proc_lock(proc); in_reply_to = thread->transaction_stack; @@ -3058,6 +3162,7 @@ static void binder_transaction(struct binder_proc *proc, return_error_line = __LINE__; goto err_alloc_t_failed; } + timestamp_copy(t, e); INIT_LIST_HEAD(&t->fd_fixups); binder_stats_created(BINDER_STAT_TRANSACTION); spin_lock_init(&t->lock); @@ -3496,6 +3601,7 @@ static void binder_transaction(struct binder_proc *proc, kfree(tcomplete); binder_stats_deleted(BINDER_STAT_TRANSACTION_COMPLETE); err_alloc_tcomplete_failed: + binder_print_delay(t); kfree(t); binder_stats_deleted(BINDER_STAT_TRANSACTION); err_alloc_t_failed: @@ -5544,6 +5650,7 @@ static void print_binder_transaction_ilocked(struct seq_file *m, t->to_thread ? t->to_thread->pid : 0, t->code, t->flags, t->priority, t->need_reply); spin_unlock(&t->lock); + print_binder_transaction_ext(m, t); if (proc != to_proc) { /* diff --git a/drivers/android/binder_internal.h b/drivers/android/binder_internal.h index ae99109..ea52c5d 100644 --- a/drivers/android/binder_internal.h +++ b/drivers/android/binder_internal.h @@ -131,6 +131,10 @@ struct binder_transaction_log_entry { uint32_t return_error; uint32_t return_error_param; char context_name[BINDERFS_MAX_NAME + 1]; +#ifdef CONFIG_BINDER_USER_TRACKING + struct timespec timestamp; + struct timeval tv; +#endif }; struct binder_transaction_log { -- 1.7.9.5 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek