From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 01/16] drm/i915: Keep a small stash of preallocated WC pages Date: Fri, 11 Aug 2017 12:51:07 +0300 Message-ID: <87h8xee8l0.fsf@nikula.org> References: <20170726132610.3336-1-chris@chris-wilson.co.uk> <20170726132610.3336-2-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id D12B56E68D for ; Fri, 11 Aug 2017 09:46:13 +0000 (UTC) In-Reply-To: <20170726132610.3336-2-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyNiBKdWwgMjAxNywgQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+IHdyb3RlOgo+IFdlIHVzZSBXQyBwYWdlcyBmb3IgY29oZXJlbnQgd3JpdGVzIGludG8gdGhl IHBwR1RUIG9uICFsbGMKPiBhcmNoaXRlY3R1dXJlcy4gSG93ZXZlciwgdG8gY3JlYXRlIGEgV0Mg cGFnZSByZXF1aXJlcyBhIHN0b3BfbWFjaGluZSgpLAo+IGkuZS4gaXMgdmVyeSBzbG93LiBUbyBj b21wZW5zYXRlIHdlIGN1cnJlbnRseSBrZWVwIGEgcGVyLXZtIGNhY2hlIG9mCj4gcmVjZW50bHkg ZnJlZWQgcGFnZXMsIGJ1dCB3ZSBzdGlsbCBzZWUgdGhlIHNsb3cgc3RhcnR1cCBvZiBuZXcgY29u dGV4dHMuCj4gV2UgY2FuIGFtb3JpdGl6ZSB0aGF0IGNvc3Qgc2xpZ2h0bHkgYnkgYWxsb2NhdGlu ZyBXQyBwYWdlcyBpbiBzbWFsbAo+IGJhdGNoZXMgKFBBR0VWRUNfU0laRSA9PSAxNCkgYW5kIHNp bmNlIGNyZWF0aW5nIGEgV0MgcGFnZSBpbXBsaWVzIGEKPiBzdG9wX21hY2hpbmUoKSB0aGVyZSBp cyBubyBwZW5hbHR5IGZvciBrZWVwaW5nIHRoYXQgc3Rhc2ggZ2xvYmFsLgo+Cj4gU2lnbmVkLW9m Zi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgICAzICsKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAxMjEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMmM3NDU2ZjRlZDM4Li5m ZDYyYmU3NGE0MjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTQ2NCw2ICsx NDY0LDkgQEAgc3RydWN0IGk5MTVfZ2VtX21tIHsKPiAgCXN0cnVjdCBsbGlzdF9oZWFkIGZyZWVf bGlzdDsKPiAgCXN0cnVjdCB3b3JrX3N0cnVjdCBmcmVlX3dvcms7Cj4gIAo+ICsJLyoqIFNtYWxs IHN0YXNoIG9mIFdDIHBhZ2VzICovCj4gKwlzdHJ1Y3QgcGFnZXZlYyB3Y19zdGFzaDsKPiArCj4g IAkvKiogVXNhYmxlIHBvcnRpb24gb2YgdGhlIEdUVCBmb3IgR0VNICovCgpUaGVzZSBhcmUgbm90 IHByb3BlciBrZXJuZWwtZG9jIGNvbW1lbnRzLgoKQlIsCkphbmkuCgo+ICAJZG1hX2FkZHJfdCBz dG9sZW5fYmFzZTsgLyogbGltaXRlZCB0byBsb3cgbWVtb3J5ICgzMi1iaXQpICovCj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggMTBhYTc3NjJkOWE2Li5hZDRlNDg0 MzU4NTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0zNTEsMzkg KzM1MSw4NSBAQCBzdGF0aWMgZ2VuNl9wdGVfdCBpcmlzX3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBh ZGRyLAo+ICAKPiAgc3RhdGljIHN0cnVjdCBwYWdlICp2bV9hbGxvY19wYWdlKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLCBnZnBfdCBnZnApCj4gIHsKPiAtCXN0cnVjdCBwYWdlICpwYWdl Owo+ICsJc3RydWN0IHBhZ2V2ZWMgKnB2ZWMgPSAmdm0tPmZyZWVfcGFnZXM7Cj4gIAo+ICAJaWYg KEk5MTVfU0VMRlRFU1RfT05MWShzaG91bGRfZmFpbCgmdm0tPmZhdWx0X2F0dHIsIDEpKSkKPiAg CQlpOTE1X2dlbV9zaHJpbmtfYWxsKHZtLT5pOTE1KTsKPiAgCj4gLQlpZiAodm0tPmZyZWVfcGFn ZXMubnIpCj4gLQkJcmV0dXJuIHZtLT5mcmVlX3BhZ2VzLnBhZ2VzWy0tdm0tPmZyZWVfcGFnZXMu bnJdOwo+ICsJaWYgKGxpa2VseShwdmVjLT5ucikpCj4gKwkJcmV0dXJuIHB2ZWMtPnBhZ2VzWy0t cHZlYy0+bnJdOwo+ICsKPiArCWlmICghdm0tPnB0X2ttYXBfd2MpCj4gKwkJcmV0dXJuIGFsbG9j X3BhZ2UoZ2ZwKTsKPiArCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bS0+aTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4gKwo+ICsJLyogTG9vayBpbiBvdXIgZ2xvYmFsIHN0YXNoIG9mIFdDIHBh Z2VzLi4uICovCj4gKwlwdmVjID0gJnZtLT5pOTE1LT5tbS53Y19zdGFzaDsKPiArCWlmIChsaWtl bHkocHZlYy0+bnIpKQo+ICsJCXJldHVybiBwdmVjLT5wYWdlc1stLXB2ZWMtPm5yXTsKPiAgCj4g LQlwYWdlID0gYWxsb2NfcGFnZShnZnApOwo+IC0JaWYgKCFwYWdlKQo+ICsJLyogT3RoZXJ3aXNl IGJhdGNoIGFsbG9jYXRlIHBhZ2VzIHRvIGFtb3JpdGl6ZSBjb3N0IG9mIHNldF9wYWdlc193Yy4g Ki8KPiArCWRvIHsKPiArCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiArCj4gKwkJcGFnZSA9IGFsbG9j X3BhZ2UoZ2ZwKTsKPiArCQlpZiAodW5saWtlbHkoIXBhZ2UpKQo+ICsJCQlicmVhazsKPiArCj4g KwkJcHZlYy0+cGFnZXNbcHZlYy0+bnIrK10gPSBwYWdlOwo+ICsJfSB3aGlsZSAocGFnZXZlY19z cGFjZShwdmVjKSk7Cj4gKwo+ICsJaWYgKHVubGlrZWx5KCFwdmVjLT5ucikpCj4gIAkJcmV0dXJu IE5VTEw7Cj4gIAo+IC0JaWYgKHZtLT5wdF9rbWFwX3djKQo+IC0JCXNldF9wYWdlc19hcnJheV93 YygmcGFnZSwgMSk7Cj4gKwlzZXRfcGFnZXNfYXJyYXlfd2MocHZlYy0+cGFnZXMsIHB2ZWMtPm5y KTsKPiAgCj4gLQlyZXR1cm4gcGFnZTsKPiArCXJldHVybiBwdmVjLT5wYWdlc1stLXB2ZWMtPm5y XTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdm1fZnJlZV9wYWdlc19yZWxlYXNlKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+ICtzdGF0aWMgdm9pZCB2bV9mcmVlX3BhZ2VzX3JlbGVh c2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gKwkJCQkgIGJvb2wgaW1tZWRpYXRl KQo+ICB7Cj4gLQlHRU1fQlVHX09OKCFwYWdldmVjX2NvdW50KCZ2bS0+ZnJlZV9wYWdlcykpOwo+ ICsJc3RydWN0IHBhZ2V2ZWMgKnB2ZWMgPSAmdm0tPmZyZWVfcGFnZXM7Cj4gKwo+ICsJR0VNX0JV R19PTighcGFnZXZlY19jb3VudChwdmVjKSk7Cj4gKwo+ICsJaWYgKHZtLT5wdF9rbWFwX3djKSB7 Cj4gKwkJc3RydWN0IHBhZ2V2ZWMgKnN0YXNoID0gJnZtLT5pOTE1LT5tbS53Y19zdGFzaDsKPiAg Cj4gLQlpZiAodm0tPnB0X2ttYXBfd2MpCj4gLQkJc2V0X3BhZ2VzX2FycmF5X3diKHZtLT5mcmVl X3BhZ2VzLnBhZ2VzLAo+IC0JCQkJICAgcGFnZXZlY19jb3VudCgmdm0tPmZyZWVfcGFnZXMpKTsK PiArCQkvKiBXaGVuIHdlIHVzZSBXQywgZmlyc3QgZmlsbCB1cCB0aGUgZ2xvYmFsIHN0YXNoIGFu ZCB0aGVuCj4gKwkJICogb25seSBpZiBmdWxsIGltbWVkaWF0ZWx5IGZyZWUgdGhlIG92ZXJmbG93 Lgo+ICsJCSAqLwo+ICsKPiArCQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bS0+aTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4gKwkJaWYgKHBhZ2V2ZWNfc3BhY2Uoc3Rhc2gpKSB7Cj4gKwkJCWRvIHsK PiArCQkJCXN0YXNoLT5wYWdlc1tzdGFzaC0+bnIrK10gPQo+ICsJCQkJCXB2ZWMtPnBhZ2VzWy0t cHZlYy0+bnJdOwo+ICsJCQkJaWYgKCFwdmVjLT5ucikKPiArCQkJCQlyZXR1cm47Cj4gKwkJCX0g d2hpbGUgKHBhZ2V2ZWNfc3BhY2Uoc3Rhc2gpKTsKPiArCj4gKwkJCS8qIEFzIHdlIGhhdmUgbWFk ZSBzb21lIHJvb20gaW4gdGhlIFZNJ3MgZnJlZV9wYWdlcywKPiArCQkJICogd2UgY2FuIHdhaXQg Zm9yIGl0IHRvIGZpbGwgYWdhaW4uIFVubGVzcyB3ZSBhcmUKPiArCQkJICogaW5zaWRlIGk5MTVf YWRkcmVzc19zcGFjZV9maW5pKCkgYW5kIG11c3QKPiArCQkJICogaW1tZWRpYXRlbHkgcmVsZWFz ZSB0aGUgcGFnZXMhCj4gKwkJCSAqLwo+ICsJCQlpZiAoIWltbWVkaWF0ZSkKPiArCQkJCXJldHVy bjsKPiArCQl9Cj4gKwo+ICsJCXNldF9wYWdlc19hcnJheV93YihwdmVjLT5wYWdlcywgcHZlYy0+ bnIpOwo+ICsJfQo+ICAKPiAtCV9fcGFnZXZlY19yZWxlYXNlKCZ2bS0+ZnJlZV9wYWdlcyk7Cj4g KwlfX3BhZ2V2ZWNfcmVsZWFzZShwdmVjKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgdm1fZnJl ZV9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBzdHJ1Y3QgcGFnZSAqcGFnZSkK PiAgewo+ICAJaWYgKCFwYWdldmVjX2FkZCgmdm0tPmZyZWVfcGFnZXMsIHBhZ2UpKQo+IC0JCXZt X2ZyZWVfcGFnZXNfcmVsZWFzZSh2bSk7Cj4gKwkJdm1fZnJlZV9wYWdlc19yZWxlYXNlKHZtLCBm YWxzZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgX19zZXR1cF9wYWdlX2RtYShzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKPiBAQCAtNDQ3LDEyICs0OTMsMzEgQEAgc3RhdGljIHZvaWQg ZmlsbF9wYWdlX2RtYV8zMihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgc3RhdGlj IGludAo+ICBzZXR1cF9zY3JhdGNoX3BhZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s IGdmcF90IGdmcCkKPiAgewo+IC0JcmV0dXJuIF9fc2V0dXBfcGFnZV9kbWEodm0sICZ2bS0+c2Ny YXRjaF9wYWdlLCBnZnAgfCBfX0dGUF9aRVJPKTsKPiArCXN0cnVjdCBwYWdlICpwYWdlOwo+ICsJ ZG1hX2FkZHJfdCBhZGRyOwo+ICsKPiArCXBhZ2UgPSBhbGxvY19wYWdlKGdmcCB8IF9fR0ZQX1pF Uk8pOwo+ICsJaWYgKHVubGlrZWx5KCFwYWdlKSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4g KwlhZGRyID0gZG1hX21hcF9wYWdlKHZtLT5kbWEsIHBhZ2UsIDAsIFBBR0VfU0laRSwKPiArCQkJ ICAgIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7Cj4gKwlpZiAodW5saWtlbHkoZG1hX21hcHBpbmdf ZXJyb3Iodm0tPmRtYSwgYWRkcikpKSB7Cj4gKwkJX19mcmVlX3BhZ2UocGFnZSk7Cj4gKwkJcmV0 dXJuIC1FTk9NRU07Cj4gKwl9Cj4gKwo+ICsJdm0tPnNjcmF0Y2hfcGFnZS5wYWdlID0gcGFnZTsK PiArCXZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIgPSBhZGRyOwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gIHN0YXRpYyB2b2lkIGNsZWFudXBfc2NyYXRjaF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtKQo+ICB7Cj4gLQljbGVhbnVwX3BhZ2VfZG1hKHZtLCAmdm0tPnNjcmF0Y2hfcGFn ZSk7Cj4gKwlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCA9ICZ2bS0+c2NyYXRjaF9wYWdlOwo+ICsK PiArCWRtYV91bm1hcF9wYWdlKHZtLT5kbWEsIHAtPmRhZGRyLCBQQUdFX1NJWkUsIFBDSV9ETUFf QklESVJFQ1RJT05BTCk7Cj4gKwlfX2ZyZWVfcGFnZShwLT5wYWdlKTsKPiAgfQo+ICAKPiAgc3Rh dGljIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKmFsbG9jX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtKQo+IEBAIC0xMzMyLDE4ICsxMzk3LDE4IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0 dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKPiAgCQkxVUxMIDw8IDQ4IDoKPiAg CQkxVUxMIDw8IDMyOwo+ICAKPiAtCXJldCA9IGdlbjhfaW5pdF9zY3JhdGNoKCZwcGd0dC0+YmFz ZSk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJcHBndHQtPmJhc2UudG90YWwgPSAwOwo+IC0JCXJldHVy biByZXQ7Cj4gLQl9Cj4gLQo+ICAJLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9y IGdlbiA+PTYuIGNodiBhbmQgYnh0Lgo+ICAJICogQW5kIHdlIGFyZSBub3Qgc3VyZSBhYm91dCB0 aGUgbGF0dGVyIHNvIHBsYXkgc2FmZSBmb3Igbm93Lgo+ICAJICovCj4gIAlpZiAoSVNfQ0hFUlJZ VklFVyhkZXZfcHJpdikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJcHBndHQtPmJhc2Uu cHRfa21hcF93YyA9IHRydWU7Cj4gIAo+ICsJcmV0ID0gZ2VuOF9pbml0X3NjcmF0Y2goJnBwZ3R0 LT5iYXNlKTsKPiArCWlmIChyZXQpIHsKPiArCQlwcGd0dC0+YmFzZS50b3RhbCA9IDA7Cj4gKwkJ cmV0dXJuIHJldDsKPiArCX0KPiArCj4gIAlpZiAodXNlXzRsdmwodm0pKSB7Cj4gIAkJcmV0ID0g c2V0dXBfcHgoJnBwZ3R0LT5iYXNlLCAmcHBndHQtPnBtbDQpOwo+ICAJCWlmIChyZXQpCj4gQEAg LTE4NjcsNyArMTkzMiw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfYWRkcmVzc19zcGFjZV9pbml0KHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICBzdGF0aWMgdm9pZCBpOTE1X2FkZHJlc3Nf c3BhY2VfZmluaShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKPiAgewo+ICAJaWYgKHBh Z2V2ZWNfY291bnQoJnZtLT5mcmVlX3BhZ2VzKSkKPiAtCQl2bV9mcmVlX3BhZ2VzX3JlbGVhc2Uo dm0pOwo+ICsJCXZtX2ZyZWVfcGFnZXNfcmVsZWFzZSh2bSwgdHJ1ZSk7Cj4gIAo+ICAJaTkxNV9n ZW1fdGltZWxpbmVfZmluaSgmdm0tPnRpbWVsaW5lKTsKPiAgCWRybV9tbV90YWtlZG93bigmdm0t Pm1tKTsKPiBAQCAtMjU5Myw2ICsyNjU4LDcgQEAgdm9pZCBpOTE1X2dndHRfY2xlYW51cF9odyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBpOTE1X2dn dHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7Cj4gIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKnZu Owo+ICsJc3RydWN0IHBhZ2V2ZWMgKnB2ZWM7Cj4gIAo+ICAJZ2d0dC0+YmFzZS5jbG9zZWQgPSB0 cnVlOwo+ICAKPiBAQCAtMjYxNiw2ICsyNjgyLDEzIEBAIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBf aHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJfQo+ICAKPiAgCWdndHQt PmJhc2UuY2xlYW51cCgmZ2d0dC0+YmFzZSk7Cj4gKwo+ICsJcHZlYyA9ICZkZXZfcHJpdi0+bW0u d2Nfc3Rhc2g7Cj4gKwlpZiAocHZlYy0+bnIpIHsKPiArCQlzZXRfcGFnZXNfYXJyYXlfd2IocHZl Yy0+cGFnZXMsIHB2ZWMtPm5yKTsKPiArCQlfX3BhZ2V2ZWNfcmVsZWFzZShwdmVjKTsKPiArCX0K PiArCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiAgCj4g IAlhcmNoX3BoeXNfd2NfZGVsKGdndHQtPm10cnIpOwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBP cGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK