From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vince Hsu Subject: Re: [PATCH 3/6] mmu: map small pages into big pages(s) by IOMMU if possible Date: Mon, 20 Apr 2015 19:51:25 +0800 Message-ID: <5534E83D.80304@nvidia.com> References: <1429182379-31964-1-git-send-email-vinceh@nvidia.com> <1429182379-31964-4-git-send-email-vinceh@nvidia.com> <553128CA.40304@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Alexandre Courbot , Terje Bergstrom Cc: "nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , Ben Skeggs List-Id: nouveau.vger.kernel.org T24gMDQvMjAvMjAxNSAwMzo0OSBQTSwgQWxleGFuZHJlIENvdXJib3Qgd3JvdGU6Cj4gT24gU2F0 LCBBcHIgMTgsIDIwMTUgYXQgMTI6MzcgQU0sIFRlcmplIEJlcmdzdHJvbSA8dGJlcmdzdHJvbUBu dmlkaWEuY29tPiB3cm90ZToKPj4gT24gMDQvMTcvMjAxNSAwMjoxMSBBTSwgQWxleGFuZHJlIENv dXJib3Qgd3JvdGU6Cj4+PiBUcmFja2luZyB0aGUgUERFIGFuZCBQVEUgb2YgZWFjaCBtZW1vcnkg Y2h1bmsgY2FuIHByb2JhYmx5IGJlIGF2b2lkZWQKPj4+IGlmIHlvdSBjaGFuZ2UgeW91ciB1bm1h cHBpbmcgc3RyYXRlZ3kuIEN1cnJlbnRseSB5b3UgYXJlIGdvaW5nIHRocm91Z2gKPj4+IHRoZSBs aXN0IG9mIG52a21fdm1fYnBfbGlzdCwgYnV0IHlvdSBrbm93IHlvdXIgUERFIGFuZCBQVEUgYXJl IGFsd2F5cwo+Pj4gZ29pbmcgdG8gYmUgYWRqYWNlbnQsIHNpbmNlIGEgbnZrbV92bWEgcmVwcmVz ZW50cyBhIGNvbnRpZ3VvdXMgYmxvY2sKPj4+IGluIHRoZSBHUFUgVkEuIFNvIHdoZW4gdW5tYXBw aW5nLCB5b3UgY2FuIHNpbXBseSBjaGVjayBmb3IgZWFjaCBQVEUKPj4+IGVudHJ5IHdoZXRoZXIg dGhlIElPTU1VIGJpdCBpcyBzZXQsIGFuZCB1bm1hcCBmcm9tIHRoZSBJT01NVSBzcGFjZQo+Pj4g YWZ0ZXIgdW5tYXBwaW5nIGZyb20gdGhlIEdQVSBWQSBzcGFjZSwgaW4gYSBsb29wIHNpbWlsYXIg dG8gdGhhdCBvZgo+Pj4gbnZrbV92bV91bm1hcF9hdCgpLgo+Pj4KPj4+IFRoZW4gd2Ugb25seSBu ZWVkIHByaXYuIFlvdSBhcmUga2VlcGluZyB0aGUgbnZrbV9tbV9ub2RlIG9mIHRoZSBJT01NVQo+ Pj4gc3BhY2UgaW50byBpdCwgYW5kIHlvdSBuZWVkIGl0IHRvIGZyZWUgdGhlIElPTU1VIFZBIHNw YWNlLiBJZiBvbmx5IHdlCj4+PiBjb3VsZCBmaW5kIGFub3RoZXIgd2F5IHRvIHN0b3JlIGl0LCB3 ZSBjb3VsZCBnZXQgcmlkIG9mIHRoZSB3aG9sZQo+Pj4gc3RydWN0dXJlIGFuZCBhc3NvY2lhdGVk IGxpc3RfaGVhZCBpbiBudmttX3ZtYS4uLgo+Pj4KPj4+IEkgbmVlZCB0byBnaXZlIGl0IHNvbWUg bW9yZSB0aG91Z2h0cywgYW5kIHdlIHdpbGwgcHJvYmFibHkgbmVlZCB0bwo+Pj4gY2hhbmdlIGEg ZmV3IHRoaW5ncyBpbiBiYXNlLmMgdG8gbWFrZSB0aGUgaG9va3MgbW9yZSBmbGV4aWJsZSwgc28K Pj4+IHBsZWFzZSBnaXZlIG1lIHNvbWUgbW9yZSB0aW1lIHRvIHRoaW5rIGFib3V0IGl0LiA6KSBJ IGp1c3Qgd2FudGVkIHRvCj4+PiBzaGFyZSBteSB0aG91Z2h0cyBzbyBmYXIgaW4gY2FzZSB0aGlz IHB1dHMgeW91IG9uIHRyYWNrLgo+PiBUaGUgd2F5IHlvdSBkZXNjcmliZWQgaXQgd291bGQgbWFr ZSBHUFUgTU1VIGFuZCBJT01NVSBtYXBwaW5ncyAxOjEuIFNvIHdoZW4KPj4gd2UgbWFwIGEgYnVm ZmVyIHRvIEdQVSBNTVUsIHdlIGFsd2F5cyBtYXAgcGFnZSBieSBwYWdlIHRoZSBidWZmZXIgYWxz byB0bwo+PiBJT01NVS4gVGhlcmUgYXJlIGRpc2FkdmFudGFnZXMgaGVyZS4KPj4KPj4gSU9NTVUg YWRkcmVzc2VzIGFyZSBnbG9iYWwsIGFuZCB1c2VzIGluIHRoZSBHUFUgY2FjaGVzLiBXaGVuIGEg YnVmZmVyIGlzCj4+IG1hcHBlZCBtdWx0aXBsZSB0aW1lcyB0byBkaWZmZXJlbnQgZ3JhcGhpY3Mg Y29udGV4dHMsIHdlIHdhbnQgdG8gYXZvaWQgY2FjaGUKPj4gYWxpYXNpbmcgYnkgbWFwcGluZyB0 aGUgYnVmZmVyIG9ubHkgb25jZSB0byBJT01NVS4gV2UgYWxzbyB3YW50IHRvIHVubWFwIHRoZQo+ PiBidWZmZXIgZnJvbSBJT01NVSBvbmx5IG9uY2UgYWZ0ZXIgYWxsIHRoZSBpbnN0YW5jZXMgb2Yg dGhlIGJ1ZmZlciBoYXZlIGJlZW4KPj4gdW5tYXBwZWQsIG9yIG9ubHkgd2hlbiB0aGUgYnVmZmVy IGlzIGFjdHVhbGx5IGZyZWVkIHRvIGNhY2hlIElPTU1VIG1hcHBpbmdzLgo+Pgo+PiBEb2luZyBJ T01NVSBtYXBwaW5nIGZvciB0aGUgd2hvbGUgYnVmZmVyIHdpdGggZG1hX21hcF9zZyBpcyBhbHNv IGZhc3RlciB0aGFuCj4+IG1hcHBpbmcgcGFnZSBieSBwYWdlLCBiZWNhdXNlIHlvdSBjYW4gZG8g b25seSBvbmUgVExCIGludmFsaWRhdGUgaW4gdGhlIGVuZAo+PiBvZiB0aGUgbG9vcCBpbnN0ZWFk IG9mIGFmdGVyIGV2ZXJ5IHBhZ2UgaWYgeW91IHVzZSBkbWFfbWFwX3NpbmdsZS4KPj4KPj4gQWxs IG9mIHRoZXNlIHdvdWxkIHRhbGsgZm9yIGhhdmluZyBJT01NVSBhbmQgR01NVSBtYXBwaW5nIGxv b3BzIHNlcGFyYXRlLgo+PiBUaGlzIHBhdGNoIHNldCBkb2VzIG5vdCBpbXBsZW1lbnQgYm90aCB0 aGUgYWR2YW50YWdlcyBhYm92ZSwgYnV0IHlvdXIKPj4gc3VnZ2VzdGlvbiB3b3VsZCB0YWtlIHVz IGZ1cnRoZXIgYXdheSBmcm9tIHRoYXQgdGhhbiBWaW5jZSdzIHZlcnNpb24uCj4gQWhhLCBsb29r cyBsaWtlIGJvdGggVmluY2UgYW5kIEkgb3Zlcmxvb2tlZCB0aGlzIHBvaW50LiBTbyBJSVVDIHdl Cj4gd291bGQgbmVlZCB0byBtYWtlIHN1cmUgYSBHUFUgYnVmZmVyIGlzIG9ubHkgZXZlciBtYXBw ZWQgb25jZSBieSB0aGUKPiBJT01NVS4gVGhpcyBtZWFucyB3ZSBlaXRoZXIgbmVlZCB0byBwcmVl bXB0aXZlbHkgZW50aWxlcnkgbWFwIGl0IGF0Cj4gc29tZSBwb2ludCBhbmQganVzdCBrZWVwIGEg cmVmZXJlbmNlIGNvdW50LCBvciBrZWVwIHRyYWNrIG9mIHdoaWNoCj4gMTI4ayByYW5nZXMgYXJl IGFscmVhZHkgbWFwcGVkIChhZ2Fpbiwgd2l0aCBhIHJlZmVyZW5jZSBjb3VudCB0byBrbm93Cj4g d2hlbiB0byB1bm1hcCB0aGVtKS4KPgo+IEZpcnN0IHNvbHV0aW9uIGlzIHRlbXB0aW5nIGJlY2F1 c2UgaXQgaXMgc2ltcGxlciwgYnV0IHN1cmVseSB0aGVyZSBpcwo+IHNvbWV0aGluZyB3cm9uZyB3 aXRoIGl0PwpXZSBjYW4gbWFpbnRhaW4gYSBsaXN0IGluIG1tdS9nazIwYS5jIGFuZCB1c2UgdGhl IGZpcnN0IHNtYWxsIHBhZ2UncyAKYWRkcmVzcyBhcyBhIHNlYXJjaCBpbmRleCBmb3IgdGhlIGNv cnJlc3BvbmRpbmcgMTI4SyBwYWdlLgoKZS5nLgoKLS0tIGEvZHJtL25vdXZlYXUvbnZrbS9zdWJk ZXYvbW11L2drMjBhLmMKKysrIGIvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvbW11L2drMjBhLmMK QEAgLTM4LDYgKzM4LDggQEAgc3RydWN0IGdrMjBhX21tdV9wcml2IHsKICBzdHJ1Y3QgZ2syMGFf bW11X2lvbW11X21hcHBpbmcgewogICAgICAgICBzdHJ1Y3QgbnZrbV9tbV9ub2RlICpub2RlOwog ICAgICAgICB1NjQgaW92YTsKKyAgICAgICB1NjQgaW5kZXg7CisgICAgICAgc3RydWN0IGxpc3Rf aGVhZCBoZWFkOwogIH07CgogIGV4dGVybiBjb25zdCB1OCBnZjEwMF9wdGVfc3RvcmFnZV90eXBl X21hcFsyNTZdOwpAQCAtNzksNiArODEsMTQgQEAgZ2syMGFfdm1fbWFwX2lvbW11KHN0cnVjdCBu dmttX3ZtYSAqdm1hLCBzdHJ1Y3QgCm52a21fZ3B1b2JqICpwZ3QsCgogICAgICAgICBwbGF0ID0g bnZfZGV2aWNlX3RvX3BsYXRmb3JtKG52X2RldmljZSgmbW11LT5iYXNlKSk7CgorICAgICAgIGxp c3RfZm9yX2VhY2hfZW50cnkobWFwcGluZywgbWFwcGluZ19saXN0LCBoZWFkKSB7CisgICAgICAg ICAgICAgICBpZiAobWFwcGluZy0+aW5kZXggPT0gKmxpc3QpIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgbWFwcGluZy0+cmVmY250Kys7CisgICAgICAgICAgICAgICAgICAgICAgICpwcml2ID0g bWFwcGluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg fQorICAgICAgIH0KKwogICAgICAgICAqcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBnazIw YV9tbXVfaW9tbXVfbWFwcGluZyksIApHRlBfS0VSTkVMKTsKICAgICAgICAgaWYgKCEqcHJpdikK ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC05NSw2ICsxMDUsOCBAQCBnazIwYV92bV9tYXBf aW9tbXUoc3RydWN0IG52a21fdm1hICp2bWEsIHN0cnVjdCAKbnZrbV9ncHVvYmogKnBndCwKICAg ICAgICAgaWYgKHJldCkKICAgICAgICAgICAgICAgICByZXR1cm47CgorICAgICAgIHByaXYtPmlu ZGV4ID0gKmxpc3Q7CisKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5wYWdlczsgaSsrLCBsaXN0 KyspIHsKICAgICAgICAgICAgICAgICByZXQgPSBpb21tdV9tYXAocGxhdC0+Z3B1LT5pb21tdS5k b21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlLT5vZmZzZXQgKyBp KSA8PCBQQUdFX1NISUZULApAQCAtMTE3LDYgKzEyOSw3IEBAIGdrMjBhX3ZtX21hcF9pb21tdShz dHJ1Y3QgbnZrbV92bWEgKnZtYSwgc3RydWN0IApudmttX2dwdW9iaiAqcGd0LAogICAgICAgICBw ID0gKnByaXY7CiAgICAgICAgIHAtPm5vZGUgPSBub2RlOwogICAgICAgICBwLT5pb3ZhID0gbm9k ZS0+b2Zmc2V0IDw8IFBBR0VfU0hJRlQ7CisgICAgICAgbGlzdF9hZGRfdGFpbCgmcHJpdi0+aGVh ZCwgbWFwcGluZ19saXN0KTsKICB9CgoKVGhhbmtzLApWaW5jZQoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2 ZWF1QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vbm91dmVhdQo=