Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1838932ybk; Mon, 11 May 2020 05:38:05 -0700 (PDT) X-Google-Smtp-Source: APiQypJeZUUDJLgKludFttRsmdA4l9aYvXzc4+JIG27sF/YmeQLaUFub6tI1WxUfUzKtBVHIxm8E X-Received: by 2002:a17:906:4714:: with SMTP id y20mr13640912ejq.5.1589200685351; Mon, 11 May 2020 05:38:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589200685; cv=none; d=google.com; s=arc-20160816; b=tReOMI983HEcpT6vKkv2nrtyVnPjJ3GTPLl6LlZ3uRKCZvUmIKKdOiKP6sgFi4RPt6 oaAskBOT7TEdDG9PaM9C2HKEYZ4NS5D7jnJRS6yMW9JJoEk257mtHPiWcakIXpryefcO tUoRY+gpzDiZpEpC05Xu0oCqBL238Zwb/j/oWEvgoMIwipKoqZjv6it8VG2J1ZJmBYm0 bh+TFJ6dDQqYhU8G4jcgkz2GqL5qq+db8dI0C3BV/ScATQCjs/n8+XU2u4cINBnIz1nz SZW6i+3ji9zj/z4knUKvc+aiMMsbpD6kiYDnH+La2FSXF8aaVHV046RkEaZQ2Lt+trE2 ZZJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :date:references:in-reply-to:cc:to:from:subject:message-id :dkim-signature; bh=yQncGQQZJ25A+h0/Kz+1oWQVoS9ywaMd94bmZgrpNzY=; b=zHSH+83/wwSvVDZBEistBd/zfjY2d6rO1ddiW0USNYo6xrHdPHFR9G19v8AxzvlTRq 6uIzvWk0iD/XkQ7rPiiFW5qCkET4r4KREYso+EV/05UUDTEityLUlRfxOS/Wf+B5q8yv 4oxuJGH3nLhrAS451zRc/pwP6q/kIx+NToDFpgvyEo1u4DBmbnGQ+Rw9ffHQssunKuIx cwa+25UX80lTymbKOlfkISvE9JgJQeCOTKNC2VAHYpVihqds058yRybHJFvKVgFSpG6Y Xbh+hTS8X2M9Ypx97KexGRs3F/QKN+Pp8isdt6Jn5KWUgOhJsrCPM4NopbwOkNX2cQbh iK0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=fqbUPWt+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t26si5815392edf.183.2020.05.11.05.37.42; Mon, 11 May 2020 05:38:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=fqbUPWt+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730049AbgEKMfh (ORCPT + 99 others); Mon, 11 May 2020 08:35:37 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:53291 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1730042AbgEKMfg (ORCPT ); Mon, 11 May 2020 08:35:36 -0400 X-UUID: a08f585149444c5dafa1d56144653cc0-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:Date:Content-Type:References:In-Reply-To:CC:To:From:Subject:Message-ID; bh=yQncGQQZJ25A+h0/Kz+1oWQVoS9ywaMd94bmZgrpNzY=; b=fqbUPWt+3xG3z7ggSfqpfD/pWXUQPj+LOCYv3GNjVjmVGeKkoWj08zZDjX4wU1xUDoO1e7Hs2wq11ykya6hB8fM9xNtJXMzJnyW4oSVbPDP/E3Cz0ZiLPOz6XnVwaaT7Wpz+YjKCY++IZIfOpSykmiFyNXEp5XkFzkMq2xjlqI0=; X-UUID: a08f585149444c5dafa1d56144653cc0-20200511 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 258015588; Mon, 11 May 2020 20:35:33 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 20:35:30 +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:30 +0800 Message-ID: <1589200361.22902.15.camel@mtkswgap22> Subject: Re: [PATCH v4 3/3] binder: add transaction latency tracer From: Frankie Chang To: Greg Kroah-Hartman CC: Todd Kjos , Joel Fernandes , Martijn Coenen , Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , Christian Brauner , LKML , , wsd_upstream , Jian-Min Liu In-Reply-To: <20200507085544.GB1097552@kroah.com> 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> <20200507085544.GB1097552@kroah.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 May 2020 20:32:41 +0800 MIME-Version: 1.0 X-Mailer: Evolution 3.2.3-0ubuntu6 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 T24gVGh1LCAyMDIwLTA1LTA3IGF0IDEwOjU1ICswMjAwLCBHcmVnIEtyb2FoLUhhcnRtYW4gd3Jv dGU6DQo+IE9uIFRodSwgTWF5IDA3LCAyMDIwIGF0IDA0OjEwOjU1UE0gKzA4MDAsIEZyYW5raWUg Q2hhbmcgd3JvdGU6DQo+ID4gRnJvbTogIkZyYW5raWUuQ2hhbmciIDxGcmFua2llLkNoYW5nQG1l ZGlhdGVrLmNvbT4NCj4gPiANCj4gPiBSZWNvcmQgc3RhcnQvZW5kIHRpbWVzdGFtcCBmb3IgYmlu ZGVyIHRyYW5zYWN0aW9uLg0KPiA+IFdoZW4gdHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIG9yIHRy YW5zYWN0aW9uIGlzIGZyZWUsDQo+ID4gaXQgd291bGQgYmUgY2hlY2tlZCBpZiB0cmFuc2FjdGlv biBsYXRlbmN5IG92ZXIgdGhyZXNob2xkICgyIHNlYyksDQo+ID4gaWYgeWVzLCBwcmludGluZyBy ZWxhdGVkIGluZm9ybWF0aW9uIGZvciB0cmFjaW5nLg0KPiANCj4gU2hvdWxkbid0IHRoYXQgInBy aW50aW5nIiBnbyB0byB0aGUgdHJhY2UgYnVmZmVyIGFuZCBub3QgdG8gdGhlIGtlcm5lbA0KPiBp bmZvcm1hdGlvbiBsb2c/DQo+IA0KDQpUaW1lIGxpbWl0YXRpb24gb2YgcmVjb3JkaW5nIGlzIHRo ZSByZWFzb24gd2h5IHdlIGRvbid0IGp1c3QgdXNlIHRyYWNlDQpoZXJlLg0KDQpJbiBzb21lIGxv bmcgdGltZSBzdGFiaWxpdHkgdGVzdCwgc3VjaCBhcyBNVEJGLA0KdGhlIGV4Y2VwdGlvbiBpcyBj YXVzZWQgYnkgYSBzZXJpZXMgb2YgdHJhbnNhY3Rpb25zIGludGVyYWN0aW9uLg0KU29tZSBhYm5v cm1hbCB0cmFuc2FjdGlvbnMgbWF5IGJlIHBlbmRpbmcgZm9yIGEgbG9uZyB0aW1lIGFnbywgdGhl eSANCmNvdWxkIG5vdCBiZSByZWNvcmRlZCBkdWUgdG8gYnVmZmVyIGxpbWl0ZWQuDQoNCj4gPiAN Cj4gPiAvKiBJbXBsZW1lbnQgZGV0YWlscyAqLw0KPiA+IC0gQWRkIGxhdGVuY3kgdHJhY2VyIG1v ZHVsZSB0byBtb25pdG9yIHNsb3cgdHJhbnNhY3Rpb24uDQo+ID4gICBUaGUgdHJhY2VfYmluZGVy X2ZyZWVfdHJhbnNhY3Rpb24gd291bGQgbm90IGJlIGVuYWJsZWQNCj4gPiAgIGJ5IGRlZmF1bHQu IE1vbml0b3Jpbmcgd2hpY2ggdHJhbnNhY3Rpb24gaXMgdG9vIHNsb3cgdG8NCj4gPiAgIGNhdXNl IHNvbWUgb2YgZXhjZXB0aW9ucyBpcyBpbXBvcnRhbnQuIFNvIHdlIGhvb2sgdGhlDQo+ID4gICB0 cmFjZXBvaW50IHRvIGNhbGwgdGhlIG1vbml0b3IgZnVuY3Rpb24uDQo+ID4gDQo+ID4gU2lnbmVk LW9mZi1ieTogRnJhbmtpZS5DaGFuZyA8RnJhbmtpZS5DaGFuZ0BtZWRpYXRlay5jb20+DQo+ID4g LS0tDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAgIDgg KysrDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgIDEg Kw0KPiA+ICBkcml2ZXJzL2FuZHJvaWQvYmluZGVyLmMgICAgICAgICAgICAgICAgfCAgICAyICsN Cj4gPiAgZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oICAgICAgIHwgICAxMyArKysr DQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYyB8ICAxMDUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL2FuZHJvaWQvYmluZGVy X3RyYWNlLmggICAgICAgICAgfCAgIDI2ICsrKysrKystDQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwg MTUyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmMNCj4gPiANCj4gPiAgQ2hh bmdlIGZyb20gdjQ6DQo+ID4gICAgc3BsaXQgdXAgaW50byBwYXRjaCBzZXJpZXMuDQo+ID4gDQo+ ID4gIENoYW5nZSBmcm9tIHYzOg0KPiA+ICAgIHVzZSB0cmFjZXBvaW50cyBmb3IgYmluZGVyX3Vw ZGF0ZV9pbmZvIGFuZCBwcmludF9iaW5kZXJfdHJhbnNhY3Rpb25fZXh0LA0KPiA+ICAgIGluc3Rl YWQgb2YgY3VzdG9tIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMuDQo+ID4gDQo+ID4gIENoYW5nZSBm cm9tIHYyOg0KPiA+ICAgIGNyZWF0ZSB0cmFuc2FjdGlvbiBsYXRlbmN5IG1vZHVsZSB0byBtb25p dG9yIHNsb3cgdHJhbnNhY3Rpb24uDQo+ID4gDQo+ID4gIENoYW5nZSBmcm9tIHYxOg0KPiA+ICAg IGZpcnN0IHBhdGNoc2V0Lg0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FuZHJvaWQv S2NvbmZpZyBiL2RyaXZlcnMvYW5kcm9pZC9LY29uZmlnDQo+ID4gaW5kZXggNmZkZjJhYi4uN2Jh ODBlYiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2FuZHJvaWQvS2NvbmZpZw0KPiA+ICsrKyBi L2RyaXZlcnMvYW5kcm9pZC9LY29uZmlnDQo+ID4gQEAgLTU0LDYgKzU0LDE0IEBAIGNvbmZpZyBB TkRST0lEX0JJTkRFUl9JUENfU0VMRlRFU1QNCj4gPiAgCSAgZXhoYXVzdGl2ZWx5IHdpdGggY29t YmluYXRpb25zIG9mIHZhcmlvdXMgYnVmZmVyIHNpemVzIGFuZA0KPiA+ICAJICBhbGlnbm1lbnRz Lg0KPiA+ICANCj4gPiArY29uZmlnIEJJTkRFUl9VU0VSX1RSQUNLSU5HDQo+ID4gKwlib29sICJB bmRyb2lkIEJpbmRlciB0cmFuc2FjdGlvbiB0cmFja2luZyINCj4gPiArCWhlbHANCj4gPiArCSAg VXNlZCBmb3IgdHJhY2sgYWJub3JtYWwgYmluZGVyIHRyYW5zYWN0aW9uIHdoaWNoIGlzIG92ZXIg MiBzZWNvbmRzLA0KPiA+ICsJICB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBkb25lIG9yIGJlIGZy ZWUsIHRoaXMgdHJhbnNhY3Rpb24gd291bGQgYmUNCj4gPiArCSAgY2hlY2tlZCB3aGV0aGVyIGl0 IGV4ZWN1dGVkIG92ZXJ0aW1lLg0KPiA+ICsJICBJZiB5ZXMsIHByaW50aW5nIG91dCB0aGUgZGV0 YWlsIGluZm8gYWJvdXQgaXQuDQo+ID4gKw0KPiA+ICBlbmRpZiAjIGlmIEFORFJPSUQNCj4gPiAg DQo+ID4gIGVuZG1lbnUNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hbmRyb2lkL01ha2VmaWxl IGIvZHJpdmVycy9hbmRyb2lkL01ha2VmaWxlDQo+ID4gaW5kZXggYzlkM2QwYzkuLjU1MmU4YWMg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9hbmRyb2lkL01ha2VmaWxlDQo+ID4gKysrIGIvZHJp dmVycy9hbmRyb2lkL01ha2VmaWxlDQo+ID4gQEAgLTQsMyArNCw0IEBAIGNjZmxhZ3MteSArPSAt SSQoc3JjKQkJCSMgbmVlZGVkIGZvciB0cmFjZSBldmVudHMNCj4gPiAgb2JqLSQoQ09ORklHX0FO RFJPSURfQklOREVSRlMpCQkrPSBiaW5kZXJmcy5vDQo+ID4gIG9iai0kKENPTkZJR19BTkRST0lE X0JJTkRFUl9JUEMpCSs9IGJpbmRlci5vIGJpbmRlcl9hbGxvYy5vDQo+ID4gIG9iai0kKENPTkZJ R19BTkRST0lEX0JJTkRFUl9JUENfU0VMRlRFU1QpICs9IGJpbmRlcl9hbGxvY19zZWxmdGVzdC5v DQo+ID4gK29iai0kKENPTkZJR19CSU5ERVJfVVNFUl9UUkFDS0lORykJKz0gYmluZGVyX2xhdGVu Y3lfdHJhY2VyLm8NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jIGIv ZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jDQo+ID4gaW5kZXggNGMzZGQ5OC4uYjg5ZDc1YSAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2FuZHJvaWQvYmluZGVyLmMNCj4gPiArKysgYi9kcml2ZXJz L2FuZHJvaWQvYmluZGVyLmMNCj4gPiBAQCAtMjY1Nyw2ICsyNjU3LDcgQEAgc3RhdGljIHZvaWQg YmluZGVyX3RyYW5zYWN0aW9uKHN0cnVjdCBiaW5kZXJfcHJvYyAqcHJvYywNCj4gPiAgCQlyZXR1 cm5fZXJyb3JfbGluZSA9IF9fTElORV9fOw0KPiA+ICAJCWdvdG8gZXJyX2FsbG9jX3RfZmFpbGVk Ow0KPiA+ICAJfQ0KPiA+ICsJdHJhY2VfYmluZGVyX3VwZGF0ZV9pbmZvKHQsIGUpOw0KPiA+ICAJ SU5JVF9MSVNUX0hFQUQoJnQtPmZkX2ZpeHVwcyk7DQo+ID4gIAliaW5kZXJfc3RhdHNfY3JlYXRl ZChCSU5ERVJfU1RBVF9UUkFOU0FDVElPTik7DQo+ID4gIAlzcGluX2xvY2tfaW5pdCgmdC0+bG9j ayk7DQo+ID4gQEAgLTUxNDUsNiArNTE0Niw3IEBAIHN0YXRpYyB2b2lkIHByaW50X2JpbmRlcl90 cmFuc2FjdGlvbl9pbG9ja2VkKHN0cnVjdCBzZXFfZmlsZSAqbSwNCj4gPiAgCQkgICB0LT50b190 aHJlYWQgPyB0LT50b190aHJlYWQtPnBpZCA6IDAsDQo+ID4gIAkJICAgdC0+Y29kZSwgdC0+Zmxh Z3MsIHQtPnByaW9yaXR5LCB0LT5uZWVkX3JlcGx5KTsNCj4gPiAgCXNwaW5fdW5sb2NrKCZ0LT5s b2NrKTsNCj4gPiArCXRyYWNlX3ByaW50X2JpbmRlcl90cmFuc2FjdGlvbl9leHQobSwgdCk7DQo+ ID4gIA0KPiA+ICAJaWYgKHByb2MgIT0gdG9fcHJvYykgew0KPiA+ICAJCS8qDQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaCBiL2RyaXZlcnMvYW5kcm9p ZC9iaW5kZXJfaW50ZXJuYWwuaA0KPiA+IGluZGV4IGVkNjFiM2UuLjI0ZDdiZWIgMTAwNjQ0DQo+ ID4gLS0tIGEvZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oDQo+ID4gKysrIGIvZHJp dmVycy9hbmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oDQo+ID4gQEAgLTEyLDYgKzEyLDExIEBADQo+ ID4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvdWlkZ2lk Lmg+DQo+ID4gIA0KPiA+ICsjaWZkZWYgQ09ORklHX0JJTkRFUl9VU0VSX1RSQUNLSU5HDQo+ID4g KyNpbmNsdWRlIDxsaW51eC9ydGMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4NCj4g PiArI2VuZGlmDQo+ID4gKw0KPiA+ICBzdHJ1Y3QgYmluZGVyX2NvbnRleHQgew0KPiA+ICAJc3Ry dWN0IGJpbmRlcl9ub2RlICpiaW5kZXJfY29udGV4dF9tZ3Jfbm9kZTsNCj4gPiAgCXN0cnVjdCBt dXRleCBjb250ZXh0X21ncl9ub2RlX2xvY2s7DQo+ID4gQEAgLTEzMSw2ICsxMzYsMTAgQEAgc3Ry dWN0IGJpbmRlcl90cmFuc2FjdGlvbl9sb2dfZW50cnkgew0KPiA+ICAJdWludDMyX3QgcmV0dXJu X2Vycm9yOw0KPiA+ICAJdWludDMyX3QgcmV0dXJuX2Vycm9yX3BhcmFtOw0KPiA+ICAJY2hhciBj b250ZXh0X25hbWVbQklOREVSRlNfTUFYX05BTUUgKyAxXTsNCj4gPiArI2lmZGVmIENPTkZJR19C SU5ERVJfVVNFUl9UUkFDS0lORw0KPiA+ICsJc3RydWN0IHRpbWVzcGVjIHRpbWVzdGFtcDsNCj4g PiArCXN0cnVjdCB0aW1ldmFsIHR2Ow0KPiA+ICsjZW5kaWYNCj4gPiAgfTsNCj4gPiAgDQo+ID4g IHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb25fbG9nIHsNCj4gPiBAQCAtNTIwLDYgKzUyOSwxMCBA QCBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uIHsNCj4gPiAgCSAqIGR1cmluZyB0aHJlYWQgdGVh cmRvd24NCj4gPiAgCSAqLw0KPiA+ICAJc3BpbmxvY2tfdCBsb2NrOw0KPiA+ICsjaWZkZWYgQ09O RklHX0JJTkRFUl9VU0VSX1RSQUNLSU5HDQo+ID4gKwlzdHJ1Y3QgdGltZXNwZWMgdGltZXN0YW1w Ow0KPiA+ICsJc3RydWN0IHRpbWV2YWwgdHY7DQo+ID4gKyNlbmRpZg0KPiA+ICB9Ow0KPiA+ICAN Cj4gPiAgLyoqDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5j eV90cmFjZXIuYyBiL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYw0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uNDVjMTRmYg0KPiA+IC0t LSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJh Y2VyLmMNCj4gPiBAQCAtMCwwICsxLDEwNSBAQA0KPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMA0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTkgTWVkaWFU ZWsgSW5jLg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4N Cj4gPiArI2luY2x1ZGUgPHVhcGkvbGludXgvYW5kcm9pZC9iaW5kZXIuaD4NCj4gPiArI2luY2x1 ZGUgImJpbmRlcl9hbGxvYy5oIg0KPiA+ICsjaW5jbHVkZSAiYmluZGVyX2ludGVybmFsLmgiDQo+ ID4gKyNpbmNsdWRlICJiaW5kZXJfdHJhY2UuaCINCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIHBy b2JlX2JpbmRlcl9mcmVlX3RyYW5zYWN0aW9uIC0gT3V0cHV0IGluZm8gb2YgYSBkZWxheSB0cmFu c2FjdGlvbg0KPiA+ICsgKiBAdDogICAgICAgICAgcG9pbnRlciB0byB0aGUgb3Zlci10aW1lIHRy YW5zYWN0aW9uDQo+ID4gKyAqLw0KPiA+ICt2b2lkIHByb2JlX2JpbmRlcl9mcmVlX3RyYW5zYWN0 aW9uKHZvaWQgKmlnbm9yZSwgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdCkNCj4gPiArew0K PiA+ICsJc3RydWN0IHJ0Y190aW1lIHRtOw0KPiA+ICsJc3RydWN0IHRpbWVzcGVjICpzdGFydGlt ZTsNCj4gPiArCXN0cnVjdCB0aW1lc3BlYyBjdXIsIHN1Yl90Ow0KPiA+ICsNCj4gPiArCWt0aW1l X2dldF90cygmY3VyKTsNCj4gPiArCXN0YXJ0aW1lID0gJnQtPnRpbWVzdGFtcDsNCj4gPiArCXN1 Yl90ID0gdGltZXNwZWNfc3ViKGN1ciwgKnN0YXJ0aW1lKTsNCj4gPiArDQo+ID4gKwkvKiBpZiB0 cmFuc2FjdGlvbiB0aW1lIGlzIG92ZXIgdGhhbiAyIHNlYywNCj4gPiArCSAqIHNob3cgdGltZW91 dCB3YXJuaW5nIGxvZy4NCj4gPiArCSAqLw0KPiA+ICsJaWYgKHN1Yl90LnR2X3NlYyA8IDIpDQo+ ID4gKwkJcmV0dXJuOw0KPiANCj4gV2h5IGlzIDIgc2Vjb25kcyBzb21laG93ICJtYWdpYyIgaGVy ZT8NCj4gDQoNClNvbWUgb2YgbW9kdWxlcyB3b3VsZCB0cmlnZ2VyIHRpbWVvdXQgTkUgaWYgdGhl aXIgYmluZGVyIHRyYW5zYWN0aW9uDQpkb24ndCBmaW5pc2ggaW4gdGltZSwgc3VjaCBhcyBhdWRp byB0aW1lb3V0ICg1IHNlYyksIGV2ZW4gQlQgY29tbWFuZA0KdGltZW91dCAoMiBzZWMpLCBldGMu DQoNClRoZXJlZm9yZSwgd2Ugd2FudCB0byByZWNvcmQgcmVsYXRlZCB0cmFuc2FjdGlvbnMgd2hp Y2ggZXhjZWVkIDIgc2VjLiBJdA0KY291bGQgYmUgaGVscGZ1bCB0byBkZWJ1Zy4NCg0KPiANCj4g DQo+ID4gKw0KPiA+ICsJcnRjX3RpbWVfdG9fdG0odC0+dHYudHZfc2VjLCAmdG0pOw0KPiA+ICsN Cj4gPiArCXNwaW5fbG9jaygmdC0+bG9jayk7DQo+ID4gKwlwcl9pbmZvX3JhdGVsaW1pdGVkKCIl ZDogZnJvbSAlZDolZCB0byAlZDolZCIsDQo+ID4gKwkJCXQtPmRlYnVnX2lkLA0KPiA+ICsJCQl0 LT5mcm9tID8gdC0+ZnJvbS0+cHJvYy0+cGlkIDogMCwNCj4gPiArCQkJdC0+ZnJvbSA/IHQtPmZy b20tPnBpZCA6IDAsDQo+ID4gKwkJCXQtPnRvX3Byb2MgPyB0LT50b19wcm9jLT5waWQgOiAwLA0K PiA+ICsJCQl0LT50b190aHJlYWQgPyB0LT50b190aHJlYWQtPnBpZCA6IDApOw0KPiA+ICsJc3Bp bl91bmxvY2soJnQtPmxvY2spOw0KPiANCj4gV2h5IGlzIHRoZSBsb2NrIG9rIHRvIGdpdmUgdXAg aGVyZSBhbmQgbm90IGFmdGVyIHRoZSBuZXh0IGNhbGw/DQo+IA0KDQpXZSB3b3VsZCBnaXZlIHVw IGxvY2sgbm90IGhlcmUgYnV0IGFmdGVyIHRoZSBuZXh0IGNhbGwsIHRoYW5rcyBmb3INCnJlbWlu ZGluZy4NCg0KPiA+ICsNCj4gPiArCXByX2luZm9fcmF0ZWxpbWl0ZWQoIiB0b3RhbCAldS4lMDNs ZCBzIGNvZGUgJXUgc3RhcnQgJWx1LiUwM2xkIGFuZHJvaWQgJWQtJTAyZC0lMDJkICUwMmQ6JTAy ZDolMDJkLiUwM2x1XG4iLA0KPiA+ICsJCQkodW5zaWduZWQgaW50KXN1Yl90LnR2X3NlYywNCj4g PiArCQkJKHN1Yl90LnR2X25zZWMgLyBOU0VDX1BFUl9NU0VDKSwNCj4gPiArCQkJdC0+Y29kZSwN Cj4gPiArCQkJKHVuc2lnbmVkIGxvbmcpc3RhcnRpbWUtPnR2X3NlYywNCj4gPiArCQkJKHN0YXJ0 aW1lLT50dl9uc2VjIC8gTlNFQ19QRVJfTVNFQyksDQo+ID4gKwkJCSh0bS50bV95ZWFyICsgMTkw MCksICh0bS50bV9tb24gKyAxKSwgdG0udG1fbWRheSwNCj4gPiArCQkJdG0udG1faG91ciwgdG0u dG1fbWluLCB0bS50bV9zZWMsDQo+ID4gKwkJCSh1bnNpZ25lZCBsb25nKSh0LT50di50dl91c2Vj IC8gVVNFQ19QRVJfTVNFQykpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBwcm9i ZV9iaW5kZXJfdXBkYXRlX2luZm8odm9pZCAqaWdub3JlLCBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0 aW9uICp0LA0KPiA+ICsJCQkgICBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uX2xvZ19lbnRyeSAq ZSkNCj4gPiArew0KPiA+ICsJa3RpbWVfZ2V0X3RzKCZlLT50aW1lc3RhbXApOw0KPiA+ICsJZG9f Z2V0dGltZW9mZGF5KCZlLT50dik7DQo+ID4gKwllLT50di50dl9zZWMgLT0gKHN5c190ei50el9t aW51dGVzd2VzdCAqIDYwKTsNCj4gPiArCW1lbWNweSgmdC0+dGltZXN0YW1wLCAmZS0+dGltZXN0 YW1wLCBzaXplb2Yoc3RydWN0IHRpbWVzcGVjKSk7DQo+ID4gKwltZW1jcHkoJnQtPnR2LCAmZS0+ dHYsIHNpemVvZihzdHJ1Y3QgdGltZXZhbCkpOw0KPiANCj4gTm8gbG9ja2luZyBuZWVkZWQ/DQo+ IA0KDQpXZSB3b3VsZCBhZGQgbG9jayBwcm90ZWN0aW9uIGhlcmUsIHRoYW5rcyBhIGxvdC4NCg0K DQo=