From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/3] drm: Track drm_mm nodes with an interval tree Date: Wed, 21 Oct 2015 17:11:39 +0200 Message-ID: <20151021151139.GC16848@phenom.ffwll.local> References: <1444128791-6327-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9EB5C720C2 for ; Wed, 21 Oct 2015 08:11:43 -0700 (PDT) Received: by wicll6 with SMTP id ll6so95715672wic.0 for ; Wed, 21 Oct 2015 08:11:42 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1444128791-6327-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMDYsIDIwMTUgYXQgMTE6NTM6MDlBTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IEluIGFkZGl0aW9uIHRvIHRoZSBsYXN0LWluL2ZpcnN0LW91dCBzdGFjayBmb3IgYWNj ZXNzaW5nIGRybV9tbSBub2RlcywKPiB3ZSBvY2Nhc2lvbmFsbHkgYW5kIGluIHRoZSBmdXR1cmUg b2Z0ZW4gd2FudCB0byBmaW5kIGEgZHJtX21tX25vZGUgYnkgYW4KPiBhZGRyZXNzLiBUbyBkbyBz byBlZmZpY2llbnRseSB3ZSBuZWVkIHRvIHRyYWNrIHRoZSBub2RlcyBpbiBhbiBpbnRlcnZhbAo+ IHRyZWUgLSBsb29rdXBzIGZvciBhIHBhcnRpY3VsYXIgYWRkcmVzcyB3aWxsIHRoZW4gYmUgTyhs ZyhOKSksIHdoZXJlIE4KPiBpcyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSByYW5nZSBtYW5h Z2VyIGFzIG9wcG9zZWQgdG8gTyhOKS4KPiBJbnNlcnRpb24gaG93ZXZlciBnYWlucyBhbiBleHRy YSBPKGxnKE4pKSBzdGVwIGZvciBhbGwgbm9kZXMKPiBpcnJlc3BlY3RpdmUgb2Ygd2hldGhlciB0 aGUgaW50ZXJ2YWwgdHJlZSBpcyBpbiB1c2UuIEZvciBmdXR1cmUgaTkxNQo+IHBhdGNoZXMsIGVs aW1pbmF0aW5nIHRoZSBsaW5lYXIgd2FsayBpcyBhIHNpZ25pZmljYW50IGltcHJvdmVtZW50Lgo+ IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCgpSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCkkgZ3Vlc3MgZm9yIHNpbXBsZXIg bWVyZ2Ugb3JkZXJpbmcgd2UgY2FuIGp1c3QgcHVsbCB0aGlzIGludG8gZHJtLWludGVsCmFuZCBw YXRjaCB1cCB0aGUgdm1hIG1hbmFnZXIgKGp1c3QgbmVlZCB0byBkcm9wIGEgbG90IG9mIGNvZGUg YW5kIGFkanVzdAp0aGUgc2VhcmNoIHRvIHVzZSB0aGUgZHJtX21tIGludGVybmFsX3RyZWUgbm9k ZXMpIGxhdGVyIG9uLgotRGFuaWVsCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAg fCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYyB8IDcxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2RybS9kcm1fbW0uaCAg ICAgfCAgNSArKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMjMgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJp dmVycy9ncHUvZHJtL0tjb25maWcKPiBpbmRleCAwNmFlNTAwOGM1ZWQuLmUyNTA1MGE1YTg0MyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9LY29uZmlnCj4gQEAgLTEyLDYgKzEyLDcgQEAgbWVudWNvbmZpZyBEUk0KPiAgCXNlbGVj dCBJMkMKPiAgCXNlbGVjdCBJMkNfQUxHT0JJVAo+ICAJc2VsZWN0IERNQV9TSEFSRURfQlVGRkVS Cj4gKwlzZWxlY3QgSU5URVJWQUxfVFJFRQo+ICAJaGVscAo+ICAJICBLZXJuZWwtbGV2ZWwgc3Vw cG9ydCBmb3IgdGhlIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkKPiAgCSAg aW50cm9kdWNlZCBpbiBYRnJlZTg2IDQuMC4gSWYgeW91IHNheSBZIGhlcmUsIHlvdSBuZWVkIHRv IHNlbGVjdAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX21tLmMKPiBpbmRleCAwNGRlNmZkODhmOGMuLmUzYWNkODYwZjczOCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX21tLmMKPiBAQCAtMTUzLDYgKzE1MywxMCBAQCBzdGF0aWMgdm9pZCBkcm1fbW1faW5z ZXJ0X2hlbHBlcihzdHJ1Y3QgZHJtX21tX25vZGUgKmhvbGVfbm9kZSwKPiAgCUlOSVRfTElTVF9I RUFEKCZub2RlLT5ob2xlX3N0YWNrKTsKPiAgCWxpc3RfYWRkKCZub2RlLT5ub2RlX2xpc3QsICZo b2xlX25vZGUtPm5vZGVfbGlzdCk7Cj4gIAo+ICsJbm9kZS0+aXQuc3RhcnQgPSBub2RlLT5zdGFy dDsKPiArCW5vZGUtPml0Lmxhc3QgPSBub2RlLT5zdGFydCArIHNpemUgLSAxOwo+ICsJaW50ZXJ2 YWxfdHJlZV9pbnNlcnQoJm5vZGUtPml0LCAmbW0tPmludGVydmFsX3RyZWUpOwo+ICsKPiAgCUJV R19PTihub2RlLT5zdGFydCArIG5vZGUtPnNpemUgPiBhZGpfZW5kKTsKPiAgCj4gIAlub2RlLT5o b2xlX2ZvbGxvd3MgPSAwOwo+IEBAIC0xNzgsMzkgKzE4Miw1MyBAQCBzdGF0aWMgdm9pZCBkcm1f bW1faW5zZXJ0X2hlbHBlcihzdHJ1Y3QgZHJtX21tX25vZGUgKmhvbGVfbm9kZSwKPiAgICovCj4g IGludCBkcm1fbW1fcmVzZXJ2ZV9ub2RlKHN0cnVjdCBkcm1fbW0gKm1tLCBzdHJ1Y3QgZHJtX21t X25vZGUgKm5vZGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fbW1fbm9kZSAqaG9sZTsKPiAgCXU2NCBl bmQgPSBub2RlLT5zdGFydCArIG5vZGUtPnNpemU7Cj4gLQl1NjQgaG9sZV9zdGFydDsKPiAtCXU2 NCBob2xlX2VuZDsKPiAtCj4gLQlCVUdfT04obm9kZSA9PSBOVUxMKTsKPiArCXN0cnVjdCBpbnRl cnZhbF90cmVlX25vZGUgKml0Owo+ICsJc3RydWN0IGRybV9tbV9ub2RlICpob2xlOwo+ICsJdTY0 IGhvbGVfc3RhcnQsIGhvbGVfZW5kOwo+ICAKPiAgCS8qIEZpbmQgdGhlIHJlbGV2YW50IGhvbGUg dG8gYWRkIG91ciBub2RlIHRvICovCj4gLQlkcm1fbW1fZm9yX2VhY2hfaG9sZShob2xlLCBtbSwg aG9sZV9zdGFydCwgaG9sZV9lbmQpIHsKPiAtCQlpZiAoaG9sZV9zdGFydCA+IG5vZGUtPnN0YXJ0 IHx8IGhvbGVfZW5kIDwgZW5kKQo+IC0JCQljb250aW51ZTsKPiArCWl0ID0gaW50ZXJ2YWxfdHJl ZV9pdGVyX2ZpcnN0KCZtbS0+aW50ZXJ2YWxfdHJlZSwKPiArCQkJCSAgICAgIG5vZGUtPnN0YXJ0 LCAodTY0KS0xKTsKPiArCWlmIChpdCA9PSBOVUxMKSB7Cj4gKwkJaG9sZSA9IGxpc3RfbGFzdF9l bnRyeSgmbW0tPmhlYWRfbm9kZS5ub2RlX2xpc3QsCj4gKwkJCQkgICAgICAgc3RydWN0IGRybV9t bV9ub2RlLCBub2RlX2xpc3QpOwo+ICsJfSBlbHNlIHsKPiArCQlob2xlID0gY29udGFpbmVyX29m KGl0LCB0eXBlb2YoKmhvbGUpLCBpdCk7Cj4gKwkJaWYgKGhvbGUtPnN0YXJ0IDw9IG5vZGUtPnN0 YXJ0KQo+ICsJCQlyZXR1cm4gLUVOT1NQQzsKPiArCj4gKwkJaG9sZSA9IGxpc3RfbGFzdF9lbnRy eSgmaG9sZS0+bm9kZV9saXN0LAo+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSwgbm9k ZV9saXN0KTsKPiArCX0KPiAgCj4gLQkJbm9kZS0+bW0gPSBtbTsKPiAtCQlub2RlLT5hbGxvY2F0 ZWQgPSAxOwo+ICsJaG9sZV9zdGFydCA9IGRybV9tbV9ob2xlX25vZGVfc3RhcnQoaG9sZSk7Cj4g Kwlob2xlX2VuZCA9IGRybV9tbV9ob2xlX25vZGVfZW5kKGhvbGUpOwo+ICsJaWYgKGhvbGVfc3Rh cnQgPiBub2RlLT5zdGFydCB8fCBob2xlX2VuZCA8IGVuZCkKPiArCQlyZXR1cm4gLUVOT1NQQzsK PiAgCj4gLQkJSU5JVF9MSVNUX0hFQUQoJm5vZGUtPmhvbGVfc3RhY2spOwo+IC0JCWxpc3RfYWRk KCZub2RlLT5ub2RlX2xpc3QsICZob2xlLT5ub2RlX2xpc3QpOwo+ICsJbm9kZS0+bW0gPSBtbTsK PiArCW5vZGUtPmFsbG9jYXRlZCA9IDE7Cj4gIAo+IC0JCWlmIChub2RlLT5zdGFydCA9PSBob2xl X3N0YXJ0KSB7Cj4gLQkJCWhvbGUtPmhvbGVfZm9sbG93cyA9IDA7Cj4gLQkJCWxpc3RfZGVsX2lu aXQoJmhvbGUtPmhvbGVfc3RhY2spOwo+IC0JCX0KPiArCUlOSVRfTElTVF9IRUFEKCZub2RlLT5o b2xlX3N0YWNrKTsKPiArCWxpc3RfYWRkKCZub2RlLT5ub2RlX2xpc3QsICZob2xlLT5ub2RlX2xp c3QpOwo+ICAKPiAtCQlub2RlLT5ob2xlX2ZvbGxvd3MgPSAwOwo+IC0JCWlmIChlbmQgIT0gaG9s ZV9lbmQpIHsKPiAtCQkJbGlzdF9hZGQoJm5vZGUtPmhvbGVfc3RhY2ssICZtbS0+aG9sZV9zdGFj ayk7Cj4gLQkJCW5vZGUtPmhvbGVfZm9sbG93cyA9IDE7Cj4gLQkJfQo+ICsJbm9kZS0+aXQuc3Rh cnQgPSBub2RlLT5zdGFydDsKPiArCW5vZGUtPml0Lmxhc3QgPSBub2RlLT5zdGFydCArIG5vZGUt PnNpemUgLSAxOwo+ICsJaW50ZXJ2YWxfdHJlZV9pbnNlcnQoJm5vZGUtPml0LCAmbW0tPmludGVy dmFsX3RyZWUpOwo+ICAKPiAtCQlyZXR1cm4gMDsKPiArCWlmIChub2RlLT5zdGFydCA9PSBob2xl X3N0YXJ0KSB7Cj4gKwkJaG9sZS0+aG9sZV9mb2xsb3dzID0gMDsKPiArCQlsaXN0X2RlbF9pbml0 KCZob2xlLT5ob2xlX3N0YWNrKTsKPiAgCX0KPiAgCj4gLQlyZXR1cm4gLUVOT1NQQzsKPiArCW5v ZGUtPmhvbGVfZm9sbG93cyA9IDA7Cj4gKwlpZiAoZW5kICE9IGhvbGVfZW5kKSB7Cj4gKwkJbGlz dF9hZGQoJm5vZGUtPmhvbGVfc3RhY2ssICZtbS0+aG9sZV9zdGFjayk7Cj4gKwkJbm9kZS0+aG9s ZV9mb2xsb3dzID0gMTsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MKGRybV9tbV9yZXNlcnZlX25vZGUpOwo+ICAKPiBAQCAtMzAwLDYgKzMxOCwxMCBAQCBzdGF0 aWMgdm9pZCBkcm1fbW1faW5zZXJ0X2hlbHBlcl9yYW5nZShzdHJ1Y3QgZHJtX21tX25vZGUgKmhv bGVfbm9kZSwKPiAgCUlOSVRfTElTVF9IRUFEKCZub2RlLT5ob2xlX3N0YWNrKTsKPiAgCWxpc3Rf YWRkKCZub2RlLT5ub2RlX2xpc3QsICZob2xlX25vZGUtPm5vZGVfbGlzdCk7Cj4gIAo+ICsJbm9k ZS0+aXQuc3RhcnQgPSBub2RlLT5zdGFydDsKPiArCW5vZGUtPml0Lmxhc3QgPSBub2RlLT5zdGFy dCArIG5vZGUtPnNpemUgLSAxOwo+ICsJaW50ZXJ2YWxfdHJlZV9pbnNlcnQoJm5vZGUtPml0LCAm bW0tPmludGVydmFsX3RyZWUpOwo+ICsKPiAgCUJVR19PTihub2RlLT5zdGFydCA8IHN0YXJ0KTsK PiAgCUJVR19PTihub2RlLT5zdGFydCA8IGFkal9zdGFydCk7Cj4gIAlCVUdfT04obm9kZS0+c3Rh cnQgKyBub2RlLT5zaXplID4gYWRqX2VuZCk7Cj4gQEAgLTM4OCw2ICs0MTAsNyBAQCB2b2lkIGRy bV9tbV9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpCj4gIAl9IGVsc2UKPiAg CQlsaXN0X21vdmUoJnByZXZfbm9kZS0+aG9sZV9zdGFjaywgJm1tLT5ob2xlX3N0YWNrKTsKPiAg Cj4gKwlpbnRlcnZhbF90cmVlX3JlbW92ZSgmbm9kZS0+aXQsICZtbS0+aW50ZXJ2YWxfdHJlZSk7 Cj4gIAlsaXN0X2RlbCgmbm9kZS0+bm9kZV9saXN0KTsKPiAgCW5vZGUtPmFsbG9jYXRlZCA9IDA7 Cj4gIH0KPiBAQCAtNzU2LDYgKzc3OSw4IEBAIHZvaWQgZHJtX21tX2luaXQoc3RydWN0IGRybV9t bSAqIG1tLCB1NjQgc3RhcnQsIHU2NCBzaXplKQo+ICAJbW0tPmhlYWRfbm9kZS5zaXplID0gc3Rh cnQgLSBtbS0+aGVhZF9ub2RlLnN0YXJ0Owo+ICAJbGlzdF9hZGRfdGFpbCgmbW0tPmhlYWRfbm9k ZS5ob2xlX3N0YWNrLCAmbW0tPmhvbGVfc3RhY2spOwo+ICAKPiArCW1tLT5pbnRlcnZhbF90cmVl ID0gUkJfUk9PVDsKPiArCj4gIAltbS0+Y29sb3JfYWRqdXN0ID0gTlVMTDsKPiAgfQo+ICBFWFBP UlRfU1lNQk9MKGRybV9tbV9pbml0KTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21t LmggYi9pbmNsdWRlL2RybS9kcm1fbW0uaAo+IGluZGV4IDBkZTYyOTBkZjRkYS4uNmQ1MzFmZTUy OWJmIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tbS5oCj4gKysrIGIvaW5jbHVkZS9k cm0vZHJtX21tLmgKPiBAQCAtMzcsNiArMzcsNyBAQAo+ICAgKiBHZW5lcmljIHJhbmdlIG1hbmFn ZXIgc3RydWN0cwo+ICAgKi8KPiAgI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgo+ICsjaW5jbHVkZSA8 bGludXgvaW50ZXJ2YWxfdHJlZS5oPgo+ICAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gICNp bmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgo+IEBA IC02MSw2ICs2Miw3IEBAIGVudW0gZHJtX21tX2FsbG9jYXRvcl9mbGFncyB7Cj4gIHN0cnVjdCBk cm1fbW1fbm9kZSB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGVfbGlzdDsKPiAgCXN0cnVjdCBs aXN0X2hlYWQgaG9sZV9zdGFjazsKPiArCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgaXQ7Cj4g IAl1bnNpZ25lZCBob2xlX2ZvbGxvd3MgOiAxOwo+ICAJdW5zaWduZWQgc2Nhbm5lZF9ibG9jayA6 IDE7Cj4gIAl1bnNpZ25lZCBzY2FubmVkX3ByZXZfZnJlZSA6IDE7Cj4gQEAgLTc5LDYgKzgxLDkg QEAgc3RydWN0IGRybV9tbSB7Cj4gIAkvKiBoZWFkX25vZGUubm9kZV9saXN0IGlzIHRoZSBsaXN0 IG9mIGFsbCBtZW1vcnkgbm9kZXMsIG9yZGVyZWQKPiAgCSAqIGFjY29yZGluZyB0byB0aGUgKGlu Y3JlYXNpbmcpIHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBub2RlLiAqLwo+ICAJc3RydWN0 IGRybV9tbV9ub2RlIGhlYWRfbm9kZTsKPiArCS8qIEtlZXAgYW4gaW50ZXJ2YWxfdHJlZSBmb3Ig ZmFzdCBsb29rdXAgb2YgZHJtX21tX25vZGVzIGJ5IGFkZHJlc3MuICovCj4gKwlzdHJ1Y3QgcmJf cm9vdCBpbnRlcnZhbF90cmVlOwo+ICsKPiAgCXVuc2lnbmVkIGludCBzY2FuX2NoZWNrX3Jhbmdl IDogMTsKPiAgCXVuc2lnbmVkIHNjYW5fYWxpZ25tZW50Owo+ICAJdW5zaWduZWQgbG9uZyBzY2Fu X2NvbG9yOwo+IC0tIAo+IDIuNi4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=