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=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 170B4C47255 for ; Mon, 11 May 2020 12:35:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CCD9020746 for ; Mon, 11 May 2020 12:35:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="dkw8jnpS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730034AbgEKMfb (ORCPT ); Mon, 11 May 2020 08:35:31 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:59098 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1729022AbgEKMfa (ORCPT ); Mon, 11 May 2020 08:35:30 -0400 X-UUID: 5cac473dcab54579ad64eb439d9f750e-20200511 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=ScFat6Pa4tC8GIO7yMXhY/Gj+vMADl48YQIv9wF9FiU=; b=dkw8jnpS7xIiDmEw4x4vM8fjNonO3xdXdYyQQN9bF6//EH23lxZa2jzoN+S9arLYOZIraIaZvR+N53m9BUdq6lNFZAn8ulrxawUJ6AU5aFYq9W9xMuSt2vEl1E2nfALbr8XxT6fmCsPGwIMtdYrpWgBXyZ8r+LWIGGbxuRe/WL0=; X-UUID: 5cac473dcab54579ad64eb439d9f750e-20200511 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 2010866384; Mon, 11 May 2020 20:35:23 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 20:35:19 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 11 May 2020 20:35:19 +0800 Message-ID: <1589200521.22902.18.camel@mtkswgap22> Subject: Re: [PATCH v4 3/3] binder: add transaction latency tracer From: Frankie Chang To: Todd Kjos CC: Greg Kroah-Hartman , Joel Fernandes , Martijn Coenen , Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , Christian Brauner , LKML , , wsd_upstream , Jian-Min Liu Date: Mon, 11 May 2020 20:35:21 +0800 In-Reply-To: References: <20200430085105.GF2496467@kroah.com> <1588839055-26677-1-git-send-email-Frankie.Chang@mediatek.com> <1588839055-26677-4-git-send-email-Frankie.Chang@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: CC48858346226CA8B7EC6C233185EE787C958762BDB48983C94AD29317A15B422000:8 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 T24gVGh1LCAyMDIwLTA1LTA3IGF0IDExOjIxIC0wNzAwLCBUb2RkIEtqb3Mgd3JvdGU6DQo+IE9u IFRodSwgTWF5IDcsIDIwMjAgYXQgMToxMSBBTSBGcmFua2llIENoYW5nIDxGcmFua2llLkNoYW5n QG1lZGlhdGVrLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBGcm9tOiAiRnJhbmtpZS5DaGFuZyIgPEZy YW5raWUuQ2hhbmdAbWVkaWF0ZWsuY29tPg0KPiA+DQo+ID4gUmVjb3JkIHN0YXJ0L2VuZCB0aW1l c3RhbXAgZm9yIGJpbmRlciB0cmFuc2FjdGlvbi4NCj4gPiBXaGVuIHRyYW5zYWN0aW9uIGlzIGNv bXBsZXRlZCBvciB0cmFuc2FjdGlvbiBpcyBmcmVlLA0KPiA+IGl0IHdvdWxkIGJlIGNoZWNrZWQg aWYgdHJhbnNhY3Rpb24gbGF0ZW5jeSBvdmVyIHRocmVzaG9sZCAoMiBzZWMpLA0KPiANCj4gSWYg dGhpcyBpcyBhIGhhcmQtY29kZWQgdGhyZXNob2xkLCBwcm92aWRlIHJhdGlvbmFsZSBmb3Igd2h5 IDIgc2VjIGlzDQo+IHRoZSByaWdodCB2YWx1ZSBhbmQgaXQgZG9lc24ndCBuZWVkIHRvIGJlIHR1 bmFibGUNCj4gDQoNClNvbWUgb2YgbW9kdWxlcyB3b3VsZCB0cmlnZ2VyIHRpbWVvdXQgTkUgaWYg dGhlaXIgYmluZGVyIHRyYW5zYWN0aW9uDQpkb24ndCBmaW5pc2ggaW4gdGltZSwgc3VjaCBhcyBh dWRpbyB0aW1lb3V0ICg1IHNlYyksIGV2ZW4gQlQgY29tbWFuZA0KdGltZW91dCAoMiBzZWMpLCBl dGMuDQoNClRoZXJlZm9yZSwgd2Ugd2FudCB0byByZWNvcmQgcmVsYXRlZCB0cmFuc2FjdGlvbnMg d2hpY2ggZXhjZWVkIDIgc2VjLiBJdA0KY291bGQgYmUgaGVscGZ1bCB0byBkZWJ1Zy4NCg0KPiA+ IGlmIHllcywgcHJpbnRpbmcgcmVsYXRlZCBpbmZvcm1hdGlvbiBmb3IgdHJhY2luZy4NCj4gPg0K PiA+IC8qIEltcGxlbWVudCBkZXRhaWxzICovDQo+ID4gLSBBZGQgbGF0ZW5jeSB0cmFjZXIgbW9k dWxlIHRvIG1vbml0b3Igc2xvdyB0cmFuc2FjdGlvbi4NCj4gPiAgIFRoZSB0cmFjZV9iaW5kZXJf ZnJlZV90cmFuc2FjdGlvbiB3b3VsZCBub3QgYmUgZW5hYmxlZA0KPiA+ICAgYnkgZGVmYXVsdC4g TW9uaXRvcmluZyB3aGljaCB0cmFuc2FjdGlvbiBpcyB0b28gc2xvdyB0bw0KPiA+ICAgY2F1c2Ug c29tZSBvZiBleGNlcHRpb25zIGlzIGltcG9ydGFudC4gU28gd2UgaG9vayB0aGUNCj4gPiAgIHRy YWNlcG9pbnQgdG8gY2FsbCB0aGUgbW9uaXRvciBmdW5jdGlvbi4NCj4gDQo+IFBsZWFzZSBhZGQg YSBtb3JlIGNvbXBsZXRlIGRlc2NyaXB0aW9uLiBUaGlzIHBhdGNoIGFkZHMgYSBtb2R1bGUgdG8N Cj4gbW9uaXRvciB0cmFuc2FjdGlvbiBsYXRlbmN5IGJ5IGF0dGFjaGluZyB0byBuZXcgdHJhY2Vw b2ludHMgaW50cm9kdWNlZA0KPiB3aGVuIHRyYW5zYWN0aW9ucyBhcmUgYWxsb2NhdGVkIGFuZCBm cmVlZC4gRGVzY3JpYmUgdGhpcyBpbiB0aGUgY29tbWl0DQo+IG1lc3NhZ2UuDQo+IA0KDQpPa2F5 LCB3ZSB3b3VsZCBhZGQgdGhlc2UgZGVzY3JpcHRpb24gaW4gbmV4dCB2ZXJzaW9uLg0KDQo+ID4N Cj4gPiBTaWduZWQtb2ZmLWJ5OiBGcmFua2llLkNoYW5nIDxGcmFua2llLkNoYW5nQG1lZGlhdGVr LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9hbmRyb2lkL0tjb25maWcgICAgICAgICAgICAg ICAgIHwgICAgOCArKysNCj4gPiAgZHJpdmVycy9hbmRyb2lkL01ha2VmaWxlICAgICAgICAgICAg ICAgIHwgICAgMSArDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYyAgICAgICAgICAgICAg ICB8ICAgIDIgKw0KPiA+ICBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmggICAgICAg fCAgIDEzICsrKysNCj4gPiAgZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9sYXRlbmN5X3RyYWNlci5j IHwgIDEwNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaCAgICAgICAgICB8ICAgMjYgKysrKysrKy0NCj4gPiAgNiBmaWxl cyBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYw0KPiA+ DQo+ID4gIENoYW5nZSBmcm9tIHY0Og0KPiA+ICAgIHNwbGl0IHVwIGludG8gcGF0Y2ggc2VyaWVz Lg0KPiA+DQo+ID4gIENoYW5nZSBmcm9tIHYzOg0KPiA+ICAgIHVzZSB0cmFjZXBvaW50cyBmb3Ig YmluZGVyX3VwZGF0ZV9pbmZvIGFuZCBwcmludF9iaW5kZXJfdHJhbnNhY3Rpb25fZXh0LA0KPiA+ ICAgIGluc3RlYWQgb2YgY3VzdG9tIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMuDQo+ID4NCj4gPiAg Q2hhbmdlIGZyb20gdjI6DQo+ID4gICAgY3JlYXRlIHRyYW5zYWN0aW9uIGxhdGVuY3kgbW9kdWxl IHRvIG1vbml0b3Igc2xvdyB0cmFuc2FjdGlvbi4NCj4gPg0KPiA+ICBDaGFuZ2UgZnJvbSB2MToN Cj4gPiAgICBmaXJzdCBwYXRjaHNldC4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Fu ZHJvaWQvS2NvbmZpZyBiL2RyaXZlcnMvYW5kcm9pZC9LY29uZmlnDQo+ID4gaW5kZXggNmZkZjJh Yi4uN2JhODBlYiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2FuZHJvaWQvS2NvbmZpZw0KPiA+ ICsrKyBiL2RyaXZlcnMvYW5kcm9pZC9LY29uZmlnDQo+ID4gQEAgLTU0LDYgKzU0LDE0IEBAIGNv bmZpZyBBTkRST0lEX0JJTkRFUl9JUENfU0VMRlRFU1QNCj4gPiAgICAgICAgICAgZXhoYXVzdGl2 ZWx5IHdpdGggY29tYmluYXRpb25zIG9mIHZhcmlvdXMgYnVmZmVyIHNpemVzIGFuZA0KPiA+ICAg ICAgICAgICBhbGlnbm1lbnRzLg0KPiA+DQo+ID4gK2NvbmZpZyBCSU5ERVJfVVNFUl9UUkFDS0lO Rw0KPiANCj4gV2h5IG5vdCAiQklOREVSX1RSQU5TQUNUSU9OX0xBVEVOQ1lfVFJBQ0tJTkciPw0K PiANCg0KVGhhbmtzIGZvciB5b3VyIGFkdmljZS4gV2Ugd291bGQgbW9kaWZ5IHRoZSBjb25maWcg bmFtZSB0byB0aGlzIHByb3Blcg0Kb25lLg0KDQo+ID4gKyAgICAgICBib29sICJBbmRyb2lkIEJp bmRlciB0cmFuc2FjdGlvbiB0cmFja2luZyINCj4gPiArICAgICAgIGhlbHANCj4gPiArICAgICAg ICAgVXNlZCBmb3IgdHJhY2sgYWJub3JtYWwgYmluZGVyIHRyYW5zYWN0aW9uIHdoaWNoIGlzIG92 ZXIgMiBzZWNvbmRzLA0KPiA+ICsgICAgICAgICB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBkb25l IG9yIGJlIGZyZWUsIHRoaXMgdHJhbnNhY3Rpb24gd291bGQgYmUNCj4gPiArICAgICAgICAgY2hl Y2tlZCB3aGV0aGVyIGl0IGV4ZWN1dGVkIG92ZXJ0aW1lLg0KPiA+ICsgICAgICAgICBJZiB5ZXMs IHByaW50aW5nIG91dCB0aGUgZGV0YWlsIGluZm8gYWJvdXQgaXQuDQo+IA0KPiAiSWYgeWVzLCBw cmludCBvdXQgdGhlIGRldGFpbGVkIGluZm8iDQo+IA0KDQpXZSB3b3VsZCBtb2RpZnkgaXQsIHRo YW5rcy4NCg0KPiA+ICsNCj4gPiAgZW5kaWYgIyBpZiBBTkRST0lEDQo+ID4NCj4gPiAgZW5kbWVu dQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FuZHJvaWQvTWFrZWZpbGUgYi9kcml2ZXJzL2Fu ZHJvaWQvTWFrZWZpbGUNCj4gPiBpbmRleCBjOWQzZDBjOS4uNTUyZThhYyAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2FuZHJvaWQvTWFrZWZpbGUNCj4gPiArKysgYi9kcml2ZXJzL2FuZHJvaWQv TWFrZWZpbGUNCj4gPiBAQCAtNCwzICs0LDQgQEAgY2NmbGFncy15ICs9IC1JJChzcmMpICAgICAg ICAgICAgICAgICAgICMgbmVlZGVkIGZvciB0cmFjZSBldmVudHMNCj4gPiAgb2JqLSQoQ09ORklH X0FORFJPSURfQklOREVSRlMpICAgICAgICAgKz0gYmluZGVyZnMubw0KPiA+ICBvYmotJChDT05G SUdfQU5EUk9JRF9CSU5ERVJfSVBDKSAgICAgICArPSBiaW5kZXIubyBiaW5kZXJfYWxsb2Mubw0K PiA+ICBvYmotJChDT05GSUdfQU5EUk9JRF9CSU5ERVJfSVBDX1NFTEZURVNUKSArPSBiaW5kZXJf YWxsb2Nfc2VsZnRlc3Qubw0KPiA+ICtvYmotJChDT05GSUdfQklOREVSX1VTRVJfVFJBQ0tJTkcp ICAgICArPSBiaW5kZXJfbGF0ZW5jeV90cmFjZXIubw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2FuZHJvaWQvYmluZGVyLmMgYi9kcml2ZXJzL2FuZHJvaWQvYmluZGVyLmMNCj4gPiBpbmRleCA0 YzNkZDk4Li5iODlkNzVhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIu Yw0KPiA+ICsrKyBiL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYw0KPiA+IEBAIC0yNjU3LDYgKzI2 NTcsNyBAQCBzdGF0aWMgdm9pZCBiaW5kZXJfdHJhbnNhY3Rpb24oc3RydWN0IGJpbmRlcl9wcm9j ICpwcm9jLA0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm5fZXJyb3JfbGluZSA9IF9fTElORV9f Ow0KPiA+ICAgICAgICAgICAgICAgICBnb3RvIGVycl9hbGxvY190X2ZhaWxlZDsNCj4gPiAgICAg ICAgIH0NCj4gPiArICAgICAgIHRyYWNlX2JpbmRlcl91cGRhdGVfaW5mbyh0LCBlKTsNCj4gDQo+ IENhbiB0aGlzIGJlIGEgbW9yZSBkZXNjcmlwdGl2ZSBuYW1lPyBQZXJoYXBzICJ0cmFjZV9iaW5k ZXJfdHhuX2NyZWF0ZSgpIg0KPiANCg0KT2theSwgd2Ugd291bGQgcmVwbGFjZSB0aGUgb3JpZ2lu YWwgbmFtZSB3aXRoDQp0cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MuDQoNCj4gPiAgICAg ICAgIElOSVRfTElTVF9IRUFEKCZ0LT5mZF9maXh1cHMpOw0KPiA+ICAgICAgICAgYmluZGVyX3N0 YXRzX2NyZWF0ZWQoQklOREVSX1NUQVRfVFJBTlNBQ1RJT04pOw0KPiA+ICAgICAgICAgc3Bpbl9s b2NrX2luaXQoJnQtPmxvY2spOw0KPiA+IEBAIC01MTQ1LDYgKzUxNDYsNyBAQCBzdGF0aWMgdm9p ZCBwcmludF9iaW5kZXJfdHJhbnNhY3Rpb25faWxvY2tlZChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sDQo+ ID4gICAgICAgICAgICAgICAgICAgIHQtPnRvX3RocmVhZCA/IHQtPnRvX3RocmVhZC0+cGlkIDog MCwNCj4gPiAgICAgICAgICAgICAgICAgICAgdC0+Y29kZSwgdC0+ZmxhZ3MsIHQtPnByaW9yaXR5 LCB0LT5uZWVkX3JlcGx5KTsNCj4gPiAgICAgICAgIHNwaW5fdW5sb2NrKCZ0LT5sb2NrKTsNCj4g PiArICAgICAgIHRyYWNlX3ByaW50X2JpbmRlcl90cmFuc2FjdGlvbl9leHQobSwgdCk7DQo+IA0K PiBXaHkgZG8geW91IG5lZWQgdG8gdHJhY2Ugd2hlbiBkdW1waW5nIG91dCB0aGUgdHJhbnNhY3Rp b24gaW5mbz8NCj4gDQoNCkJlY2F1c2Ugd2Ugd2FudCB0byBnZXQgdGhlIHN0YXJ0IHRpbWUgYWJv dXQgdGhpcyB0cmFuc2FjdGlvbiwgdG8gY2hlY2sNCndoZXRoZXIgdGhlc2UgdHJhbnNhY3Rpb25z IGNvbnN1bWUgdG9vIG11Y2ggdGltZS4NCg0KQ29udmVydGluZyBrZXJuZWwgdGltZSB0byBhbmRy b2lkIHRpbWUgbGV0IHVzIGVhc2lseSBjb3JyZXNwb25kIGtlcm5lbA0KbG9nIHRvIGFuZHJvaWQg bG9nLiBCdXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBpZiB5b3UgdGhpbmsgdGhhdCBpcyB0b28NCnJl ZHVuZGFudC4NCg0KPiA+DQo+ID4gICAgICAgICBpZiAocHJvYyAhPSB0b19wcm9jKSB7DQo+ID4g ICAgICAgICAgICAgICAgIC8qDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYW5kcm9pZC9iaW5k ZXJfaW50ZXJuYWwuaCBiL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaA0KPiA+IGlu ZGV4IGVkNjFiM2UuLjI0ZDdiZWIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl9pbnRlcm5hbC5oDQo+ID4gKysrIGIvZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5h bC5oDQo+ID4gQEAgLTEyLDYgKzEyLDExIEBADQo+ID4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5o Pg0KPiA+ICAjaW5jbHVkZSA8bGludXgvdWlkZ2lkLmg+DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJ R19CSU5ERVJfVVNFUl9UUkFDS0lORw0KPiA+ICsjaW5jbHVkZSA8bGludXgvcnRjLmg+DQo+ID4g KyNpbmNsdWRlIDxsaW51eC90aW1lLmg+DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgc3RydWN0 IGJpbmRlcl9jb250ZXh0IHsNCj4gPiAgICAgICAgIHN0cnVjdCBiaW5kZXJfbm9kZSAqYmluZGVy X2NvbnRleHRfbWdyX25vZGU7DQo+ID4gICAgICAgICBzdHJ1Y3QgbXV0ZXggY29udGV4dF9tZ3Jf bm9kZV9sb2NrOw0KPiA+IEBAIC0xMzEsNiArMTM2LDEwIEBAIHN0cnVjdCBiaW5kZXJfdHJhbnNh Y3Rpb25fbG9nX2VudHJ5IHsNCj4gPiAgICAgICAgIHVpbnQzMl90IHJldHVybl9lcnJvcjsNCj4g PiAgICAgICAgIHVpbnQzMl90IHJldHVybl9lcnJvcl9wYXJhbTsNCj4gPiAgICAgICAgIGNoYXIg Y29udGV4dF9uYW1lW0JJTkRFUkZTX01BWF9OQU1FICsgMV07DQo+ID4gKyNpZmRlZiBDT05GSUdf QklOREVSX1VTRVJfVFJBQ0tJTkcNCj4gPiArICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0aW1lc3Rh bXA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdGltZXZhbCB0djsNCj4gPiArI2VuZGlmDQo+ID4gIH07 DQo+ID4NCj4gPiAgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbl9sb2cgew0KPiA+IEBAIC01MjAs NiArNTI5LDEwIEBAIHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gew0KPiA+ICAgICAgICAgICog ZHVyaW5nIHRocmVhZCB0ZWFyZG93bg0KPiA+ICAgICAgICAgICovDQo+ID4gICAgICAgICBzcGlu bG9ja190IGxvY2s7DQo+ID4gKyNpZmRlZiBDT05GSUdfQklOREVSX1VTRVJfVFJBQ0tJTkcNCj4g PiArICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0aW1lc3RhbXA7DQo+ID4gKyAgICAgICBzdHJ1Y3Qg dGltZXZhbCB0djsNCj4gPiArI2VuZGlmDQo+ID4gIH07DQo+ID4NCj4gPiAgLyoqDQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYyBiL2RyaXZl cnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uNDVjMTRmYg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiAr KysgYi9kcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmMNCj4gPiBAQCAtMCww ICsxLDEwNSBAQA0KPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPiA+ ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTkgTWVkaWFUZWsgSW5jLg0KPiA+ICsgKi8N Cj4gPiArDQo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4gPiArI2luY2x1ZGUgPHVh cGkvbGludXgvYW5kcm9pZC9iaW5kZXIuaD4NCj4gPiArI2luY2x1ZGUgImJpbmRlcl9hbGxvYy5o Ig0KPiA+ICsjaW5jbHVkZSAiYmluZGVyX2ludGVybmFsLmgiDQo+ID4gKyNpbmNsdWRlICJiaW5k ZXJfdHJhY2UuaCINCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIHByb2JlX2JpbmRlcl9mcmVlX3Ry YW5zYWN0aW9uIC0gT3V0cHV0IGluZm8gb2YgYSBkZWxheSB0cmFuc2FjdGlvbg0KPiA+ICsgKiBA dDogICAgICAgICAgcG9pbnRlciB0byB0aGUgb3Zlci10aW1lIHRyYW5zYWN0aW9uDQo+ID4gKyAq Lw0KPiA+ICt2b2lkIHByb2JlX2JpbmRlcl9mcmVlX3RyYW5zYWN0aW9uKHZvaWQgKmlnbm9yZSwg c3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0 IHJ0Y190aW1lIHRtOw0KPiA+ICsgICAgICAgc3RydWN0IHRpbWVzcGVjICpzdGFydGltZTsNCj4g PiArICAgICAgIHN0cnVjdCB0aW1lc3BlYyBjdXIsIHN1Yl90Ow0KPiA+ICsNCj4gPiArICAgICAg IGt0aW1lX2dldF90cygmY3VyKTsNCj4gPiArICAgICAgIHN0YXJ0aW1lID0gJnQtPnRpbWVzdGFt cDsNCj4gPiArICAgICAgIHN1Yl90ID0gdGltZXNwZWNfc3ViKGN1ciwgKnN0YXJ0aW1lKTsNCj4g PiArDQo+ID4gKyAgICAgICAvKiBpZiB0cmFuc2FjdGlvbiB0aW1lIGlzIG92ZXIgdGhhbiAyIHNl YywNCj4gPiArICAgICAgICAqIHNob3cgdGltZW91dCB3YXJuaW5nIGxvZy4NCj4gPiArICAgICAg ICAqLw0KPiA+ICsgICAgICAgaWYgKHN1Yl90LnR2X3NlYyA8IDIpDQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBydGNfdGltZV90b190bSh0LT50di50dl9z ZWMsICZ0bSk7DQo+ID4gKw0KPiA+ICsgICAgICAgc3Bpbl9sb2NrKCZ0LT5sb2NrKTsNCj4gPiAr ICAgICAgIHByX2luZm9fcmF0ZWxpbWl0ZWQoIiVkOiBmcm9tICVkOiVkIHRvICVkOiVkIiwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICB0LT5kZWJ1Z19pZCwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICB0LT5mcm9tID8gdC0+ZnJvbS0+cHJvYy0+cGlkIDogMCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICB0LT5mcm9tID8gdC0+ZnJvbS0+cGlkIDogMCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICB0LT50b19wcm9jID8gdC0+dG9fcHJvYy0+cGlkIDogMCwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICB0LT50b190aHJlYWQgPyB0LT50b190aHJlYWQtPnBpZCA6 IDApOw0KPiA+ICsgICAgICAgc3Bpbl91bmxvY2soJnQtPmxvY2spOw0KPiA+ICsNCj4gPiArICAg ICAgIHByX2luZm9fcmF0ZWxpbWl0ZWQoIiB0b3RhbCAldS4lMDNsZCBzIGNvZGUgJXUgc3RhcnQg JWx1LiUwM2xkIGFuZHJvaWQgJWQtJTAyZC0lMDJkICUwMmQ6JTAyZDolMDJkLiUwM2x1XG4iLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpc3ViX3QudHZfc2VjLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIChzdWJfdC50dl9uc2VjIC8gTlNFQ19QRVJfTVNF QyksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdC0+Y29kZSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylzdGFydGltZS0+dHZfc2VjLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIChzdGFydGltZS0+dHZfbnNlYyAvIE5TRUNfUEVSX01TRUMpLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICh0bS50bV95ZWFyICsgMTkwMCksICh0bS50bV9t b24gKyAxKSwgdG0udG1fbWRheSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB0bS50bV9o b3VyLCB0bS50bV9taW4sIHRtLnRtX3NlYywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAo dW5zaWduZWQgbG9uZykodC0+dHYudHZfdXNlYyAvIFVTRUNfUEVSX01TRUMpKTsNCj4gPiArfQ0K PiA+ICsNCj4gPiArc3RhdGljIHZvaWQgcHJvYmVfYmluZGVyX3VwZGF0ZV9pbmZvKHZvaWQgKmln bm9yZSwgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uX2xvZ19lbnRyeSAqZSkNCj4gPiAr ew0KPiA+ICsgICAgICAga3RpbWVfZ2V0X3RzKCZlLT50aW1lc3RhbXApOw0KPiA+ICsgICAgICAg ZG9fZ2V0dGltZW9mZGF5KCZlLT50dik7DQo+ID4gKyAgICAgICBlLT50di50dl9zZWMgLT0gKHN5 c190ei50el9taW51dGVzd2VzdCAqIDYwKTsNCj4gPiArICAgICAgIG1lbWNweSgmdC0+dGltZXN0 YW1wLCAmZS0+dGltZXN0YW1wLCBzaXplb2Yoc3RydWN0IHRpbWVzcGVjKSk7DQo+ID4gKyAgICAg ICBtZW1jcHkoJnQtPnR2LCAmZS0+dHYsIHNpemVvZihzdHJ1Y3QgdGltZXZhbCkpOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBwcm9iZV9wcmludF9iaW5kZXJfdHJhbnNhY3Rpb25f ZXh0KHZvaWQgKmlnbm9yZSwgc3RydWN0IHNlcV9maWxlICptLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCkN Cj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IHJ0Y190aW1lIHRtOw0KPiA+ICsNCj4gPiArICAg ICAgIHJ0Y190aW1lX3RvX3RtKHQtPnR2LnR2X3NlYywgJnRtKTsNCj4gPiArICAgICAgIHNlcV9w cmludGYobSwNCj4gPiArICAgICAgICAgICAgICAgICAgIiBzdGFydCAlbHUuJTA2bHUgYW5kcm9p ZCAlZC0lMDJkLSUwMmQgJTAyZDolMDJkOiUwMmQuJTAzbHUiLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAodW5zaWduZWQgbG9uZyl0LT50aW1lc3RhbXAudHZfc2VjLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAodC0+dGltZXN0YW1wLnR2X25zZWMgLyBOU0VDX1BFUl9VU0VDKSwNCj4gPiArICAg ICAgICAgICAgICAgICAgKHRtLnRtX3llYXIgKyAxOTAwKSwgKHRtLnRtX21vbiArIDEpLCB0bS50 bV9tZGF5LA0KPiA+ICsgICAgICAgICAgICAgICAgICB0bS50bV9ob3VyLCB0bS50bV9taW4sIHRt LnRtX3NlYywNCj4gPiArICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKHQtPnR2LnR2 X3VzZWMgLyBVU0VDX1BFUl9NU0VDKSk7DQo+ID4gKw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgaW50IF9faW5pdCBpbml0X2JpbmRlcl9sYXRlbmN5X3RyYWNlcih2b2lkKQ0KPiA+ICt7DQo+ ID4gKyAgICAgICByZWdpc3Rlcl90cmFjZV9iaW5kZXJfZnJlZV90cmFuc2FjdGlvbigNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBwcm9iZV9iaW5kZXJfZnJlZV90cmFuc2FjdGlvbiwgTlVM TCk7DQo+ID4gKyAgICAgICByZWdpc3Rlcl90cmFjZV9iaW5kZXJfdXBkYXRlX2luZm8oDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgcHJvYmVfYmluZGVyX3VwZGF0ZV9pbmZvLCBOVUxMKTsN Cj4gPiArICAgICAgIHJlZ2lzdGVyX3RyYWNlX3ByaW50X2JpbmRlcl90cmFuc2FjdGlvbl9leHQo DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJvYmVfcHJpbnRfYmluZGVyX3RyYW5zYWN0 aW9uX2V4dCwgTlVMTCk7DQo+IA0KPiBBaCwgbm93IHRoZSB0cmFjZSBpbiB0aGUgcHJpbnQgcGF0 aCBtYWtlcyBzZW5zZS4gUGxlYXNlIGFkZCBhIG1vcmUNCj4gZGV0YWlsZWQgZGVzY3JpcHRpb24g dG8gdGhlIGNvbW1pdCBtZXNzYWdlLiBBbHNvIGFkZCBhIGNvbW1lbnQgYXQgdGhlDQo+IHRyYWNl IHBvaW50IHRoYXQgaXQgaXMgZm9yIG1vZHVsZXMgdG8gYXR0YWNoIHRvIHNvIGFkZGl0aW9uYWwN Cj4gaW5mb3JtYXRpb24gY2FuIGJlIHByaW50ZWQuIEFsc28sIG1ha2UgdGhlIG5hbWVzIG9mIHRo ZSB0cmFjZXBvaW50cw0KPiBtb3JlIGRlc2NyaXB0aXZlIG9mIHdoYXQgdGhleSByZWFsbHkgYXJl IC4uLnNvbWV0aGluZyBsaWtlDQo+IHRyYWNlX2JpbmRlcl90eG5fbGF0ZW5jeV8oYWxsb2N8aW5m b3xmcmVlKQ0KPiANCg0KWWVzLCB3ZSBhZ3JlZSB0aGF0IHRoaXMgaXMgYSBiZXR0ZXIgd2F5IHRv IG1ha2UgdGhlc2UgdHJhY2Vwb2ludHMgbW9yZQ0KbWVhbmluZ2Z1bCwgYW5kIHdlIHdvdWxkIGNo YW5nZSBpdC4NCg0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgdm9pZCBleGl0X2JpbmRlcl9sYXRlbmN5X3RyYWNlcih2b2lkKQ0KPiA+ICt7 DQo+ID4gKyAgICAgICB1bnJlZ2lzdGVyX3RyYWNlX2JpbmRlcl9mcmVlX3RyYW5zYWN0aW9uKA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByb2JlX2JpbmRlcl9mcmVlX3RyYW5zYWN0aW9u LCBOVUxMKTsNCj4gPiArICAgICAgIHVucmVnaXN0ZXJfdHJhY2VfYmluZGVyX3VwZGF0ZV9pbmZv KA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByb2JlX2JpbmRlcl91cGRhdGVfaW5mbywg TlVMTCk7DQo+ID4gKyAgICAgICB1bnJlZ2lzdGVyX3RyYWNlX3ByaW50X2JpbmRlcl90cmFuc2Fj dGlvbl9leHQoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJvYmVfcHJpbnRfYmluZGVy X3RyYW5zYWN0aW9uX2V4dCwgTlVMTCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK21vZHVsZV9pbml0 KGluaXRfYmluZGVyX2xhdGVuY3lfdHJhY2VyKTsNCj4gPiArbW9kdWxlX2V4aXQoZXhpdF9iaW5k ZXJfbGF0ZW5jeV90cmFjZXIpOw0KPiA+ICsNCj4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIp Ow0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmggYi9kcml2 ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmgNCj4gPiBpbmRleCA3YWNjMThkLi40NjY5OTNlIDEw MDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaA0KPiA+ICsrKyBi L2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaA0KPiA+IEBAIC0xOCw2ICsxOCw3IEBADQo+ ID4gIHN0cnVjdCBiaW5kZXJfcmVmX2RhdGE7DQo+ID4gIHN0cnVjdCBiaW5kZXJfdGhyZWFkOw0K PiA+ICBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uOw0KPiA+ICtzdHJ1Y3QgYmluZGVyX3RyYW5z YWN0aW9uX2xvZ19lbnRyeTsNCj4gPg0KPiA+ICBUUkFDRV9FVkVOVChiaW5kZXJfaW9jdGwsDQo+ ID4gICAgICAgICBUUF9QUk9UTyh1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyks DQo+ID4gQEAgLTk1LDYgKzk2LDE4IEBADQo+ID4gICAgICAgICAgICAgICAgICAgX19lbnRyeS0+ dGhyZWFkX3RvZG8pDQo+ID4gICk7DQo+ID4NCj4gPiArREVDTEFSRV9UUkFDRShiaW5kZXJfdXBk YXRlX2luZm8sDQo+ID4gKyAgICAgICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9u ICp0LA0KPiA+ICsgICAgICAgICAgICAgICAgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbl9sb2df ZW50cnkgKmUpLA0KPiA+ICsgICAgICAgVFBfQVJHUyh0LCBlKQ0KPiA+ICspOw0KPiA+ICsNCj4g PiArREVDTEFSRV9UUkFDRShwcmludF9iaW5kZXJfdHJhbnNhY3Rpb25fZXh0LA0KPiA+ICsgICAg ICAgVFBfUFJPVE8oc3RydWN0IHNlcV9maWxlICptLA0KPiA+ICsgICAgICAgICAgICAgICAgc3Ry dWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCksDQo+ID4gKyAgICAgICBUUF9BUkdTKG0sIHQpDQo+ ID4gKyk7DQo+ID4gKw0KPiA+ICBUUkFDRV9FVkVOVChiaW5kZXJfZnJlZV90cmFuc2FjdGlvbiwN Cj4gPiAgICAgICAgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQpLA0KPiA+ ICAgICAgICAgVFBfQVJHUyh0KSwNCj4gPiBAQCAtMTE1LDExICsxMjgsMTggQEANCj4gPiAgICAg ICAgICAgICAgICAgX19lbnRyeS0+dG9fdGhyZWFkID0gdC0+dG9fdGhyZWFkID8gdC0+dG9fdGhy ZWFkLT5waWQgOiAwOw0KPiA+ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5jb2RlID0gdC0+Y29k ZTsNCj4gPiAgICAgICAgICAgICAgICAgX19lbnRyeS0+ZmxhZ3MgPSB0LT5mbGFnczsNCj4gPiAt ICAgICAgICksDQo+ID4gLSAgICAgICBUUF9wcmludGsoInRyYW5zYWN0aW9uPSVkIGZyb20gJWQ6 JWQgdG8gJWQ6JWQgZmxhZ3M9MHgleCBjb2RlPTB4JXgiLA0KPiA+ICsjaWZkZWYgQ09ORklHX0JJ TkRFUl9VU0VSX1RSQUNLSU5HDQo+ID4gKyAgICAgICAgICAgICAgIF9fZW50cnktPnN0YXJ0X3Nl YyA9IHQtPnRpbWVzdGFtcC50dl9zZWM7DQo+ID4gKyAgICAgICAgICAgICAgIF9fZW50cnktPnN0 YXJ0X25zZWMgPSB0LT50aW1lc3RhbXAudHZfbnNlYyAvIE5TRUNfUEVSX01TRUM7DQo+ID4gKyNl bHNlDQo+ID4gKyAgICAgICAgICAgICAgIF9fZW50cnktPnN0YXJ0X3NlYyA9IDA7DQo+ID4gKyAg ICAgICAgICAgICAgIF9fZW50cnktPnN0YXJ0X25zZWMgPSAwOw0KPiA+ICsjZW5kaWYNCj4gPiAr ICAgICAgICksDQo+ID4gKyAgICAgICBUUF9wcmludGsoInRyYW5zYWN0aW9uPSVkIGZyb20gJWQ6 JWQgdG8gJWQ6JWQgZmxhZ3M9MHgleCBjb2RlPTB4JXggc3RhcnQgJWx1LiUwM2xkIiwNCj4gPiAg ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5kZWJ1Z19pZCwgX19lbnRyeS0+ZnJvbV9wcm9jLCBf X2VudHJ5LT5mcm9tX3RocmVhZCwNCj4gPiAgICAgICAgICAgICAgICAgICBfX2VudHJ5LT50b19w cm9jLCBfX2VudHJ5LT50b190aHJlYWQsIF9fZW50cnktPmNvZGUsDQo+ID4gLSAgICAgICAgICAg ICAgICAgX19lbnRyeS0+ZmxhZ3MpDQo+ID4gKyAgICAgICAgICAgICAgICAgX19lbnRyeS0+Zmxh Z3MsIF9fZW50cnktPnN0YXJ0X3NlYywgX19lbnRyeS0+c3RhcnRfbnNlYykNCj4gPiAgKTsNCj4g Pg0KPiA+ICBUUkFDRV9FVkVOVChiaW5kZXJfdHJhbnNhY3Rpb24sDQo+ID4gLS0NCj4gPiAxLjcu OS41DQoNCg== 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=-8.4 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,USER_AGENT_SANE_2 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 C2AB3C54E4A for ; Mon, 11 May 2020 12:45:42 +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 8C7E920722 for ; Mon, 11 May 2020 12:45:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="UZ7GG7tA"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="dkw8jnpS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8C7E920722 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:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=n/hlR8w+jGFUvH9GW4XWxgix5w/zXLe8StLpwA9oQsQ=; b=UZ7GG7tA7Keiuw Kx/+1BB0JK15g/PgGxXcP65nT8rWxLZleBu4XUptnAuxn2auVhBLY6+nCRMDVRWBSN253Ej3tAFhH R0HdJ5vbqr1r1TJAL0fc4GP0ClrRXGSXtH2IsfQHVOPGs5Q12GqWzPicKYn0qRfi/+Z+O1B0C8dg5 4hyuNE3g3PVKSEfWu+IXOv1sq1jYC5jlDsc93iAhgA2wQAnQ8kTyTYw8x24j6pEAWkMR6QYHZS/TU l3Mj53jaLwjcEYJXlwUVID+lYWJ4ynbDbnr6pTSvR9MzBII7diWPNRuppoMbIcv9fgJU+QJpBVgcl XJIoXzQ160ZR8gzT+9pg==; 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 1jY7oN-0001Yi-GT; Mon, 11 May 2020 12:45:35 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jY7oH-0001Vv-TU for linux-mediatek@lists.infradead.org; Mon, 11 May 2020 12:45:33 +0000 X-UUID: aba604f3805349b19b4e9489781ef41c-20200511 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=ScFat6Pa4tC8GIO7yMXhY/Gj+vMADl48YQIv9wF9FiU=; b=dkw8jnpS7xIiDmEw4x4vM8fjNonO3xdXdYyQQN9bF6//EH23lxZa2jzoN+S9arLYOZIraIaZvR+N53m9BUdq6lNFZAn8ulrxawUJ6AU5aFYq9W9xMuSt2vEl1E2nfALbr8XxT6fmCsPGwIMtdYrpWgBXyZ8r+LWIGGbxuRe/WL0=; X-UUID: aba604f3805349b19b4e9489781ef41c-20200511 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1842647480; Mon, 11 May 2020 04:45:21 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 05:35:22 -0700 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 20:35:19 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 11 May 2020 20:35:19 +0800 Message-ID: <1589200521.22902.18.camel@mtkswgap22> Subject: Re: [PATCH v4 3/3] binder: add transaction latency tracer From: Frankie Chang To: Todd Kjos Date: Mon, 11 May 2020 20:35:21 +0800 In-Reply-To: References: <20200430085105.GF2496467@kroah.com> <1588839055-26677-1-git-send-email-Frankie.Chang@mediatek.com> <1588839055-26677-4-git-send-email-Frankie.Chang@mediatek.com> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: CC48858346226CA8B7EC6C233185EE787C958762BDB48983C94AD29317A15B422000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200511_054529_972506_FE8AB4D2 X-CRM114-Status: GOOD ( 31.38 ) 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: wsd_upstream , Greg Kroah-Hartman , LKML , Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , Jian-Min Liu , linux-mediatek@lists.infradead.org, Joel Fernandes , Martijn Coenen , Christian Brauner 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 On Thu, 2020-05-07 at 11:21 -0700, Todd Kjos wrote: > On Thu, May 7, 2020 at 1:11 AM Frankie Chang wrote: > > > > From: "Frankie.Chang" > > > > Record start/end timestamp for binder transaction. > > When transaction is completed or transaction is free, > > it would be checked if transaction latency over threshold (2 sec), > > If this is a hard-coded threshold, provide rationale for why 2 sec is > the right value and it doesn't need to be tunable > Some of modules would trigger timeout NE if their binder transaction don't finish in time, such as audio timeout (5 sec), even BT command timeout (2 sec), etc. Therefore, we want to record related transactions which exceed 2 sec. It could be helpful to debug. > > if yes, printing related information for tracing. > > > > /* Implement details */ > > - Add latency tracer module to monitor slow transaction. > > The trace_binder_free_transaction would not be enabled > > by default. Monitoring which transaction is too slow to > > cause some of exceptions is important. So we hook the > > tracepoint to call the monitor function. > > Please add a more complete description. This patch adds a module to > monitor transaction latency by attaching to new tracepoints introduced > when transactions are allocated and freed. Describe this in the commit > message. > Okay, we would add these description in next version. > > > > Signed-off-by: Frankie.Chang > > --- > > drivers/android/Kconfig | 8 +++ > > drivers/android/Makefile | 1 + > > drivers/android/binder.c | 2 + > > drivers/android/binder_internal.h | 13 ++++ > > drivers/android/binder_latency_tracer.c | 105 +++++++++++++++++++++++++++++++ > > drivers/android/binder_trace.h | 26 +++++++- > > 6 files changed, 152 insertions(+), 3 deletions(-) > > create mode 100644 drivers/android/binder_latency_tracer.c > > > > 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. > > > > 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 > > Why not "BINDER_TRANSACTION_LATENCY_TRACKING"? > Thanks for your advice. We would modify the config name to this proper one. > > + 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. > > "If yes, print out the detailed info" > We would modify it, thanks. > > + > > endif # if ANDROID > > > > endmenu > > diff --git a/drivers/android/Makefile b/drivers/android/Makefile > > index c9d3d0c9..552e8ac 100644 > > --- a/drivers/android/Makefile > > +++ b/drivers/android/Makefile > > @@ -4,3 +4,4 @@ ccflags-y += -I$(src) # needed for trace events > > obj-$(CONFIG_ANDROID_BINDERFS) += binderfs.o > > obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o > > obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o > > +obj-$(CONFIG_BINDER_USER_TRACKING) += binder_latency_tracer.o > > diff --git a/drivers/android/binder.c b/drivers/android/binder.c > > index 4c3dd98..b89d75a 100644 > > --- a/drivers/android/binder.c > > +++ b/drivers/android/binder.c > > @@ -2657,6 +2657,7 @@ static void binder_transaction(struct binder_proc *proc, > > return_error_line = __LINE__; > > goto err_alloc_t_failed; > > } > > + trace_binder_update_info(t, e); > > Can this be a more descriptive name? Perhaps "trace_binder_txn_create()" > Okay, we would replace the original name with trace_binder_txn_latency_alloc. > > INIT_LIST_HEAD(&t->fd_fixups); > > binder_stats_created(BINDER_STAT_TRANSACTION); > > spin_lock_init(&t->lock); > > @@ -5145,6 +5146,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); > > + trace_print_binder_transaction_ext(m, t); > > Why do you need to trace when dumping out the transaction info? > Because we want to get the start time about this transaction, to check whether these transactions consume too much time. Converting kernel time to android time let us easily correspond kernel log to android log. But it is not necessary if you think that is too redundant. > > > > if (proc != to_proc) { > > /* > > diff --git a/drivers/android/binder_internal.h b/drivers/android/binder_internal.h > > index ed61b3e..24d7beb 100644 > > --- a/drivers/android/binder_internal.h > > +++ b/drivers/android/binder_internal.h > > @@ -12,6 +12,11 @@ > > #include > > #include > > > > +#ifdef CONFIG_BINDER_USER_TRACKING > > +#include > > +#include > > +#endif > > + > > struct binder_context { > > struct binder_node *binder_context_mgr_node; > > struct mutex context_mgr_node_lock; > > @@ -131,6 +136,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 { > > @@ -520,6 +529,10 @@ struct binder_transaction { > > * during thread teardown > > */ > > spinlock_t lock; > > +#ifdef CONFIG_BINDER_USER_TRACKING > > + struct timespec timestamp; > > + struct timeval tv; > > +#endif > > }; > > > > /** > > diff --git a/drivers/android/binder_latency_tracer.c b/drivers/android/binder_latency_tracer.c > > new file mode 100644 > > index 0000000..45c14fb > > --- /dev/null > > +++ b/drivers/android/binder_latency_tracer.c > > @@ -0,0 +1,105 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Copyright (C) 2019 MediaTek Inc. > > + */ > > + > > +#include > > +#include > > +#include "binder_alloc.h" > > +#include "binder_internal.h" > > +#include "binder_trace.h" > > + > > +/* > > + * probe_binder_free_transaction - Output info of a delay transaction > > + * @t: pointer to the over-time transaction > > + */ > > +void probe_binder_free_transaction(void *ignore, 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 probe_binder_update_info(void *ignore, struct binder_transaction *t, > > + struct binder_transaction_log_entry *e) > > +{ > > + ktime_get_ts(&e->timestamp); > > + do_gettimeofday(&e->tv); > > + e->tv.tv_sec -= (sys_tz.tz_minuteswest * 60); > > + memcpy(&t->timestamp, &e->timestamp, sizeof(struct timespec)); > > + memcpy(&t->tv, &e->tv, sizeof(struct timeval)); > > +} > > + > > +static void probe_print_binder_transaction_ext(void *ignore, 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)); > > + > > +} > > + > > +static int __init init_binder_latency_tracer(void) > > +{ > > + register_trace_binder_free_transaction( > > + probe_binder_free_transaction, NULL); > > + register_trace_binder_update_info( > > + probe_binder_update_info, NULL); > > + register_trace_print_binder_transaction_ext( > > + probe_print_binder_transaction_ext, NULL); > > Ah, now the trace in the print path makes sense. Please add a more > detailed description to the commit message. Also add a comment at the > trace point that it is for modules to attach to so additional > information can be printed. Also, make the names of the tracepoints > more descriptive of what they really are ...something like > trace_binder_txn_latency_(alloc|info|free) > Yes, we agree that this is a better way to make these tracepoints more meaningful, and we would change it. > > + > > + return 0; > > +} > > + > > +static void exit_binder_latency_tracer(void) > > +{ > > + unregister_trace_binder_free_transaction( > > + probe_binder_free_transaction, NULL); > > + unregister_trace_binder_update_info( > > + probe_binder_update_info, NULL); > > + unregister_trace_print_binder_transaction_ext( > > + probe_print_binder_transaction_ext, NULL); > > +} > > + > > +module_init(init_binder_latency_tracer); > > +module_exit(exit_binder_latency_tracer); > > + > > +MODULE_LICENSE("GPL v2"); > > diff --git a/drivers/android/binder_trace.h b/drivers/android/binder_trace.h > > index 7acc18d..466993e 100644 > > --- a/drivers/android/binder_trace.h > > +++ b/drivers/android/binder_trace.h > > @@ -18,6 +18,7 @@ > > struct binder_ref_data; > > struct binder_thread; > > struct binder_transaction; > > +struct binder_transaction_log_entry; > > > > TRACE_EVENT(binder_ioctl, > > TP_PROTO(unsigned int cmd, unsigned long arg), > > @@ -95,6 +96,18 @@ > > __entry->thread_todo) > > ); > > > > +DECLARE_TRACE(binder_update_info, > > + TP_PROTO(struct binder_transaction *t, > > + struct binder_transaction_log_entry *e), > > + TP_ARGS(t, e) > > +); > > + > > +DECLARE_TRACE(print_binder_transaction_ext, > > + TP_PROTO(struct seq_file *m, > > + struct binder_transaction *t), > > + TP_ARGS(m, t) > > +); > > + > > TRACE_EVENT(binder_free_transaction, > > TP_PROTO(struct binder_transaction *t), > > TP_ARGS(t), > > @@ -115,11 +128,18 @@ > > __entry->to_thread = t->to_thread ? t->to_thread->pid : 0; > > __entry->code = t->code; > > __entry->flags = t->flags; > > - ), > > - TP_printk("transaction=%d from %d:%d to %d:%d flags=0x%x code=0x%x", > > +#ifdef CONFIG_BINDER_USER_TRACKING > > + __entry->start_sec = t->timestamp.tv_sec; > > + __entry->start_nsec = t->timestamp.tv_nsec / NSEC_PER_MSEC; > > +#else > > + __entry->start_sec = 0; > > + __entry->start_nsec = 0; > > +#endif > > + ), > > + TP_printk("transaction=%d from %d:%d to %d:%d flags=0x%x code=0x%x start %lu.%03ld", > > __entry->debug_id, __entry->from_proc, __entry->from_thread, > > __entry->to_proc, __entry->to_thread, __entry->code, > > - __entry->flags) > > + __entry->flags, __entry->start_sec, __entry->start_nsec) > > ); > > > > TRACE_EVENT(binder_transaction, > > -- > > 1.7.9.5 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek