From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: [PATCH hmm 00/15] Consolidate the mmu notifier interval_tree and locking Date: Wed, 23 Oct 2019 12:52:23 -0400 Message-ID: <20191023165223.GA4163@redhat.com> References: <20191018203608.GA5670@mellanox.com> <20191021135744.GA25164@mellanox.com> <20191021151221.GC25164@mellanox.com> <20191022075735.GV11828@phenom.ffwll.local> <20191022150109.GF22766@mellanox.com> <20191023090858.GV11828@phenom.ffwll.local> <13edf841-421e-3522-fcec-ef919c2013ef@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <13edf841-421e-3522-fcec-ef919c2013ef-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Content-Disposition: inline List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: christian.koenig-5C7GfCeVMHo@public.gmane.org Cc: Andrea Arcangeli , "Yang, Philip" , Ralph Campbell , "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , John Hubbard , "Kuehling, Felix" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org" , Jason Gunthorpe , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , Ben Skeggs T24gV2VkLCBPY3QgMjMsIDIwMTkgYXQgMTE6MzI6MTZBTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBBbSAyMy4xMC4xOSB1bSAxMTowOCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4g PiBPbiBUdWUsIE9jdCAyMiwgMjAxOSBhdCAwMzowMToxM1BNICswMDAwLCBKYXNvbiBHdW50aG9y cGUgd3JvdGU6Cj4gPiA+IE9uIFR1ZSwgT2N0IDIyLCAyMDE5IGF0IDA5OjU3OjM1QU0gKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+IAo+ID4gPiA+ID4gVGhlIHVudXN1YWwgYml0IGlu IGFsbCBvZiB0aGlzIGlzIHVzaW5nIGEgbG9jaydzIGNyaXRpY2FsIHJlZ2lvbiB0bwo+ID4gPiA+ ID4gJ3Byb3RlY3QnIGRhdGEgZm9yIHJlYWQsIGJ1dCB1cGRhdGluZyB0aGF0IHNhbWUgZGF0YSBi ZWZvcmUgdGhlIGxvY2sncwo+ID4gPiA+ID4gY3JpdGljYWwgc2VjaW9uLiBpZSByZWx5aW5nIG9u IHRoZSB1bmxvY2sgYmFycmllciB0byAncmVsZWFzZScgcHJvZ3JhbQo+ID4gPiA+ID4gb3JkZXJl ZCBzdG9yZXMgZG9uZSBiZWZvcmUgdGhlIGxvY2sncyBvd24gY3JpdGljYWwgcmVnaW9uLCBhbmQg dGhlCj4gPiA+ID4gPiBsb2NrIHNpZGUgYmFycmllciB0byAnYWNxdWlyZScgdGhvc2Ugc3RvcmVz Lgo+ID4gPiA+IEkgdGhpbmsgdGhpcyB1bnVzdWFsIHVzZSBvZiBsb2NrcyBhcyBiYXJyaWVycyBm b3Igb3RoZXIgdW5sb2NrZWQgYWNjZXNzZXMKPiA+ID4gPiBkZXNlcnZlcyBjb21tZW50cyBldmVu IG1vcmUgdGhhbiBqdXN0IG5vcm1hbCBiYXJyaWVycy4gQ2FuIHlvdSBwbHMgYWRkCj4gPiA+ID4g dGhlbT8gSSB0aGluayB0aGUgZGVzaWduIHNlZWVtcyBzb3VuZCAuLi4KPiA+ID4gPiAKPiA+ID4g PiBBbHNvIHRoZSBjb21tZW50IG9uIHRoZSBkcml2ZXIncyBsb2NrIGhvcGVmdWxseSBwcmV2ZW50 cyBkcml2ZXIKPiA+ID4gPiBtYWludGFpbmVycyBmcm9tIG1vdmluZyB0aGUgZHJpdmVyX2xvY2sg YXJvdW5kIGluIGEgd2F5IHRoYXQgd291bGQgdmVyeQo+ID4gPiA+IHN1YnRsZSBicmVhayB0aGUg c2NoZW1lLCBzbyBJIHRoaW5rIGhhdmluZyB0aGUgYWNxdWlyZSBiYXJyaWVyIGNvbW1lbnRlZAo+ ID4gPiA+IGluIGVhY2ggcGxhY2Ugd291bGQgYmUgcmVhbGx5IGdvb2QuCj4gPiA+IFRoZXJlIGlz IGFscmVhZHkgYSBsb3Qgb2YgZG9jdW1lbnRhdGlvbiwgSSB0aGluayBpdCB3b3VsZCBiZSBoZWxw ZnVsCj4gPiA+IGlmIHlvdSBjb3VsZCBzdWdnZXN0IHNvbWUgc3BlY2lmaWMgcGxhY2VzIHdoZXJl IHlvdSB0aGluayBhbiBhZGRpdGlvbgo+ID4gPiB3b3VsZCBoZWxwPyBJIHRoaW5rIHRoZSBwZXJz cGVjdGl2ZSBvZiBzb21lb25lIGxlc3MgZmFtaWxpYXIgd2l0aCB0aGlzCj4gPiA+IGRlc2lnbiB3 b3VsZCByZWFsbHkgaW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbgo+ID4gSG0gSSBqdXN0IG1lYW50 IHRoZSB1c3VhbCByZWNvbW1lbmRhdGlvbiB0aGF0ICJiYXJyaWVycyBtdXN0IGhhdmUgY29tbWVu dHMKPiA+IGV4cGxhaW5pbmcgd2hhdCB0aGV5IG9yZGVyLCBhbmQgd2hlcmUgdGhlIG90aGVyIHNp ZGUgb2YgdGhlIGJhcnJpZXIgaXMiLgo+ID4gVXNpbmcgdW5sb2NrL2xvY2sgYXMgYSBiYXJyaWVy IGltbyBqdXN0IG1ha2VzIHRoYXQgYW4gZXZlbiBiZXR0ZXIgaWRlYS4KPiA+IFVzdWFsbHkgd2hh dCBJIGRvIGlzIHNvbWV0aGluZyBsaWtlICJ3ZSBuZWVkIHRvIG9yZGVyICR0aGlzIGFnYWluc3Qg JHRoYXQKPiA+IGJlbG93LCBhbmQgdGhlIG90aGVyIHNpZGUgb2YgdGhpcyBiYXJyaWVyIGlzIGlu IGZ1bmN0aW9uKCkuIiBXaXRoIG1heWJlIGEKPiA+IGJpdCBtb3JlIGlmIGl0J3Mgbm90IG9idmlv dXMgaG93IHRoaW5ncyBnbyB3cm9uZyBpZiB0aGUgb3JkZXJpbiBpcyBicm9rZW4uCj4gPiAKPiA+ IE9mYyBzZXFsb2NrLmggaXRzZWxmIHNraW1wcyBvbiB0aGF0IHJ1bGUgYW5kIGRvZXNuJ3QgYm90 aGVyIGV4cGxhaW5pbmcgaXRzCj4gPiBiYXJyaWVycyA6LS8KPiA+IAo+ID4gPiBJJ3ZlIGJlZW4g dGVtcHRlZCB0byBmb3JjZSB0aGUgZHJpdmVyIHRvIHN0b3JlIHRoZSBzZXEgbnVtYmVyIGRpcmVj dGx5Cj4gPiA+IHVuZGVyIHRoZSBkcml2ZXIgbG9jayAtIHRoaXMgbWFrZXMgdGhlIHNjaGVtZSBt dWNoIGNsZWFyZXIsIGllCj4gPiA+IHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMKPiA+ID4gaW5kZXggNzEyYzk5OTE4NTUx YmMuLjczOGZhNjcwZGNmYjE5IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X3N2bS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfc3ZtLmMKPiA+ID4gQEAgLTQ4OCw3ICs0ODgsOCBAQCBzdHJ1Y3Qgc3ZtX25vdGlmaWVy IHsKPiA+ID4gICB9Owo+ID4gPiAgIHN0YXRpYyBib29sIG5vdXZlYXVfc3ZtX3JhbmdlX2ludmFs aWRhdGUoc3RydWN0IG1tdV9yYW5nZV9ub3RpZmllciAqbXJuLAo+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFu Z2UgKnJhbmdlKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2VxKQo+ID4gPiAg IHsKPiA+ID4gICAgICAgICAgc3RydWN0IHN2bV9ub3RpZmllciAqc24gPQo+ID4gPiAgICAgICAg ICAgICAgICAgIGNvbnRhaW5lcl9vZihtcm4sIHN0cnVjdCBzdm1fbm90aWZpZXIsIG5vdGlmaWVy KTsKPiA+ID4gQEAgLTUwNCw2ICs1MDUsNyBAQCBzdGF0aWMgYm9vbCBub3V2ZWF1X3N2bV9yYW5n ZV9pbnZhbGlkYXRlKHN0cnVjdCBtbXVfcmFuZ2Vfbm90aWZpZXIgKm1ybiwKPiA+ID4gICAgICAg ICAgICAgICAgICBtdXRleF9sb2NrKCZzbi0+c3ZtbS0+bXV0ZXgpOwo+ID4gPiAgICAgICAgICBl bHNlIGlmICghbXV0ZXhfdHJ5bG9jaygmc24tPnN2bW0tPm11dGV4KSkKPiA+ID4gICAgICAgICAg ICAgICAgICByZXR1cm4gZmFsc2U7Cj4gPiA+ICsgICAgICAgbW11X3JhbmdlX25vdGlmaWVyX3Vw ZGF0ZV9zZXEobXJuLCBzZXEpOwo+ID4gPiAgICAgICAgICBtdXRleF91bmxvY2soJnNuLT5zdm1t LT5tdXRleCk7Cj4gPiA+ICAgICAgICAgIHJldHVybiB0cnVlOwo+ID4gPiAgIH0KPiA+ID4gCj4g PiA+IAo+ID4gPiBBdCB0aGUgY29zdCBvZiBtYWtpbmcgdGhlIGRyaXZlciBhIGJpdCBtb3JlIGNv bXBsZXgsIHdoYXQgZG8geW91Cj4gPiA+IHRoaW5rPwo+ID4gSG0sIHNwaW5uaW5nIHRoaXMgZnVy dGhlciAuLi4gY291bGQgd2UgaW5pdGlhbGl6ZSB0aGUgbW11IHJhbmdlIG5vdGlmaWVyCj4gPiB3 aXRoIGEgcG9pbnRlciB0byB0aGUgZHJpdmVyIGxvY2ssIHNvIHRoYXQgd2UgY291bGQgcHV0IGEK PiA+IGxvY2tkZXBfYXNzZXJ0X2hlbGQgaW50byBtbXVfcmFuZ2Vfbm90aWZpZXJfdXBkYXRlX3Nl cT8gSSB0aGluayB0aGF0IHdvdWxkCj4gPiBtYWtlIHRoaXMgc2NoZW1lIHN1YnN0YW50aWFsbHkg bW9yZSBkcml2ZXItaGFja2VyIHByb29mIDotKQo+IAo+IEdvaW5nIGFub3RoZXIgc3RlcCBmdXJ0 aGVyLi4uLiB3aGF0IGhpbmRlcnMgdXMgdG8gcHV0IHRoZSBsb2NrIGludG8gdGhlIG1tdQo+IHJh bmdlIG5vdGlmaWVyIGl0c2VsZiBhbmQgaGF2ZSBfbG9jaygpL191bmxvY2soKSBoZWxwZXJzPwo+ IAo+IEkgbWVhbiBoYXZpbmcgdGhlIGxvY2sgaW4gdGhlIGRyaXZlciBvbmx5IG1ha2VzIHNlbnNl IHdoZW4gdGhlIGRyaXZlciB3b3VsZAo+IGJlIHVzaW5nIHRoZSBzYW1lIGxvY2sgZm9yIG11bHRp cGxlIHRoaW5ncywgZS5nLiBtdWx0aXBsZSBNTVUgcmFuZ2UKPiBub3RpZmllcnMgdW5kZXIgdGhl IHNhbWUgbG9jay4gQnV0IEkgcmVhbGx5IGRvbid0IHNlZSB0aGF0IHVzZSBjYXNlIGhlcmUuCgpJ IGFjdHVhbHkgZG8sIG5vdXZlYXUgdXNlIG9uZSBsb2NrIHRvIHByb3RlY3QgdGhlIHBhZ2UgdGFi bGUgYW5kIHRoYXQncyB0aGUKbG9jayB0aGF0IG1hdHRlci4gWW91IGNhbiBoYXZlIG11bHRpcGxl IHJhbmdlIGZvciBhIHNpbmdsZSBwYWdlIHRhYmxlLCBpZGVhCmJlaW5nIG9ubHkgYSBzdWItc2V0 IG9mIHRoZSBwcm9jZXNzIGFkZHJlc3Mgc3BhY2UgaXMgZXZlciBhY2Nlc3NlZCBieSB0aGUKR1BV IGFuZCB0aG9zZSBpdCBpcyBiZXR0ZXIgdG8gZm9jdXMgb24gdGhpcyBzdWItc2V0IGFuZCB0cmFj ayBpbnZhbGlkYXRpb24gaW4KYSBmaW5lciBncmFpbi4KCkNoZWVycywKSsOpcsO0bWUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGlu ZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA== 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=-5.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 7979FCA9EB9 for ; Wed, 23 Oct 2019 16:52:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 5803F21906 for ; Wed, 23 Oct 2019 16:52:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5803F21906 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 116D66EB4B; Wed, 23 Oct 2019 16:52:34 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 34A0C6EB4B for ; Wed, 23 Oct 2019 16:52:33 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-166-kiwu8J-9MZWZX-y3vAa-XQ-1; Wed, 23 Oct 2019 12:52:28 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4D64580183E; Wed, 23 Oct 2019 16:52:26 +0000 (UTC) Received: from redhat.com (ovpn-124-105.rdu2.redhat.com [10.10.124.105]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 258D660126; Wed, 23 Oct 2019 16:52:25 +0000 (UTC) Date: Wed, 23 Oct 2019 12:52:23 -0400 From: Jerome Glisse To: christian.koenig@amd.com Subject: Re: [PATCH hmm 00/15] Consolidate the mmu notifier interval_tree and locking Message-ID: <20191023165223.GA4163@redhat.com> References: <20191018203608.GA5670@mellanox.com> <20191021135744.GA25164@mellanox.com> <20191021151221.GC25164@mellanox.com> <20191022075735.GV11828@phenom.ffwll.local> <20191022150109.GF22766@mellanox.com> <20191023090858.GV11828@phenom.ffwll.local> <13edf841-421e-3522-fcec-ef919c2013ef@gmail.com> MIME-Version: 1.0 In-Reply-To: <13edf841-421e-3522-fcec-ef919c2013ef@gmail.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: kiwu8J-9MZWZX-y3vAa-XQ-1 X-Mimecast-Spam-Score: 0 Content-Disposition: inline X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1571849552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GanjAE8HfQ8qzFKCa/r64Dq3fD+/mSUc5zOx+PGr8eg=; b=BMzZ/dKYIzmcTQ67DfZ6Rp1Q6K9dvSEbBdRYZsplNMLYVeAJeGc2hOq+Y4E7p+nnFW4R/G VS2r2h5L60mdQCIYRWF8W0GK50vTSUIjPXn7NiAJED06Hzklj2yvcoxYfg6gg+yN8HOqP9 Hrld9X9cQYxrNhlpuA6rg3y2JpBew1c= X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrea Arcangeli , "Yang, Philip" , Ralph Campbell , "linux-rdma@vger.kernel.org" , John Hubbard , "Kuehling, Felix" , "amd-gfx@lists.freedesktop.org" , "linux-mm@kvack.org" , Jason Gunthorpe , "dri-devel@lists.freedesktop.org" , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191023165223.beaAD9qxnEEebUi5_ps053Zk6-8L9unHoqewq3F68vo@z> T24gV2VkLCBPY3QgMjMsIDIwMTkgYXQgMTE6MzI6MTZBTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBBbSAyMy4xMC4xOSB1bSAxMTowOCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4g PiBPbiBUdWUsIE9jdCAyMiwgMjAxOSBhdCAwMzowMToxM1BNICswMDAwLCBKYXNvbiBHdW50aG9y cGUgd3JvdGU6Cj4gPiA+IE9uIFR1ZSwgT2N0IDIyLCAyMDE5IGF0IDA5OjU3OjM1QU0gKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+IAo+ID4gPiA+ID4gVGhlIHVudXN1YWwgYml0IGlu IGFsbCBvZiB0aGlzIGlzIHVzaW5nIGEgbG9jaydzIGNyaXRpY2FsIHJlZ2lvbiB0bwo+ID4gPiA+ ID4gJ3Byb3RlY3QnIGRhdGEgZm9yIHJlYWQsIGJ1dCB1cGRhdGluZyB0aGF0IHNhbWUgZGF0YSBi ZWZvcmUgdGhlIGxvY2sncwo+ID4gPiA+ID4gY3JpdGljYWwgc2VjaW9uLiBpZSByZWx5aW5nIG9u IHRoZSB1bmxvY2sgYmFycmllciB0byAncmVsZWFzZScgcHJvZ3JhbQo+ID4gPiA+ID4gb3JkZXJl ZCBzdG9yZXMgZG9uZSBiZWZvcmUgdGhlIGxvY2sncyBvd24gY3JpdGljYWwgcmVnaW9uLCBhbmQg dGhlCj4gPiA+ID4gPiBsb2NrIHNpZGUgYmFycmllciB0byAnYWNxdWlyZScgdGhvc2Ugc3RvcmVz Lgo+ID4gPiA+IEkgdGhpbmsgdGhpcyB1bnVzdWFsIHVzZSBvZiBsb2NrcyBhcyBiYXJyaWVycyBm b3Igb3RoZXIgdW5sb2NrZWQgYWNjZXNzZXMKPiA+ID4gPiBkZXNlcnZlcyBjb21tZW50cyBldmVu IG1vcmUgdGhhbiBqdXN0IG5vcm1hbCBiYXJyaWVycy4gQ2FuIHlvdSBwbHMgYWRkCj4gPiA+ID4g dGhlbT8gSSB0aGluayB0aGUgZGVzaWduIHNlZWVtcyBzb3VuZCAuLi4KPiA+ID4gPiAKPiA+ID4g PiBBbHNvIHRoZSBjb21tZW50IG9uIHRoZSBkcml2ZXIncyBsb2NrIGhvcGVmdWxseSBwcmV2ZW50 cyBkcml2ZXIKPiA+ID4gPiBtYWludGFpbmVycyBmcm9tIG1vdmluZyB0aGUgZHJpdmVyX2xvY2sg YXJvdW5kIGluIGEgd2F5IHRoYXQgd291bGQgdmVyeQo+ID4gPiA+IHN1YnRsZSBicmVhayB0aGUg c2NoZW1lLCBzbyBJIHRoaW5rIGhhdmluZyB0aGUgYWNxdWlyZSBiYXJyaWVyIGNvbW1lbnRlZAo+ ID4gPiA+IGluIGVhY2ggcGxhY2Ugd291bGQgYmUgcmVhbGx5IGdvb2QuCj4gPiA+IFRoZXJlIGlz IGFscmVhZHkgYSBsb3Qgb2YgZG9jdW1lbnRhdGlvbiwgSSB0aGluayBpdCB3b3VsZCBiZSBoZWxw ZnVsCj4gPiA+IGlmIHlvdSBjb3VsZCBzdWdnZXN0IHNvbWUgc3BlY2lmaWMgcGxhY2VzIHdoZXJl IHlvdSB0aGluayBhbiBhZGRpdGlvbgo+ID4gPiB3b3VsZCBoZWxwPyBJIHRoaW5rIHRoZSBwZXJz cGVjdGl2ZSBvZiBzb21lb25lIGxlc3MgZmFtaWxpYXIgd2l0aCB0aGlzCj4gPiA+IGRlc2lnbiB3 b3VsZCByZWFsbHkgaW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbgo+ID4gSG0gSSBqdXN0IG1lYW50 IHRoZSB1c3VhbCByZWNvbW1lbmRhdGlvbiB0aGF0ICJiYXJyaWVycyBtdXN0IGhhdmUgY29tbWVu dHMKPiA+IGV4cGxhaW5pbmcgd2hhdCB0aGV5IG9yZGVyLCBhbmQgd2hlcmUgdGhlIG90aGVyIHNp ZGUgb2YgdGhlIGJhcnJpZXIgaXMiLgo+ID4gVXNpbmcgdW5sb2NrL2xvY2sgYXMgYSBiYXJyaWVy IGltbyBqdXN0IG1ha2VzIHRoYXQgYW4gZXZlbiBiZXR0ZXIgaWRlYS4KPiA+IFVzdWFsbHkgd2hh dCBJIGRvIGlzIHNvbWV0aGluZyBsaWtlICJ3ZSBuZWVkIHRvIG9yZGVyICR0aGlzIGFnYWluc3Qg JHRoYXQKPiA+IGJlbG93LCBhbmQgdGhlIG90aGVyIHNpZGUgb2YgdGhpcyBiYXJyaWVyIGlzIGlu IGZ1bmN0aW9uKCkuIiBXaXRoIG1heWJlIGEKPiA+IGJpdCBtb3JlIGlmIGl0J3Mgbm90IG9idmlv dXMgaG93IHRoaW5ncyBnbyB3cm9uZyBpZiB0aGUgb3JkZXJpbiBpcyBicm9rZW4uCj4gPiAKPiA+ IE9mYyBzZXFsb2NrLmggaXRzZWxmIHNraW1wcyBvbiB0aGF0IHJ1bGUgYW5kIGRvZXNuJ3QgYm90 aGVyIGV4cGxhaW5pbmcgaXRzCj4gPiBiYXJyaWVycyA6LS8KPiA+IAo+ID4gPiBJJ3ZlIGJlZW4g dGVtcHRlZCB0byBmb3JjZSB0aGUgZHJpdmVyIHRvIHN0b3JlIHRoZSBzZXEgbnVtYmVyIGRpcmVj dGx5Cj4gPiA+IHVuZGVyIHRoZSBkcml2ZXIgbG9jayAtIHRoaXMgbWFrZXMgdGhlIHNjaGVtZSBt dWNoIGNsZWFyZXIsIGllCj4gPiA+IHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMKPiA+ID4gaW5kZXggNzEyYzk5OTE4NTUx YmMuLjczOGZhNjcwZGNmYjE5IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X3N2bS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfc3ZtLmMKPiA+ID4gQEAgLTQ4OCw3ICs0ODgsOCBAQCBzdHJ1Y3Qgc3ZtX25vdGlmaWVy IHsKPiA+ID4gICB9Owo+ID4gPiAgIHN0YXRpYyBib29sIG5vdXZlYXVfc3ZtX3JhbmdlX2ludmFs aWRhdGUoc3RydWN0IG1tdV9yYW5nZV9ub3RpZmllciAqbXJuLAo+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFu Z2UgKnJhbmdlKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2VxKQo+ID4gPiAg IHsKPiA+ID4gICAgICAgICAgc3RydWN0IHN2bV9ub3RpZmllciAqc24gPQo+ID4gPiAgICAgICAg ICAgICAgICAgIGNvbnRhaW5lcl9vZihtcm4sIHN0cnVjdCBzdm1fbm90aWZpZXIsIG5vdGlmaWVy KTsKPiA+ID4gQEAgLTUwNCw2ICs1MDUsNyBAQCBzdGF0aWMgYm9vbCBub3V2ZWF1X3N2bV9yYW5n ZV9pbnZhbGlkYXRlKHN0cnVjdCBtbXVfcmFuZ2Vfbm90aWZpZXIgKm1ybiwKPiA+ID4gICAgICAg ICAgICAgICAgICBtdXRleF9sb2NrKCZzbi0+c3ZtbS0+bXV0ZXgpOwo+ID4gPiAgICAgICAgICBl bHNlIGlmICghbXV0ZXhfdHJ5bG9jaygmc24tPnN2bW0tPm11dGV4KSkKPiA+ID4gICAgICAgICAg ICAgICAgICByZXR1cm4gZmFsc2U7Cj4gPiA+ICsgICAgICAgbW11X3JhbmdlX25vdGlmaWVyX3Vw ZGF0ZV9zZXEobXJuLCBzZXEpOwo+ID4gPiAgICAgICAgICBtdXRleF91bmxvY2soJnNuLT5zdm1t LT5tdXRleCk7Cj4gPiA+ICAgICAgICAgIHJldHVybiB0cnVlOwo+ID4gPiAgIH0KPiA+ID4gCj4g PiA+IAo+ID4gPiBBdCB0aGUgY29zdCBvZiBtYWtpbmcgdGhlIGRyaXZlciBhIGJpdCBtb3JlIGNv bXBsZXgsIHdoYXQgZG8geW91Cj4gPiA+IHRoaW5rPwo+ID4gSG0sIHNwaW5uaW5nIHRoaXMgZnVy dGhlciAuLi4gY291bGQgd2UgaW5pdGlhbGl6ZSB0aGUgbW11IHJhbmdlIG5vdGlmaWVyCj4gPiB3 aXRoIGEgcG9pbnRlciB0byB0aGUgZHJpdmVyIGxvY2ssIHNvIHRoYXQgd2UgY291bGQgcHV0IGEK PiA+IGxvY2tkZXBfYXNzZXJ0X2hlbGQgaW50byBtbXVfcmFuZ2Vfbm90aWZpZXJfdXBkYXRlX3Nl cT8gSSB0aGluayB0aGF0IHdvdWxkCj4gPiBtYWtlIHRoaXMgc2NoZW1lIHN1YnN0YW50aWFsbHkg bW9yZSBkcml2ZXItaGFja2VyIHByb29mIDotKQo+IAo+IEdvaW5nIGFub3RoZXIgc3RlcCBmdXJ0 aGVyLi4uLiB3aGF0IGhpbmRlcnMgdXMgdG8gcHV0IHRoZSBsb2NrIGludG8gdGhlIG1tdQo+IHJh bmdlIG5vdGlmaWVyIGl0c2VsZiBhbmQgaGF2ZSBfbG9jaygpL191bmxvY2soKSBoZWxwZXJzPwo+ IAo+IEkgbWVhbiBoYXZpbmcgdGhlIGxvY2sgaW4gdGhlIGRyaXZlciBvbmx5IG1ha2VzIHNlbnNl IHdoZW4gdGhlIGRyaXZlciB3b3VsZAo+IGJlIHVzaW5nIHRoZSBzYW1lIGxvY2sgZm9yIG11bHRp cGxlIHRoaW5ncywgZS5nLiBtdWx0aXBsZSBNTVUgcmFuZ2UKPiBub3RpZmllcnMgdW5kZXIgdGhl IHNhbWUgbG9jay4gQnV0IEkgcmVhbGx5IGRvbid0IHNlZSB0aGF0IHVzZSBjYXNlIGhlcmUuCgpJ IGFjdHVhbHkgZG8sIG5vdXZlYXUgdXNlIG9uZSBsb2NrIHRvIHByb3RlY3QgdGhlIHBhZ2UgdGFi bGUgYW5kIHRoYXQncyB0aGUKbG9jayB0aGF0IG1hdHRlci4gWW91IGNhbiBoYXZlIG11bHRpcGxl IHJhbmdlIGZvciBhIHNpbmdsZSBwYWdlIHRhYmxlLCBpZGVhCmJlaW5nIG9ubHkgYSBzdWItc2V0 IG9mIHRoZSBwcm9jZXNzIGFkZHJlc3Mgc3BhY2UgaXMgZXZlciBhY2Nlc3NlZCBieSB0aGUKR1BV IGFuZCB0aG9zZSBpdCBpcyBiZXR0ZXIgdG8gZm9jdXMgb24gdGhpcyBzdWItc2V0IGFuZCB0cmFj ayBpbnZhbGlkYXRpb24gaW4KYSBmaW5lciBncmFpbi4KCkNoZWVycywKSsOpcsO0bWUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGlu ZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==