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=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 5141AC43331 for ; Thu, 7 Nov 2019 21:04:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1477521D7B for ; Thu, 7 Nov 2019 21:04:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NDeEeK3q" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725916AbfKGVEY (ORCPT ); Thu, 7 Nov 2019 16:04:24 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:27738 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725893AbfKGVEY (ORCPT ); Thu, 7 Nov 2019 16:04:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573160663; 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=+/OUHbhjqmo/2b88pcHR1Lly3F7Wmo3w1j9CIvENsK0=; b=NDeEeK3qbUyoAUkRsr3UXwzZV5PS5ToJzW06SWyKnMFjiacGhE9K+j2OldUN0lnFI+t/pn Do4hh5UQ+2NCgavjXOZkVM7bMp0SB787fiVF6dEmkNGpr+9Jx061HIyc5kPc2D8geB846j zDNlIya1I86FWfqYL8qiz9AUG1ORDN4= 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-308-5mTC5mxRONi9JJNT1c4IYQ-1; Thu, 07 Nov 2019 16:04:19 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08CED1005500; Thu, 7 Nov 2019 21:04:14 +0000 (UTC) Received: from redhat.com (ovpn-122-19.rdu2.redhat.com [10.10.122.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E81285C548; Thu, 7 Nov 2019 21:04:10 +0000 (UTC) Date: Thu, 7 Nov 2019 16:04:08 -0500 From: Jerome Glisse To: Jason Gunthorpe Cc: John Hubbard , "linux-mm@kvack.org" , Ralph Campbell , "Felix.Kuehling@amd.com" , "linux-rdma@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , Alex Deucher , Ben Skeggs , Boris Ostrovsky , Christian =?iso-8859-1?Q?K=F6nig?= , David Zhou , Dennis Dalessandro , Juergen Gross , Mike Marciniszyn , Oleksandr Andrushchenko , Petr Cvek , Stefano Stabellini , "nouveau@lists.freedesktop.org" , "xen-devel@lists.xenproject.org" , Christoph Hellwig , Andrea Arcangeli , Michal Hocko Subject: Re: [PATCH v2 02/15] mm/mmu_notifier: add an interval tree notifier Message-ID: <20191107210408.GA4716@redhat.com> References: <20191028201032.6352-1-jgg@ziepe.ca> <20191028201032.6352-3-jgg@ziepe.ca> <35c2b322-004e-0e18-87e4-1920dc71bfd5@nvidia.com> <20191107020807.GA747656@redhat.com> <20191107201102.GC21728@mellanox.com> MIME-Version: 1.0 In-Reply-To: <20191107201102.GC21728@mellanox.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-MC-Unique: 5mTC5mxRONi9JJNT1c4IYQ-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org On Thu, Nov 07, 2019 at 08:11:06PM +0000, Jason Gunthorpe wrote: > On Wed, Nov 06, 2019 at 09:08:07PM -0500, Jerome Glisse wrote: >=20 > > >=20 > > > Extra credit: IMHO, this clearly deserves to all be in a new mmu_rang= e_notifier.h > > > header file, but I know that's extra work. Maybe later as a follow-up= patch, > > > if anyone has the time. > >=20 > > The range notifier should get the event too, it would be a waste, i thi= nk it is > > an oversight here. The release event is fine so NAK to you separate eve= nt. Event > > is really an helper for notifier i had a set of patch for nouveau to le= verage > > this i need to resucite them. So no need to split thing, i would just f= orward > > the event ie add event to mmu_range_notifier_ops.invalidate() i failed = to catch > > that in v1 sorry. >=20 > I think what you mean is already done? >=20 > struct mmu_range_notifier_ops { > =09bool (*invalidate)(struct mmu_range_notifier *mrn, > =09=09=09 const struct mmu_notifier_range *range, > =09=09=09 unsigned long cur_seq); Yes it is sorry, i got confuse with mmu_range_notifier and mmu_notifier_ran= ge :) It is almost a palyndrome structure ;) >=20 > > No it is always odd, you must call mmu_range_set_seq() only from the > > op->invalidate_range() callback at which point the seq is odd. As well > > when mrn is added and its seq first set it is set to an odd value > > always. Maybe the comment, should read: > >=20 > > * mrn->invalidate_seq is always, yes always, set to an odd value. This= ensures > >=20 > > To stress that it is not an error. >=20 > I went with this: >=20 > =09/* > =09 * mrn->invalidate_seq must always be set to an odd value via > =09 * mmu_range_set_seq() using the provided cur_seq from > =09 * mn_itree_inv_start_range(). This ensures that if seq does wrap we > =09 * will always clear the below sleep in some reasonable time as > =09 * mmn_mm->invalidate_seq is even in the idle state. > =09 */ Yes fine with me. [...] > > > > +=09might_lock(&mm->mmap_sem); > > > > + > > > > +=09mmn_mm =3D smp_load_acquire(&mm->mmu_notifier_mm); > > >=20 > > > What does the above pair with? Should have a comment that specifies t= hat. > >=20 > > It was discussed in v1 but maybe a comment of what was said back then w= ould > > be helpful. Something like: > >=20 > > /* > > * We need to insure that all writes to mm->mmu_notifier_mm are visible= before > > * any checks we do on mmn_mm below as otherwise CPU might re-order wri= te done > > * by another CPU core to mm->mmu_notifier_mm structure fields after th= e read > > * belows. > > */ >=20 > This comment made it, just at the store side: >=20 > =09/* > =09 * Serialize the update against mmu_notifier_unregister. A > =09 * side note: mmu_notifier_release can't run concurrently with > =09 * us because we hold the mm_users pin (either implicitly as > =09 * current->mm or explicitly with get_task_mm() or similar). > =09 * We can't race against any other mmu notifier method either > =09 * thanks to mm_take_all_locks(). > =09 * > =09 * release semantics on the initialization of the mmu_notifier_mm's > * contents are provided for unlocked readers. acquire can only = be > * used while holding the mmgrab or mmget, and is safe because on= ce > * created the mmu_notififer_mm is not freed until the mm is > * destroyed. As above, users holding the mmap_sem or one of the > * mm_take_all_locks() do not need to use acquire semantics. > =09 */ > =09if (mmu_notifier_mm) > =09=09smp_store_release(&mm->mmu_notifier_mm, mmu_notifier_mm); >=20 > Which I think is really overly belaboring the typical smp > store/release pattern, but people do seem unfamiliar with them... Perfect with me. I think also sometimes you forgot what memory model is and thus store/release pattern do, i know i do and i need to refresh my mind. Cheers, J=E9r=F4me From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: [PATCH v2 02/15] mm/mmu_notifier: add an interval tree notifier Date: Thu, 7 Nov 2019 16:04:08 -0500 Message-ID: <20191107210408.GA4716@redhat.com> References: <20191028201032.6352-1-jgg@ziepe.ca> <20191028201032.6352-3-jgg@ziepe.ca> <35c2b322-004e-0e18-87e4-1920dc71bfd5@nvidia.com> <20191107020807.GA747656@redhat.com> <20191107201102.GC21728@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191107201102.GC21728@mellanox.com> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jason Gunthorpe Cc: "nouveau@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , Michal Hocko , "linux-mm@kvack.org" , Andrea Arcangeli , Stefano Stabellini , Oleksandr Andrushchenko , "linux-rdma@vger.kernel.org" , "amd-gfx@lists.freedesktop.org" , Christoph Hellwig , Ben Skeggs , "xen-devel@lists.xenproject.org" , Ralph Campbell , John Hubbard , Boris Ostrovsky , Petr Cvek , Juergen Gross , Mike Marciniszyn , "Felix.Kuehling@amd.com" List-Id: nouveau.vger.kernel.org T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDg6MTE6MDZQTSArMDAwMCwgSmFzb24gR3VudGhvcnBl IHdyb3RlOgo+IE9uIFdlZCwgTm92IDA2LCAyMDE5IGF0IDA5OjA4OjA3UE0gLTA1MDAsIEplcm9t ZSBHbGlzc2Ugd3JvdGU6Cj4gCj4gPiA+IAo+ID4gPiBFeHRyYSBjcmVkaXQ6IElNSE8sIHRoaXMg Y2xlYXJseSBkZXNlcnZlcyB0byBhbGwgYmUgaW4gYSBuZXcgbW11X3JhbmdlX25vdGlmaWVyLmgK PiA+ID4gaGVhZGVyIGZpbGUsIGJ1dCBJIGtub3cgdGhhdCdzIGV4dHJhIHdvcmsuIE1heWJlIGxh dGVyIGFzIGEgZm9sbG93LXVwIHBhdGNoLAo+ID4gPiBpZiBhbnlvbmUgaGFzIHRoZSB0aW1lLgo+ ID4gCj4gPiBUaGUgcmFuZ2Ugbm90aWZpZXIgc2hvdWxkIGdldCB0aGUgZXZlbnQgdG9vLCBpdCB3 b3VsZCBiZSBhIHdhc3RlLCBpIHRoaW5rIGl0IGlzCj4gPiBhbiBvdmVyc2lnaHQgaGVyZS4gVGhl IHJlbGVhc2UgZXZlbnQgaXMgZmluZSBzbyBOQUsgdG8geW91IHNlcGFyYXRlIGV2ZW50LiBFdmVu dAo+ID4gaXMgcmVhbGx5IGFuIGhlbHBlciBmb3Igbm90aWZpZXIgaSBoYWQgYSBzZXQgb2YgcGF0 Y2ggZm9yIG5vdXZlYXUgdG8gbGV2ZXJhZ2UKPiA+IHRoaXMgaSBuZWVkIHRvIHJlc3VjaXRlIHRo ZW0uIFNvIG5vIG5lZWQgdG8gc3BsaXQgdGhpbmcsIGkgd291bGQganVzdCBmb3J3YXJkCj4gPiB0 aGUgZXZlbnQgaWUgYWRkIGV2ZW50IHRvIG1tdV9yYW5nZV9ub3RpZmllcl9vcHMuaW52YWxpZGF0 ZSgpIGkgZmFpbGVkIHRvIGNhdGNoCj4gPiB0aGF0IGluIHYxIHNvcnJ5Lgo+IAo+IEkgdGhpbmsg d2hhdCB5b3UgbWVhbiBpcyBhbHJlYWR5IGRvbmU/Cj4gCj4gc3RydWN0IG1tdV9yYW5nZV9ub3Rp Zmllcl9vcHMgewo+IAlib29sICgqaW52YWxpZGF0ZSkoc3RydWN0IG1tdV9yYW5nZV9ub3RpZmll ciAqbXJuLAo+IAkJCSAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAo+ IAkJCSAgIHVuc2lnbmVkIGxvbmcgY3VyX3NlcSk7CgpZZXMgaXQgaXMgc29ycnksIGkgZ290IGNv bmZ1c2Ugd2l0aCBtbXVfcmFuZ2Vfbm90aWZpZXIgYW5kIG1tdV9ub3RpZmllcl9yYW5nZSA6KQpJ dCBpcyBhbG1vc3QgYSBwYWx5bmRyb21lIHN0cnVjdHVyZSA7KQoKPiAKPiA+IE5vIGl0IGlzIGFs d2F5cyBvZGQsIHlvdSBtdXN0IGNhbGwgbW11X3JhbmdlX3NldF9zZXEoKSBvbmx5IGZyb20gdGhl Cj4gPiBvcC0+aW52YWxpZGF0ZV9yYW5nZSgpIGNhbGxiYWNrIGF0IHdoaWNoIHBvaW50IHRoZSBz ZXEgaXMgb2RkLiBBcyB3ZWxsCj4gPiB3aGVuIG1ybiBpcyBhZGRlZCBhbmQgaXRzIHNlcSBmaXJz dCBzZXQgaXQgaXMgc2V0IHRvIGFuIG9kZCB2YWx1ZQo+ID4gYWx3YXlzLiBNYXliZSB0aGUgY29t bWVudCwgc2hvdWxkIHJlYWQ6Cj4gPiAKPiA+ICAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgaXMgYWx3 YXlzLCB5ZXMgYWx3YXlzLCBzZXQgdG8gYW4gb2RkIHZhbHVlLiBUaGlzIGVuc3VyZXMKPiA+IAo+ ID4gVG8gc3RyZXNzIHRoYXQgaXQgaXMgbm90IGFuIGVycm9yLgo+IAo+IEkgd2VudCB3aXRoIHRo aXM6Cj4gCj4gCS8qCj4gCSAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgbXVzdCBhbHdheXMgYmUgc2V0 IHRvIGFuIG9kZCB2YWx1ZSB2aWEKPiAJICogbW11X3JhbmdlX3NldF9zZXEoKSB1c2luZyB0aGUg cHJvdmlkZWQgY3VyX3NlcSBmcm9tCj4gCSAqIG1uX2l0cmVlX2ludl9zdGFydF9yYW5nZSgpLiBU aGlzIGVuc3VyZXMgdGhhdCBpZiBzZXEgZG9lcyB3cmFwIHdlCj4gCSAqIHdpbGwgYWx3YXlzIGNs ZWFyIHRoZSBiZWxvdyBzbGVlcCBpbiBzb21lIHJlYXNvbmFibGUgdGltZSBhcwo+IAkgKiBtbW5f bW0tPmludmFsaWRhdGVfc2VxIGlzIGV2ZW4gaW4gdGhlIGlkbGUgc3RhdGUuCj4gCSAqLwoKWWVz IGZpbmUgd2l0aCBtZS4KClsuLi5dCgo+ID4gPiA+ICsJbWlnaHRfbG9jaygmbW0tPm1tYXBfc2Vt KTsKPiA+ID4gPiArCj4gPiA+ID4gKwltbW5fbW0gPSBzbXBfbG9hZF9hY3F1aXJlKCZtbS0+bW11 X25vdGlmaWVyX21tKTsKPiA+ID4gCj4gPiA+IFdoYXQgZG9lcyB0aGUgYWJvdmUgcGFpciB3aXRo PyBTaG91bGQgaGF2ZSBhIGNvbW1lbnQgdGhhdCBzcGVjaWZpZXMgdGhhdC4KPiA+IAo+ID4gSXQg d2FzIGRpc2N1c3NlZCBpbiB2MSBidXQgbWF5YmUgYSBjb21tZW50IG9mIHdoYXQgd2FzIHNhaWQg YmFjayB0aGVuIHdvdWxkCj4gPiBiZSBoZWxwZnVsLiBTb21ldGhpbmcgbGlrZToKPiA+IAo+ID4g LyoKPiA+ICAqIFdlIG5lZWQgdG8gaW5zdXJlIHRoYXQgYWxsIHdyaXRlcyB0byBtbS0+bW11X25v dGlmaWVyX21tIGFyZSB2aXNpYmxlIGJlZm9yZQo+ID4gICogYW55IGNoZWNrcyB3ZSBkbyBvbiBt bW5fbW0gYmVsb3cgYXMgb3RoZXJ3aXNlIENQVSBtaWdodCByZS1vcmRlciB3cml0ZSBkb25lCj4g PiAgKiBieSBhbm90aGVyIENQVSBjb3JlIHRvIG1tLT5tbXVfbm90aWZpZXJfbW0gc3RydWN0dXJl IGZpZWxkcyBhZnRlciB0aGUgcmVhZAo+ID4gICogYmVsb3dzLgo+ID4gICovCj4gCj4gVGhpcyBj b21tZW50IG1hZGUgaXQsIGp1c3QgYXQgdGhlIHN0b3JlIHNpZGU6Cj4gCj4gCS8qCj4gCSAqIFNl cmlhbGl6ZSB0aGUgdXBkYXRlIGFnYWluc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIuIEEKPiAJ ICogc2lkZSBub3RlOiBtbXVfbm90aWZpZXJfcmVsZWFzZSBjYW4ndCBydW4gY29uY3VycmVudGx5 IHdpdGgKPiAJICogdXMgYmVjYXVzZSB3ZSBob2xkIHRoZSBtbV91c2VycyBwaW4gKGVpdGhlciBp bXBsaWNpdGx5IGFzCj4gCSAqIGN1cnJlbnQtPm1tIG9yIGV4cGxpY2l0bHkgd2l0aCBnZXRfdGFz a19tbSgpIG9yIHNpbWlsYXIpLgo+IAkgKiBXZSBjYW4ndCByYWNlIGFnYWluc3QgYW55IG90aGVy IG1tdSBub3RpZmllciBtZXRob2QgZWl0aGVyCj4gCSAqIHRoYW5rcyB0byBtbV90YWtlX2FsbF9s b2NrcygpLgo+IAkgKgo+IAkgKiByZWxlYXNlIHNlbWFudGljcyBvbiB0aGUgaW5pdGlhbGl6YXRp b24gb2YgdGhlIG1tdV9ub3RpZmllcl9tbSdzCj4gICAgICAgICAgKiBjb250ZW50cyBhcmUgcHJv dmlkZWQgZm9yIHVubG9ja2VkIHJlYWRlcnMuICBhY3F1aXJlIGNhbiBvbmx5IGJlCj4gICAgICAg ICAgKiB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlIG1tZ3JhYiBvciBtbWdldCwgYW5kIGlzIHNhZmUg YmVjYXVzZSBvbmNlCj4gICAgICAgICAgKiBjcmVhdGVkIHRoZSBtbXVfbm90aWZpZmVyX21tIGlz IG5vdCBmcmVlZCB1bnRpbCB0aGUgbW0gaXMKPiAgICAgICAgICAqIGRlc3Ryb3llZC4gIEFzIGFi b3ZlLCB1c2VycyBob2xkaW5nIHRoZSBtbWFwX3NlbSBvciBvbmUgb2YgdGhlCj4gICAgICAgICAg KiBtbV90YWtlX2FsbF9sb2NrcygpIGRvIG5vdCBuZWVkIHRvIHVzZSBhY3F1aXJlIHNlbWFudGlj cy4KPiAJICovCj4gCWlmIChtbXVfbm90aWZpZXJfbW0pCj4gCQlzbXBfc3RvcmVfcmVsZWFzZSgm bW0tPm1tdV9ub3RpZmllcl9tbSwgbW11X25vdGlmaWVyX21tKTsKPiAKPiBXaGljaCBJIHRoaW5r IGlzIHJlYWxseSBvdmVybHkgYmVsYWJvcmluZyB0aGUgdHlwaWNhbCBzbXAKPiBzdG9yZS9yZWxl YXNlIHBhdHRlcm4sIGJ1dCBwZW9wbGUgZG8gc2VlbSB1bmZhbWlsaWFyIHdpdGggdGhlbS4uLgoK UGVyZmVjdCB3aXRoIG1lLiBJIHRoaW5rIGFsc28gc29tZXRpbWVzIHlvdSBmb3Jnb3Qgd2hhdCBt ZW1vcnkgbW9kZWwgaXMKYW5kIHRodXMgc3RvcmUvcmVsZWFzZSBwYXR0ZXJuIGRvLCBpIGtub3cg aSBkbyBhbmQgaSBuZWVkIHRvIHJlZnJlc2ggbXkKbWluZC4KCkNoZWVycywKSsOpcsO0bWUKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA== 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=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 B05BFC5DF60 for ; Thu, 7 Nov 2019 21:04:26 +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 8C4ED21D7E for ; Thu, 7 Nov 2019 21:04:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8C4ED21D7E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A489F6F7C7; Thu, 7 Nov 2019 21:04:25 +0000 (UTC) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by gabe.freedesktop.org (Postfix) with ESMTPS id 855E26F7C7 for ; Thu, 7 Nov 2019 21:04:24 +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-308-5mTC5mxRONi9JJNT1c4IYQ-1; Thu, 07 Nov 2019 16:04:19 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08CED1005500; Thu, 7 Nov 2019 21:04:14 +0000 (UTC) Received: from redhat.com (ovpn-122-19.rdu2.redhat.com [10.10.122.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E81285C548; Thu, 7 Nov 2019 21:04:10 +0000 (UTC) Date: Thu, 7 Nov 2019 16:04:08 -0500 From: Jerome Glisse To: Jason Gunthorpe Subject: Re: [PATCH v2 02/15] mm/mmu_notifier: add an interval tree notifier Message-ID: <20191107210408.GA4716@redhat.com> References: <20191028201032.6352-1-jgg@ziepe.ca> <20191028201032.6352-3-jgg@ziepe.ca> <35c2b322-004e-0e18-87e4-1920dc71bfd5@nvidia.com> <20191107020807.GA747656@redhat.com> <20191107201102.GC21728@mellanox.com> MIME-Version: 1.0 In-Reply-To: <20191107201102.GC21728@mellanox.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-MC-Unique: 5mTC5mxRONi9JJNT1c4IYQ-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=1573160663; 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=+/OUHbhjqmo/2b88pcHR1Lly3F7Wmo3w1j9CIvENsK0=; b=NDeEeK3qbUyoAUkRsr3UXwzZV5PS5ToJzW06SWyKnMFjiacGhE9K+j2OldUN0lnFI+t/pn Do4hh5UQ+2NCgavjXOZkVM7bMp0SB787fiVF6dEmkNGpr+9Jx061HIyc5kPc2D8geB846j zDNlIya1I86FWfqYL8qiz9AUG1ORDN4= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "nouveau@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , Michal Hocko , "linux-mm@kvack.org" , Andrea Arcangeli , Stefano Stabellini , Oleksandr Andrushchenko , "linux-rdma@vger.kernel.org" , "amd-gfx@lists.freedesktop.org" , Christoph Hellwig , Ben Skeggs , "xen-devel@lists.xenproject.org" , Ralph Campbell , John Hubbard , Boris Ostrovsky , Petr Cvek , Juergen Gross , Mike Marciniszyn , "Felix.Kuehling@amd.com" , Christian =?iso-8859-1?Q?K=F6nig?= , Alex Deucher , Dennis Dalessandro Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191107210408.J9B9Paso-eIM7f1DErD0NAi957JiQRDa59V9u5Z7d2I@z> T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDg6MTE6MDZQTSArMDAwMCwgSmFzb24gR3VudGhvcnBl IHdyb3RlOgo+IE9uIFdlZCwgTm92IDA2LCAyMDE5IGF0IDA5OjA4OjA3UE0gLTA1MDAsIEplcm9t ZSBHbGlzc2Ugd3JvdGU6Cj4gCj4gPiA+IAo+ID4gPiBFeHRyYSBjcmVkaXQ6IElNSE8sIHRoaXMg Y2xlYXJseSBkZXNlcnZlcyB0byBhbGwgYmUgaW4gYSBuZXcgbW11X3JhbmdlX25vdGlmaWVyLmgK PiA+ID4gaGVhZGVyIGZpbGUsIGJ1dCBJIGtub3cgdGhhdCdzIGV4dHJhIHdvcmsuIE1heWJlIGxh dGVyIGFzIGEgZm9sbG93LXVwIHBhdGNoLAo+ID4gPiBpZiBhbnlvbmUgaGFzIHRoZSB0aW1lLgo+ ID4gCj4gPiBUaGUgcmFuZ2Ugbm90aWZpZXIgc2hvdWxkIGdldCB0aGUgZXZlbnQgdG9vLCBpdCB3 b3VsZCBiZSBhIHdhc3RlLCBpIHRoaW5rIGl0IGlzCj4gPiBhbiBvdmVyc2lnaHQgaGVyZS4gVGhl IHJlbGVhc2UgZXZlbnQgaXMgZmluZSBzbyBOQUsgdG8geW91IHNlcGFyYXRlIGV2ZW50LiBFdmVu dAo+ID4gaXMgcmVhbGx5IGFuIGhlbHBlciBmb3Igbm90aWZpZXIgaSBoYWQgYSBzZXQgb2YgcGF0 Y2ggZm9yIG5vdXZlYXUgdG8gbGV2ZXJhZ2UKPiA+IHRoaXMgaSBuZWVkIHRvIHJlc3VjaXRlIHRo ZW0uIFNvIG5vIG5lZWQgdG8gc3BsaXQgdGhpbmcsIGkgd291bGQganVzdCBmb3J3YXJkCj4gPiB0 aGUgZXZlbnQgaWUgYWRkIGV2ZW50IHRvIG1tdV9yYW5nZV9ub3RpZmllcl9vcHMuaW52YWxpZGF0 ZSgpIGkgZmFpbGVkIHRvIGNhdGNoCj4gPiB0aGF0IGluIHYxIHNvcnJ5Lgo+IAo+IEkgdGhpbmsg d2hhdCB5b3UgbWVhbiBpcyBhbHJlYWR5IGRvbmU/Cj4gCj4gc3RydWN0IG1tdV9yYW5nZV9ub3Rp Zmllcl9vcHMgewo+IAlib29sICgqaW52YWxpZGF0ZSkoc3RydWN0IG1tdV9yYW5nZV9ub3RpZmll ciAqbXJuLAo+IAkJCSAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAo+ IAkJCSAgIHVuc2lnbmVkIGxvbmcgY3VyX3NlcSk7CgpZZXMgaXQgaXMgc29ycnksIGkgZ290IGNv bmZ1c2Ugd2l0aCBtbXVfcmFuZ2Vfbm90aWZpZXIgYW5kIG1tdV9ub3RpZmllcl9yYW5nZSA6KQpJ dCBpcyBhbG1vc3QgYSBwYWx5bmRyb21lIHN0cnVjdHVyZSA7KQoKPiAKPiA+IE5vIGl0IGlzIGFs d2F5cyBvZGQsIHlvdSBtdXN0IGNhbGwgbW11X3JhbmdlX3NldF9zZXEoKSBvbmx5IGZyb20gdGhl Cj4gPiBvcC0+aW52YWxpZGF0ZV9yYW5nZSgpIGNhbGxiYWNrIGF0IHdoaWNoIHBvaW50IHRoZSBz ZXEgaXMgb2RkLiBBcyB3ZWxsCj4gPiB3aGVuIG1ybiBpcyBhZGRlZCBhbmQgaXRzIHNlcSBmaXJz dCBzZXQgaXQgaXMgc2V0IHRvIGFuIG9kZCB2YWx1ZQo+ID4gYWx3YXlzLiBNYXliZSB0aGUgY29t bWVudCwgc2hvdWxkIHJlYWQ6Cj4gPiAKPiA+ICAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgaXMgYWx3 YXlzLCB5ZXMgYWx3YXlzLCBzZXQgdG8gYW4gb2RkIHZhbHVlLiBUaGlzIGVuc3VyZXMKPiA+IAo+ ID4gVG8gc3RyZXNzIHRoYXQgaXQgaXMgbm90IGFuIGVycm9yLgo+IAo+IEkgd2VudCB3aXRoIHRo aXM6Cj4gCj4gCS8qCj4gCSAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgbXVzdCBhbHdheXMgYmUgc2V0 IHRvIGFuIG9kZCB2YWx1ZSB2aWEKPiAJICogbW11X3JhbmdlX3NldF9zZXEoKSB1c2luZyB0aGUg cHJvdmlkZWQgY3VyX3NlcSBmcm9tCj4gCSAqIG1uX2l0cmVlX2ludl9zdGFydF9yYW5nZSgpLiBU aGlzIGVuc3VyZXMgdGhhdCBpZiBzZXEgZG9lcyB3cmFwIHdlCj4gCSAqIHdpbGwgYWx3YXlzIGNs ZWFyIHRoZSBiZWxvdyBzbGVlcCBpbiBzb21lIHJlYXNvbmFibGUgdGltZSBhcwo+IAkgKiBtbW5f bW0tPmludmFsaWRhdGVfc2VxIGlzIGV2ZW4gaW4gdGhlIGlkbGUgc3RhdGUuCj4gCSAqLwoKWWVz IGZpbmUgd2l0aCBtZS4KClsuLi5dCgo+ID4gPiA+ICsJbWlnaHRfbG9jaygmbW0tPm1tYXBfc2Vt KTsKPiA+ID4gPiArCj4gPiA+ID4gKwltbW5fbW0gPSBzbXBfbG9hZF9hY3F1aXJlKCZtbS0+bW11 X25vdGlmaWVyX21tKTsKPiA+ID4gCj4gPiA+IFdoYXQgZG9lcyB0aGUgYWJvdmUgcGFpciB3aXRo PyBTaG91bGQgaGF2ZSBhIGNvbW1lbnQgdGhhdCBzcGVjaWZpZXMgdGhhdC4KPiA+IAo+ID4gSXQg d2FzIGRpc2N1c3NlZCBpbiB2MSBidXQgbWF5YmUgYSBjb21tZW50IG9mIHdoYXQgd2FzIHNhaWQg YmFjayB0aGVuIHdvdWxkCj4gPiBiZSBoZWxwZnVsLiBTb21ldGhpbmcgbGlrZToKPiA+IAo+ID4g LyoKPiA+ICAqIFdlIG5lZWQgdG8gaW5zdXJlIHRoYXQgYWxsIHdyaXRlcyB0byBtbS0+bW11X25v dGlmaWVyX21tIGFyZSB2aXNpYmxlIGJlZm9yZQo+ID4gICogYW55IGNoZWNrcyB3ZSBkbyBvbiBt bW5fbW0gYmVsb3cgYXMgb3RoZXJ3aXNlIENQVSBtaWdodCByZS1vcmRlciB3cml0ZSBkb25lCj4g PiAgKiBieSBhbm90aGVyIENQVSBjb3JlIHRvIG1tLT5tbXVfbm90aWZpZXJfbW0gc3RydWN0dXJl IGZpZWxkcyBhZnRlciB0aGUgcmVhZAo+ID4gICogYmVsb3dzLgo+ID4gICovCj4gCj4gVGhpcyBj b21tZW50IG1hZGUgaXQsIGp1c3QgYXQgdGhlIHN0b3JlIHNpZGU6Cj4gCj4gCS8qCj4gCSAqIFNl cmlhbGl6ZSB0aGUgdXBkYXRlIGFnYWluc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIuIEEKPiAJ ICogc2lkZSBub3RlOiBtbXVfbm90aWZpZXJfcmVsZWFzZSBjYW4ndCBydW4gY29uY3VycmVudGx5 IHdpdGgKPiAJICogdXMgYmVjYXVzZSB3ZSBob2xkIHRoZSBtbV91c2VycyBwaW4gKGVpdGhlciBp bXBsaWNpdGx5IGFzCj4gCSAqIGN1cnJlbnQtPm1tIG9yIGV4cGxpY2l0bHkgd2l0aCBnZXRfdGFz a19tbSgpIG9yIHNpbWlsYXIpLgo+IAkgKiBXZSBjYW4ndCByYWNlIGFnYWluc3QgYW55IG90aGVy IG1tdSBub3RpZmllciBtZXRob2QgZWl0aGVyCj4gCSAqIHRoYW5rcyB0byBtbV90YWtlX2FsbF9s b2NrcygpLgo+IAkgKgo+IAkgKiByZWxlYXNlIHNlbWFudGljcyBvbiB0aGUgaW5pdGlhbGl6YXRp b24gb2YgdGhlIG1tdV9ub3RpZmllcl9tbSdzCj4gICAgICAgICAgKiBjb250ZW50cyBhcmUgcHJv dmlkZWQgZm9yIHVubG9ja2VkIHJlYWRlcnMuICBhY3F1aXJlIGNhbiBvbmx5IGJlCj4gICAgICAg ICAgKiB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlIG1tZ3JhYiBvciBtbWdldCwgYW5kIGlzIHNhZmUg YmVjYXVzZSBvbmNlCj4gICAgICAgICAgKiBjcmVhdGVkIHRoZSBtbXVfbm90aWZpZmVyX21tIGlz IG5vdCBmcmVlZCB1bnRpbCB0aGUgbW0gaXMKPiAgICAgICAgICAqIGRlc3Ryb3llZC4gIEFzIGFi b3ZlLCB1c2VycyBob2xkaW5nIHRoZSBtbWFwX3NlbSBvciBvbmUgb2YgdGhlCj4gICAgICAgICAg KiBtbV90YWtlX2FsbF9sb2NrcygpIGRvIG5vdCBuZWVkIHRvIHVzZSBhY3F1aXJlIHNlbWFudGlj cy4KPiAJICovCj4gCWlmIChtbXVfbm90aWZpZXJfbW0pCj4gCQlzbXBfc3RvcmVfcmVsZWFzZSgm bW0tPm1tdV9ub3RpZmllcl9tbSwgbW11X25vdGlmaWVyX21tKTsKPiAKPiBXaGljaCBJIHRoaW5r IGlzIHJlYWxseSBvdmVybHkgYmVsYWJvcmluZyB0aGUgdHlwaWNhbCBzbXAKPiBzdG9yZS9yZWxl YXNlIHBhdHRlcm4sIGJ1dCBwZW9wbGUgZG8gc2VlbSB1bmZhbWlsaWFyIHdpdGggdGhlbS4uLgoK UGVyZmVjdCB3aXRoIG1lLiBJIHRoaW5rIGFsc28gc29tZXRpbWVzIHlvdSBmb3Jnb3Qgd2hhdCBt ZW1vcnkgbW9kZWwgaXMKYW5kIHRodXMgc3RvcmUvcmVsZWFzZSBwYXR0ZXJuIGRvLCBpIGtub3cg aSBkbyBhbmQgaSBuZWVkIHRvIHJlZnJlc2ggbXkKbWluZC4KCkNoZWVycywKSsOpcsO0bWUKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA== 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=-2.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no 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 3ED80C43331 for ; Thu, 7 Nov 2019 21:04:41 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 0723A21D79 for ; Thu, 7 Nov 2019 21:04:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NDeEeK3q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0723A21D79 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iSox8-0003qV-Qt; Thu, 07 Nov 2019 21:04:26 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iSox7-0003qQ-3G for xen-devel@lists.xenproject.org; Thu, 07 Nov 2019 21:04:25 +0000 X-Inumbo-ID: 2d0c1054-01a2-11ea-a1cb-12813bfff9fa Received: from us-smtp-1.mimecast.com (unknown [205.139.110.61]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id 2d0c1054-01a2-11ea-a1cb-12813bfff9fa; Thu, 07 Nov 2019 21:04:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573160663; 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=+/OUHbhjqmo/2b88pcHR1Lly3F7Wmo3w1j9CIvENsK0=; b=NDeEeK3qbUyoAUkRsr3UXwzZV5PS5ToJzW06SWyKnMFjiacGhE9K+j2OldUN0lnFI+t/pn Do4hh5UQ+2NCgavjXOZkVM7bMp0SB787fiVF6dEmkNGpr+9Jx061HIyc5kPc2D8geB846j zDNlIya1I86FWfqYL8qiz9AUG1ORDN4= 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-308-5mTC5mxRONi9JJNT1c4IYQ-1; Thu, 07 Nov 2019 16:04:19 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08CED1005500; Thu, 7 Nov 2019 21:04:14 +0000 (UTC) Received: from redhat.com (ovpn-122-19.rdu2.redhat.com [10.10.122.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E81285C548; Thu, 7 Nov 2019 21:04:10 +0000 (UTC) Date: Thu, 7 Nov 2019 16:04:08 -0500 From: Jerome Glisse To: Jason Gunthorpe Message-ID: <20191107210408.GA4716@redhat.com> References: <20191028201032.6352-1-jgg@ziepe.ca> <20191028201032.6352-3-jgg@ziepe.ca> <35c2b322-004e-0e18-87e4-1920dc71bfd5@nvidia.com> <20191107020807.GA747656@redhat.com> <20191107201102.GC21728@mellanox.com> MIME-Version: 1.0 In-Reply-To: <20191107201102.GC21728@mellanox.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-MC-Unique: 5mTC5mxRONi9JJNT1c4IYQ-1 X-Mimecast-Spam-Score: 0 Content-Disposition: inline Subject: Re: [Xen-devel] [PATCH v2 02/15] mm/mmu_notifier: add an interval tree notifier X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "nouveau@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , Michal Hocko , "linux-mm@kvack.org" , Andrea Arcangeli , David Zhou , Stefano Stabellini , Oleksandr Andrushchenko , "linux-rdma@vger.kernel.org" , "amd-gfx@lists.freedesktop.org" , Christoph Hellwig , Ben Skeggs , "xen-devel@lists.xenproject.org" , Ralph Campbell , John Hubbard , Boris Ostrovsky , Petr Cvek , Juergen Gross , Mike Marciniszyn , "Felix.Kuehling@amd.com" , Christian =?iso-8859-1?Q?K=F6nig?= , Alex Deucher , Dennis Dalessandro Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDg6MTE6MDZQTSArMDAwMCwgSmFzb24gR3VudGhvcnBl IHdyb3RlOgo+IE9uIFdlZCwgTm92IDA2LCAyMDE5IGF0IDA5OjA4OjA3UE0gLTA1MDAsIEplcm9t ZSBHbGlzc2Ugd3JvdGU6Cj4gCj4gPiA+IAo+ID4gPiBFeHRyYSBjcmVkaXQ6IElNSE8sIHRoaXMg Y2xlYXJseSBkZXNlcnZlcyB0byBhbGwgYmUgaW4gYSBuZXcgbW11X3JhbmdlX25vdGlmaWVyLmgK PiA+ID4gaGVhZGVyIGZpbGUsIGJ1dCBJIGtub3cgdGhhdCdzIGV4dHJhIHdvcmsuIE1heWJlIGxh dGVyIGFzIGEgZm9sbG93LXVwIHBhdGNoLAo+ID4gPiBpZiBhbnlvbmUgaGFzIHRoZSB0aW1lLgo+ ID4gCj4gPiBUaGUgcmFuZ2Ugbm90aWZpZXIgc2hvdWxkIGdldCB0aGUgZXZlbnQgdG9vLCBpdCB3 b3VsZCBiZSBhIHdhc3RlLCBpIHRoaW5rIGl0IGlzCj4gPiBhbiBvdmVyc2lnaHQgaGVyZS4gVGhl IHJlbGVhc2UgZXZlbnQgaXMgZmluZSBzbyBOQUsgdG8geW91IHNlcGFyYXRlIGV2ZW50LiBFdmVu dAo+ID4gaXMgcmVhbGx5IGFuIGhlbHBlciBmb3Igbm90aWZpZXIgaSBoYWQgYSBzZXQgb2YgcGF0 Y2ggZm9yIG5vdXZlYXUgdG8gbGV2ZXJhZ2UKPiA+IHRoaXMgaSBuZWVkIHRvIHJlc3VjaXRlIHRo ZW0uIFNvIG5vIG5lZWQgdG8gc3BsaXQgdGhpbmcsIGkgd291bGQganVzdCBmb3J3YXJkCj4gPiB0 aGUgZXZlbnQgaWUgYWRkIGV2ZW50IHRvIG1tdV9yYW5nZV9ub3RpZmllcl9vcHMuaW52YWxpZGF0 ZSgpIGkgZmFpbGVkIHRvIGNhdGNoCj4gPiB0aGF0IGluIHYxIHNvcnJ5Lgo+IAo+IEkgdGhpbmsg d2hhdCB5b3UgbWVhbiBpcyBhbHJlYWR5IGRvbmU/Cj4gCj4gc3RydWN0IG1tdV9yYW5nZV9ub3Rp Zmllcl9vcHMgewo+IAlib29sICgqaW52YWxpZGF0ZSkoc3RydWN0IG1tdV9yYW5nZV9ub3RpZmll ciAqbXJuLAo+IAkJCSAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAo+ IAkJCSAgIHVuc2lnbmVkIGxvbmcgY3VyX3NlcSk7CgpZZXMgaXQgaXMgc29ycnksIGkgZ290IGNv bmZ1c2Ugd2l0aCBtbXVfcmFuZ2Vfbm90aWZpZXIgYW5kIG1tdV9ub3RpZmllcl9yYW5nZSA6KQpJ dCBpcyBhbG1vc3QgYSBwYWx5bmRyb21lIHN0cnVjdHVyZSA7KQoKPiAKPiA+IE5vIGl0IGlzIGFs d2F5cyBvZGQsIHlvdSBtdXN0IGNhbGwgbW11X3JhbmdlX3NldF9zZXEoKSBvbmx5IGZyb20gdGhl Cj4gPiBvcC0+aW52YWxpZGF0ZV9yYW5nZSgpIGNhbGxiYWNrIGF0IHdoaWNoIHBvaW50IHRoZSBz ZXEgaXMgb2RkLiBBcyB3ZWxsCj4gPiB3aGVuIG1ybiBpcyBhZGRlZCBhbmQgaXRzIHNlcSBmaXJz dCBzZXQgaXQgaXMgc2V0IHRvIGFuIG9kZCB2YWx1ZQo+ID4gYWx3YXlzLiBNYXliZSB0aGUgY29t bWVudCwgc2hvdWxkIHJlYWQ6Cj4gPiAKPiA+ICAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgaXMgYWx3 YXlzLCB5ZXMgYWx3YXlzLCBzZXQgdG8gYW4gb2RkIHZhbHVlLiBUaGlzIGVuc3VyZXMKPiA+IAo+ ID4gVG8gc3RyZXNzIHRoYXQgaXQgaXMgbm90IGFuIGVycm9yLgo+IAo+IEkgd2VudCB3aXRoIHRo aXM6Cj4gCj4gCS8qCj4gCSAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgbXVzdCBhbHdheXMgYmUgc2V0 IHRvIGFuIG9kZCB2YWx1ZSB2aWEKPiAJICogbW11X3JhbmdlX3NldF9zZXEoKSB1c2luZyB0aGUg cHJvdmlkZWQgY3VyX3NlcSBmcm9tCj4gCSAqIG1uX2l0cmVlX2ludl9zdGFydF9yYW5nZSgpLiBU aGlzIGVuc3VyZXMgdGhhdCBpZiBzZXEgZG9lcyB3cmFwIHdlCj4gCSAqIHdpbGwgYWx3YXlzIGNs ZWFyIHRoZSBiZWxvdyBzbGVlcCBpbiBzb21lIHJlYXNvbmFibGUgdGltZSBhcwo+IAkgKiBtbW5f bW0tPmludmFsaWRhdGVfc2VxIGlzIGV2ZW4gaW4gdGhlIGlkbGUgc3RhdGUuCj4gCSAqLwoKWWVz IGZpbmUgd2l0aCBtZS4KClsuLi5dCgo+ID4gPiA+ICsJbWlnaHRfbG9jaygmbW0tPm1tYXBfc2Vt KTsKPiA+ID4gPiArCj4gPiA+ID4gKwltbW5fbW0gPSBzbXBfbG9hZF9hY3F1aXJlKCZtbS0+bW11 X25vdGlmaWVyX21tKTsKPiA+ID4gCj4gPiA+IFdoYXQgZG9lcyB0aGUgYWJvdmUgcGFpciB3aXRo PyBTaG91bGQgaGF2ZSBhIGNvbW1lbnQgdGhhdCBzcGVjaWZpZXMgdGhhdC4KPiA+IAo+ID4gSXQg d2FzIGRpc2N1c3NlZCBpbiB2MSBidXQgbWF5YmUgYSBjb21tZW50IG9mIHdoYXQgd2FzIHNhaWQg YmFjayB0aGVuIHdvdWxkCj4gPiBiZSBoZWxwZnVsLiBTb21ldGhpbmcgbGlrZToKPiA+IAo+ID4g LyoKPiA+ICAqIFdlIG5lZWQgdG8gaW5zdXJlIHRoYXQgYWxsIHdyaXRlcyB0byBtbS0+bW11X25v dGlmaWVyX21tIGFyZSB2aXNpYmxlIGJlZm9yZQo+ID4gICogYW55IGNoZWNrcyB3ZSBkbyBvbiBt bW5fbW0gYmVsb3cgYXMgb3RoZXJ3aXNlIENQVSBtaWdodCByZS1vcmRlciB3cml0ZSBkb25lCj4g PiAgKiBieSBhbm90aGVyIENQVSBjb3JlIHRvIG1tLT5tbXVfbm90aWZpZXJfbW0gc3RydWN0dXJl IGZpZWxkcyBhZnRlciB0aGUgcmVhZAo+ID4gICogYmVsb3dzLgo+ID4gICovCj4gCj4gVGhpcyBj b21tZW50IG1hZGUgaXQsIGp1c3QgYXQgdGhlIHN0b3JlIHNpZGU6Cj4gCj4gCS8qCj4gCSAqIFNl cmlhbGl6ZSB0aGUgdXBkYXRlIGFnYWluc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIuIEEKPiAJ ICogc2lkZSBub3RlOiBtbXVfbm90aWZpZXJfcmVsZWFzZSBjYW4ndCBydW4gY29uY3VycmVudGx5 IHdpdGgKPiAJICogdXMgYmVjYXVzZSB3ZSBob2xkIHRoZSBtbV91c2VycyBwaW4gKGVpdGhlciBp bXBsaWNpdGx5IGFzCj4gCSAqIGN1cnJlbnQtPm1tIG9yIGV4cGxpY2l0bHkgd2l0aCBnZXRfdGFz a19tbSgpIG9yIHNpbWlsYXIpLgo+IAkgKiBXZSBjYW4ndCByYWNlIGFnYWluc3QgYW55IG90aGVy IG1tdSBub3RpZmllciBtZXRob2QgZWl0aGVyCj4gCSAqIHRoYW5rcyB0byBtbV90YWtlX2FsbF9s b2NrcygpLgo+IAkgKgo+IAkgKiByZWxlYXNlIHNlbWFudGljcyBvbiB0aGUgaW5pdGlhbGl6YXRp b24gb2YgdGhlIG1tdV9ub3RpZmllcl9tbSdzCj4gICAgICAgICAgKiBjb250ZW50cyBhcmUgcHJv dmlkZWQgZm9yIHVubG9ja2VkIHJlYWRlcnMuICBhY3F1aXJlIGNhbiBvbmx5IGJlCj4gICAgICAg ICAgKiB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlIG1tZ3JhYiBvciBtbWdldCwgYW5kIGlzIHNhZmUg YmVjYXVzZSBvbmNlCj4gICAgICAgICAgKiBjcmVhdGVkIHRoZSBtbXVfbm90aWZpZmVyX21tIGlz IG5vdCBmcmVlZCB1bnRpbCB0aGUgbW0gaXMKPiAgICAgICAgICAqIGRlc3Ryb3llZC4gIEFzIGFi b3ZlLCB1c2VycyBob2xkaW5nIHRoZSBtbWFwX3NlbSBvciBvbmUgb2YgdGhlCj4gICAgICAgICAg KiBtbV90YWtlX2FsbF9sb2NrcygpIGRvIG5vdCBuZWVkIHRvIHVzZSBhY3F1aXJlIHNlbWFudGlj cy4KPiAJICovCj4gCWlmIChtbXVfbm90aWZpZXJfbW0pCj4gCQlzbXBfc3RvcmVfcmVsZWFzZSgm bW0tPm1tdV9ub3RpZmllcl9tbSwgbW11X25vdGlmaWVyX21tKTsKPiAKPiBXaGljaCBJIHRoaW5r IGlzIHJlYWxseSBvdmVybHkgYmVsYWJvcmluZyB0aGUgdHlwaWNhbCBzbXAKPiBzdG9yZS9yZWxl YXNlIHBhdHRlcm4sIGJ1dCBwZW9wbGUgZG8gc2VlbSB1bmZhbWlsaWFyIHdpdGggdGhlbS4uLgoK UGVyZmVjdCB3aXRoIG1lLiBJIHRoaW5rIGFsc28gc29tZXRpbWVzIHlvdSBmb3Jnb3Qgd2hhdCBt ZW1vcnkgbW9kZWwgaXMKYW5kIHRodXMgc3RvcmUvcmVsZWFzZSBwYXR0ZXJuIGRvLCBpIGtub3cg aSBkbyBhbmQgaSBuZWVkIHRvIHJlZnJlc2ggbXkKbWluZC4KCkNoZWVycywKSsOpcsO0bWUKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs 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=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 413D9C5DF60 for ; Thu, 7 Nov 2019 21:04:27 +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 1E99521D7E for ; Thu, 7 Nov 2019 21:04:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1E99521D7E 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 1F0F56F7C9; Thu, 7 Nov 2019 21:04:26 +0000 (UTC) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A71F6F7C8 for ; Thu, 7 Nov 2019 21:04:24 +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-308-5mTC5mxRONi9JJNT1c4IYQ-1; Thu, 07 Nov 2019 16:04:19 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08CED1005500; Thu, 7 Nov 2019 21:04:14 +0000 (UTC) Received: from redhat.com (ovpn-122-19.rdu2.redhat.com [10.10.122.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E81285C548; Thu, 7 Nov 2019 21:04:10 +0000 (UTC) Date: Thu, 7 Nov 2019 16:04:08 -0500 From: Jerome Glisse To: Jason Gunthorpe Subject: Re: [PATCH v2 02/15] mm/mmu_notifier: add an interval tree notifier Message-ID: <20191107210408.GA4716@redhat.com> References: <20191028201032.6352-1-jgg@ziepe.ca> <20191028201032.6352-3-jgg@ziepe.ca> <35c2b322-004e-0e18-87e4-1920dc71bfd5@nvidia.com> <20191107020807.GA747656@redhat.com> <20191107201102.GC21728@mellanox.com> MIME-Version: 1.0 In-Reply-To: <20191107201102.GC21728@mellanox.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-MC-Unique: 5mTC5mxRONi9JJNT1c4IYQ-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=1573160663; 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=+/OUHbhjqmo/2b88pcHR1Lly3F7Wmo3w1j9CIvENsK0=; b=NDeEeK3qbUyoAUkRsr3UXwzZV5PS5ToJzW06SWyKnMFjiacGhE9K+j2OldUN0lnFI+t/pn Do4hh5UQ+2NCgavjXOZkVM7bMp0SB787fiVF6dEmkNGpr+9Jx061HIyc5kPc2D8geB846j zDNlIya1I86FWfqYL8qiz9AUG1ORDN4= 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: "nouveau@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , Michal Hocko , "linux-mm@kvack.org" , Andrea Arcangeli , David Zhou , Stefano Stabellini , Oleksandr Andrushchenko , "linux-rdma@vger.kernel.org" , "amd-gfx@lists.freedesktop.org" , Christoph Hellwig , Ben Skeggs , "xen-devel@lists.xenproject.org" , Ralph Campbell , John Hubbard , Boris Ostrovsky , Petr Cvek , Juergen Gross , Mike Marciniszyn , "Felix.Kuehling@amd.com" , Christian =?iso-8859-1?Q?K=F6nig?= , Alex Deucher , Dennis Dalessandro Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191107210408.6bThhqNzxqfzgusElHN-8IEnb8jYyrjA87errDCdoQU@z> T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDg6MTE6MDZQTSArMDAwMCwgSmFzb24gR3VudGhvcnBl IHdyb3RlOgo+IE9uIFdlZCwgTm92IDA2LCAyMDE5IGF0IDA5OjA4OjA3UE0gLTA1MDAsIEplcm9t ZSBHbGlzc2Ugd3JvdGU6Cj4gCj4gPiA+IAo+ID4gPiBFeHRyYSBjcmVkaXQ6IElNSE8sIHRoaXMg Y2xlYXJseSBkZXNlcnZlcyB0byBhbGwgYmUgaW4gYSBuZXcgbW11X3JhbmdlX25vdGlmaWVyLmgK PiA+ID4gaGVhZGVyIGZpbGUsIGJ1dCBJIGtub3cgdGhhdCdzIGV4dHJhIHdvcmsuIE1heWJlIGxh dGVyIGFzIGEgZm9sbG93LXVwIHBhdGNoLAo+ID4gPiBpZiBhbnlvbmUgaGFzIHRoZSB0aW1lLgo+ ID4gCj4gPiBUaGUgcmFuZ2Ugbm90aWZpZXIgc2hvdWxkIGdldCB0aGUgZXZlbnQgdG9vLCBpdCB3 b3VsZCBiZSBhIHdhc3RlLCBpIHRoaW5rIGl0IGlzCj4gPiBhbiBvdmVyc2lnaHQgaGVyZS4gVGhl IHJlbGVhc2UgZXZlbnQgaXMgZmluZSBzbyBOQUsgdG8geW91IHNlcGFyYXRlIGV2ZW50LiBFdmVu dAo+ID4gaXMgcmVhbGx5IGFuIGhlbHBlciBmb3Igbm90aWZpZXIgaSBoYWQgYSBzZXQgb2YgcGF0 Y2ggZm9yIG5vdXZlYXUgdG8gbGV2ZXJhZ2UKPiA+IHRoaXMgaSBuZWVkIHRvIHJlc3VjaXRlIHRo ZW0uIFNvIG5vIG5lZWQgdG8gc3BsaXQgdGhpbmcsIGkgd291bGQganVzdCBmb3J3YXJkCj4gPiB0 aGUgZXZlbnQgaWUgYWRkIGV2ZW50IHRvIG1tdV9yYW5nZV9ub3RpZmllcl9vcHMuaW52YWxpZGF0 ZSgpIGkgZmFpbGVkIHRvIGNhdGNoCj4gPiB0aGF0IGluIHYxIHNvcnJ5Lgo+IAo+IEkgdGhpbmsg d2hhdCB5b3UgbWVhbiBpcyBhbHJlYWR5IGRvbmU/Cj4gCj4gc3RydWN0IG1tdV9yYW5nZV9ub3Rp Zmllcl9vcHMgewo+IAlib29sICgqaW52YWxpZGF0ZSkoc3RydWN0IG1tdV9yYW5nZV9ub3RpZmll ciAqbXJuLAo+IAkJCSAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAo+ IAkJCSAgIHVuc2lnbmVkIGxvbmcgY3VyX3NlcSk7CgpZZXMgaXQgaXMgc29ycnksIGkgZ290IGNv bmZ1c2Ugd2l0aCBtbXVfcmFuZ2Vfbm90aWZpZXIgYW5kIG1tdV9ub3RpZmllcl9yYW5nZSA6KQpJ dCBpcyBhbG1vc3QgYSBwYWx5bmRyb21lIHN0cnVjdHVyZSA7KQoKPiAKPiA+IE5vIGl0IGlzIGFs d2F5cyBvZGQsIHlvdSBtdXN0IGNhbGwgbW11X3JhbmdlX3NldF9zZXEoKSBvbmx5IGZyb20gdGhl Cj4gPiBvcC0+aW52YWxpZGF0ZV9yYW5nZSgpIGNhbGxiYWNrIGF0IHdoaWNoIHBvaW50IHRoZSBz ZXEgaXMgb2RkLiBBcyB3ZWxsCj4gPiB3aGVuIG1ybiBpcyBhZGRlZCBhbmQgaXRzIHNlcSBmaXJz dCBzZXQgaXQgaXMgc2V0IHRvIGFuIG9kZCB2YWx1ZQo+ID4gYWx3YXlzLiBNYXliZSB0aGUgY29t bWVudCwgc2hvdWxkIHJlYWQ6Cj4gPiAKPiA+ICAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgaXMgYWx3 YXlzLCB5ZXMgYWx3YXlzLCBzZXQgdG8gYW4gb2RkIHZhbHVlLiBUaGlzIGVuc3VyZXMKPiA+IAo+ ID4gVG8gc3RyZXNzIHRoYXQgaXQgaXMgbm90IGFuIGVycm9yLgo+IAo+IEkgd2VudCB3aXRoIHRo aXM6Cj4gCj4gCS8qCj4gCSAqIG1ybi0+aW52YWxpZGF0ZV9zZXEgbXVzdCBhbHdheXMgYmUgc2V0 IHRvIGFuIG9kZCB2YWx1ZSB2aWEKPiAJICogbW11X3JhbmdlX3NldF9zZXEoKSB1c2luZyB0aGUg cHJvdmlkZWQgY3VyX3NlcSBmcm9tCj4gCSAqIG1uX2l0cmVlX2ludl9zdGFydF9yYW5nZSgpLiBU aGlzIGVuc3VyZXMgdGhhdCBpZiBzZXEgZG9lcyB3cmFwIHdlCj4gCSAqIHdpbGwgYWx3YXlzIGNs ZWFyIHRoZSBiZWxvdyBzbGVlcCBpbiBzb21lIHJlYXNvbmFibGUgdGltZSBhcwo+IAkgKiBtbW5f bW0tPmludmFsaWRhdGVfc2VxIGlzIGV2ZW4gaW4gdGhlIGlkbGUgc3RhdGUuCj4gCSAqLwoKWWVz IGZpbmUgd2l0aCBtZS4KClsuLi5dCgo+ID4gPiA+ICsJbWlnaHRfbG9jaygmbW0tPm1tYXBfc2Vt KTsKPiA+ID4gPiArCj4gPiA+ID4gKwltbW5fbW0gPSBzbXBfbG9hZF9hY3F1aXJlKCZtbS0+bW11 X25vdGlmaWVyX21tKTsKPiA+ID4gCj4gPiA+IFdoYXQgZG9lcyB0aGUgYWJvdmUgcGFpciB3aXRo PyBTaG91bGQgaGF2ZSBhIGNvbW1lbnQgdGhhdCBzcGVjaWZpZXMgdGhhdC4KPiA+IAo+ID4gSXQg d2FzIGRpc2N1c3NlZCBpbiB2MSBidXQgbWF5YmUgYSBjb21tZW50IG9mIHdoYXQgd2FzIHNhaWQg YmFjayB0aGVuIHdvdWxkCj4gPiBiZSBoZWxwZnVsLiBTb21ldGhpbmcgbGlrZToKPiA+IAo+ID4g LyoKPiA+ICAqIFdlIG5lZWQgdG8gaW5zdXJlIHRoYXQgYWxsIHdyaXRlcyB0byBtbS0+bW11X25v dGlmaWVyX21tIGFyZSB2aXNpYmxlIGJlZm9yZQo+ID4gICogYW55IGNoZWNrcyB3ZSBkbyBvbiBt bW5fbW0gYmVsb3cgYXMgb3RoZXJ3aXNlIENQVSBtaWdodCByZS1vcmRlciB3cml0ZSBkb25lCj4g PiAgKiBieSBhbm90aGVyIENQVSBjb3JlIHRvIG1tLT5tbXVfbm90aWZpZXJfbW0gc3RydWN0dXJl IGZpZWxkcyBhZnRlciB0aGUgcmVhZAo+ID4gICogYmVsb3dzLgo+ID4gICovCj4gCj4gVGhpcyBj b21tZW50IG1hZGUgaXQsIGp1c3QgYXQgdGhlIHN0b3JlIHNpZGU6Cj4gCj4gCS8qCj4gCSAqIFNl cmlhbGl6ZSB0aGUgdXBkYXRlIGFnYWluc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIuIEEKPiAJ ICogc2lkZSBub3RlOiBtbXVfbm90aWZpZXJfcmVsZWFzZSBjYW4ndCBydW4gY29uY3VycmVudGx5 IHdpdGgKPiAJICogdXMgYmVjYXVzZSB3ZSBob2xkIHRoZSBtbV91c2VycyBwaW4gKGVpdGhlciBp bXBsaWNpdGx5IGFzCj4gCSAqIGN1cnJlbnQtPm1tIG9yIGV4cGxpY2l0bHkgd2l0aCBnZXRfdGFz a19tbSgpIG9yIHNpbWlsYXIpLgo+IAkgKiBXZSBjYW4ndCByYWNlIGFnYWluc3QgYW55IG90aGVy IG1tdSBub3RpZmllciBtZXRob2QgZWl0aGVyCj4gCSAqIHRoYW5rcyB0byBtbV90YWtlX2FsbF9s b2NrcygpLgo+IAkgKgo+IAkgKiByZWxlYXNlIHNlbWFudGljcyBvbiB0aGUgaW5pdGlhbGl6YXRp b24gb2YgdGhlIG1tdV9ub3RpZmllcl9tbSdzCj4gICAgICAgICAgKiBjb250ZW50cyBhcmUgcHJv dmlkZWQgZm9yIHVubG9ja2VkIHJlYWRlcnMuICBhY3F1aXJlIGNhbiBvbmx5IGJlCj4gICAgICAg ICAgKiB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlIG1tZ3JhYiBvciBtbWdldCwgYW5kIGlzIHNhZmUg YmVjYXVzZSBvbmNlCj4gICAgICAgICAgKiBjcmVhdGVkIHRoZSBtbXVfbm90aWZpZmVyX21tIGlz IG5vdCBmcmVlZCB1bnRpbCB0aGUgbW0gaXMKPiAgICAgICAgICAqIGRlc3Ryb3llZC4gIEFzIGFi b3ZlLCB1c2VycyBob2xkaW5nIHRoZSBtbWFwX3NlbSBvciBvbmUgb2YgdGhlCj4gICAgICAgICAg KiBtbV90YWtlX2FsbF9sb2NrcygpIGRvIG5vdCBuZWVkIHRvIHVzZSBhY3F1aXJlIHNlbWFudGlj cy4KPiAJICovCj4gCWlmIChtbXVfbm90aWZpZXJfbW0pCj4gCQlzbXBfc3RvcmVfcmVsZWFzZSgm bW0tPm1tdV9ub3RpZmllcl9tbSwgbW11X25vdGlmaWVyX21tKTsKPiAKPiBXaGljaCBJIHRoaW5r IGlzIHJlYWxseSBvdmVybHkgYmVsYWJvcmluZyB0aGUgdHlwaWNhbCBzbXAKPiBzdG9yZS9yZWxl YXNlIHBhdHRlcm4sIGJ1dCBwZW9wbGUgZG8gc2VlbSB1bmZhbWlsaWFyIHdpdGggdGhlbS4uLgoK UGVyZmVjdCB3aXRoIG1lLiBJIHRoaW5rIGFsc28gc29tZXRpbWVzIHlvdSBmb3Jnb3Qgd2hhdCBt ZW1vcnkgbW9kZWwgaXMKYW5kIHRodXMgc3RvcmUvcmVsZWFzZSBwYXR0ZXJuIGRvLCBpIGtub3cg aSBkbyBhbmQgaSBuZWVkIHRvIHJlZnJlc2ggbXkKbWluZC4KCkNoZWVycywKSsOpcsO0bWUKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFp bGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==