From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tiago Vignatti Subject: Re: [Intel-gfx] [PATCH 1/2] drm/i915: Use CPU mapping for userspace dma-buf mmap() Date: Tue, 04 Aug 2015 18:30:25 -0300 Message-ID: <55C12EF1.7080701@intel.com> References: <1438375344-4954-1-git-send-email-tiago.vignatti@intel.com> <1438375344-4954-2-git-send-email-tiago.vignatti@intel.com> <20150731210234.GA16824@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150731210234.GA16824@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chris Wilson , dri-devel@lists.freedesktop.org, daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, daniel.thompson@linaro.org List-Id: intel-gfx@lists.freedesktop.org T24gMDcvMzEvMjAxNSAwNjowMiBQTSwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+Cj4gVGhlIGZpcnN0 IHByb2JsZW0gaXMgdGhhdCBsbGMgZG9lcyBub3QgZ3VhcnJhbnRlZSB0aGF0IHRoZSBidWZmZXIg aXMKPiBjYWNoZSBjb2hlcmVudCB3aXRoIGFsbCBhc3BlY3RzIG9mIHRoZSBHUFUuIEZvciBzY2Fu b3V0IGFuZCBzaW1pbGFyCj4gd3JpdGVzIG5lZWQgdG8gYmUgV0MuCj4KPiBpZiAob2JqLT5oYXNf ZnJhbWVidWZmZXJfcmVmZXJlbmNlcykgd291bGQgYXQgbGVhc3QgY2F0Y2ggd2hlcmUgdGhlIGZi Cj4gaXMgbWFkZSBiZWZvcmUgdGhlIG1tYXAuCj4KPiBFcXVhbGx5IHRoaXMgYnVmZmVyIGNvdWxk IHRoZW4gYmUgc2hhcmVkIHdpdGggb3RoZXIgZGV2aWNlcyBhbmQgZXhwb3NpbmcKPiBhIENQVSBt bWFwIHRvIHVzZXJzcGFjZSAoYW5kIG5vIGZsdXNoL3NldC1kb21haW4gcHJvdG9jb2wpIHdpbGwg cmVzdWx0IGluCj4gY29ycnVwdGlvbi4KCkkndmUgYnVpbHQgYW4gaWd0IHRlc3QgdG8gY2F0Y2gg dGhpcyBjb3JydXB0aW9uIGJ1dCBpdCdzIG5vdCByZWFsbHkgCmZhbGxpbmcgdGhlcmUgaW4gbXkg SXZ5QnJpZGdlLiBJZiB3aGF0IHlvdSBkZXNjcmliZWQgaXMgcmlnaHQgKGFuZCBzbyAKd2hhdCBJ IGNvZGVkKSB0aGVuIHRoaXMgdGVzdCBzaG91bGQgd3JpdGUgaW4gdGhlIG1hcHBlZCBidWZmZXIg YnV0IG5vdCAKdXBkYXRlIHRoZSBzY3JlZW4uCgpBbnkgaWRlYSB3aGF0J3MgZ29pbmcgb24/Cgpo dHRwczovL2dpdGh1Yi5jb20vdGlhZ292aWduYXR0aS9pbnRlbC1ncHUtdG9vbHMvY29tbWl0LzNl MTMwYWMyYjI3NGYxYTNmNjg4NTU1NTljNzhjYjcyZDA2NzNjYTIucGF0Y2gKCgogRnJvbSAzZTEz MGFjMmIyNzRmMWEzZjY4ODU1NTU5Yzc4Y2I3MmQwNjczY2EyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBUaWFnbyBWaWduYXR0aSA8dGlhZ28udmlnbmF0dGlAaW50ZWwuY29tPgpEYXRl OiBUdWUsIDQgQXVnIDIwMTUgMTM6Mzg6MDkgLTAzMDAKU3ViamVjdDogW1BBVENIXSB0ZXN0czog QWRkIHByaW1lX2NyYyBmb3IgY2FjaGUgY29oZXJlbmN5CgpUaGlzIHByb2dyYW0gY2FuIGJlIHVz ZWQgdG8gZGV0ZWN0IHdoZW4gdGhlIHdyaXRlcyBkb24ndCBsYW5kIGluIApzY2Fub3V0LCBkdWUK Y2FjaGUgaW5jb2hlcmVuY3kuCgpSdW4gaXQgbGlrZSAuL3ByaW1lX2NyYyAtLWludGVyYWN0aXZl LWRlYnVnPWNyYwoKU2lnbmVkLW9mZi1ieTogVGlhZ28gVmlnbmF0dGkgPHRpYWdvLnZpZ25hdHRp QGludGVsLmNvbT4KLS0tCiAgdGVzdHMvLmdpdGlnbm9yZSAgICAgICB8ICAgMSArCiAgdGVzdHMv TWFrZWZpbGUuc291cmNlcyB8ICAgMSArCiAgdGVzdHMvcHJpbWVfY3JjLmMgICAgICB8IDIwMSAK KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogIDMgZmls ZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKykKICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMv cHJpbWVfY3JjLmMKCmRpZmYgLS1naXQgYS90ZXN0cy8uZ2l0aWdub3JlIGIvdGVzdHMvLmdpdGln bm9yZQppbmRleCA1YmM0YTU4Li45NmRiZjU3IDEwMDY0NAotLS0gYS90ZXN0cy8uZ2l0aWdub3Jl CisrKyBiL3Rlc3RzLy5naXRpZ25vcmUKQEAgLTE2MCw2ICsxNjAsNyBAQCBwbV9yYzZfcmVzaWRl bmN5CiAgcG1fcnBtCiAgcG1fcnBzCiAgcG1fc3NldQorcHJpbWVfY3JjCiAgcHJpbWVfbnZfYXBp CiAgcHJpbWVfbnZfcGNvcHkKICBwcmltZV9udl90ZXN0CmRpZmYgLS1naXQgYS90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCA1YjIwNzJlLi5jMDVi NWE3IDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMKQEAgLTkwLDYgKzkwLDcgQEAgVEVTVFNfcHJvZ3NfTSA9IFwKICAJcG1fcnBz IFwKICAJcG1fcmM2X3Jlc2lkZW5jeSBcCiAgCXBtX3NzZXUgXAorCXByaW1lX2NyYyBcCiAgCXBy aW1lX21tYXAgXAogIAlwcmltZV9zZWxmX2ltcG9ydCBcCiAgCXRlbXBsYXRlIFwKZGlmZiAtLWdp dCBhL3Rlc3RzL3ByaW1lX2NyYy5jIGIvdGVzdHMvcHJpbWVfY3JjLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ3NGNjOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3By aW1lX2NyYy5jCkBAIC0wLDAgKzEsMjAxIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTUgSW50 ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAKIlNvZnR3YXJl IiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCAKbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgCm5leHQKKyAqIHBhcmFn cmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyAKb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgCkVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiAKT1RI RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIApERUFMSU5HUworICogSU4gVEhF IFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBUaWFnbyBWaWduYXR0aSA8dGlhZ28u dmlnbmF0dGkgYXQgaW50ZWwuY29tPgorICoKKyAqLworCisvKiBUaGlzIHByb2dyYW0gY2FuIGRl dGVjdCB3aGVuIHRoZSB3cml0ZXMgZG9uJ3QgbGFuZCBpbiBzY2Fub3V0LCBkdWUgY2FjaGUKKyAq IGluY29oZXJlbmN5LiAqLworCisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImlndF9k ZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaWd0X2ttcy5oIgorCisjZGVmaW5lIE1BWF9DT05ORUNUT1JT IDMyCisKK3N0cnVjdCBtb2Rlc2V0X3BhcmFtcyB7CisJdWludDMyX3QgY3J0Y19pZDsKKwl1aW50 MzJfdCBjb25uZWN0b3JfaWQ7CisJZHJtTW9kZU1vZGVJbmZvUHRyIG1vZGU7Cit9OworCitpbnQg ZHJtX2ZkOworZHJtTW9kZVJlc1B0ciBkcm1fcmVzOworZHJtTW9kZUNvbm5lY3RvclB0ciBkcm1f Y29ubmVjdG9yc1tNQVhfQ09OTkVDVE9SU107Citkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7Citp Z3RfcGlwZV9jcmNfdCAqcGlwZV9jcmM7CisKK3N0cnVjdCBtb2Rlc2V0X3BhcmFtcyBtczsKKwor c3RhdGljIHZvaWQgZmluZF9tb2Rlc2V0X3BhcmFtcyh2b2lkKQoreworCWludCBpOworCXVpbnQz Ml90IGNvbm5lY3Rvcl9pZCA9IDAsIGNydGNfaWQ7CisJZHJtTW9kZU1vZGVJbmZvUHRyIG1vZGUg PSBOVUxMOworCisJZm9yIChpID0gMDsgaSA8IGRybV9yZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkr KykgeworCQlkcm1Nb2RlQ29ubmVjdG9yUHRyIGMgPSBkcm1fY29ubmVjdG9yc1tpXTsKKworCQlp ZiAoYy0+Y291bnRfbW9kZXMpIHsKKwkJCWNvbm5lY3Rvcl9pZCA9IGMtPmNvbm5lY3Rvcl9pZDsK KwkJCW1vZGUgPSAmYy0+bW9kZXNbMF07CisJCQlicmVhazsKKwkJfQorCX0KKwlpZ3RfcmVxdWly ZShjb25uZWN0b3JfaWQpOworCisJY3J0Y19pZCA9IGRybV9yZXMtPmNydGNzWzBdOworCWlndF9h c3NlcnQoY3J0Y19pZCk7CisJaWd0X2Fzc2VydChtb2RlKTsKKworCW1zLmNvbm5lY3Rvcl9pZCA9 IGNvbm5lY3Rvcl9pZDsKKwltcy5jcnRjX2lkID0gY3J0Y19pZDsKKwltcy5tb2RlID0gbW9kZTsK KworfQorCisjZGVmaW5lIEJPX1NJWkUgKDE2KjEwMjQpCisKK2NoYXIgcGF0dGVybltdID0gezB4 ZmYsIDB4MDAsIDB4MDAsIDB4MDAsCisJMHgwMCwgMHhmZiwgMHgwMCwgMHgwMCwKKwkweDAwLCAw eDAwLCAweGZmLCAweDAwLAorCTB4MDAsIDB4MDAsIDB4MDAsIDB4ZmZ9OworCitzdGF0aWMgdm9p ZCBtZXNzX3dpdGhfY29oZXJlbmN5KGNoYXIgKnB0cikKK3sKKwlvZmZfdCBpOworCisJZm9yIChp ID0gMDsgaSA8IEJPX1NJWkU7IGkrPXNpemVvZihwYXR0ZXJuKSkgeworCQltZW1jcHkocHRyICsg aSwgcGF0dGVybiwgc2l6ZW9mKHBhdHRlcm4pKTsKKwl9CisvLwltdW5tYXAocHRyLCBCT19TSVpF KTsKKy8vCWNsb3NlKGRtYV9idWZfZmQpOworfQorCitzdGF0aWMgY2hhciAqZG1hYnVmX21tYXBf ZnJhbWVidWZmZXIoc3RydWN0IGlndF9mYiAqZmIpCit7CisJaW50IGRtYV9idWZfZmQ7CisJY2hh ciAqcHRyID0gTlVMTDsKKworCWRtYV9idWZfZmQgPSBwcmltZV9oYW5kbGVfdG9fZmQoZHJtX2Zk LCBmYi0+Z2VtX2hhbmRsZSk7CisJaWd0X2Fzc2VydChlcnJubyA9PSAwKTsKKworCXB0ciA9IG1t YXAoTlVMTCwgQk9fU0laRSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgCmRt YV9idWZfZmQsIDApOworCWlndF9hc3NlcnQocHRyICE9IE1BUF9GQUlMRUQpOworCisJcmV0dXJu IHB0cjsKK30KKworc3RhdGljIHZvaWQgZ2V0X21ldGhvZF9jcmModWludDY0X3QgdGlsaW5nLCBp Z3RfY3JjX3QgKmNyYywgYm9vbCBtZXNzKQoreworCXN0cnVjdCBpZ3RfZmIgZmI7CisJaW50IHJj OworCWNoYXIgKnB0cjsKKworCWlndF9jcmVhdGVfZmIoZHJtX2ZkLCBtcy5tb2RlLT5oZGlzcGxh eSwgbXMubW9kZS0+dmRpc3BsYXksCisJCSAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIHRpbGlu ZywgJmZiKTsKKworCWlmIChtZXNzKQorCQlwdHIgPSBkbWFidWZfbW1hcF9mcmFtZWJ1ZmZlcigm ZmIpOworCisJcmMgPSBkcm1Nb2RlU2V0Q3J0Yyhkcm1fZmQsIG1zLmNydGNfaWQsIGZiLmZiX2lk LCAwLCAwLAorCQkJICAgICZtcy5jb25uZWN0b3JfaWQsIDEsIG1zLm1vZGUpOworCWlndF9hc3Nl cnQocmMgPT0gMCk7CisKKwlpZiAobWVzcykKKwkJbWVzc193aXRoX2NvaGVyZW5jeShwdHIpOwor CisJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKHBpcGVfY3JjLCBjcmMpOworCisJa21zdGVzdF91 bnNldF9hbGxfY3J0Y3MoZHJtX2ZkLCBkcm1fcmVzKTsKKwlpZ3RfcmVtb3ZlX2ZiKGRybV9mZCwg JmZiKTsKK30KKworc3RhdGljIHZvaWQgZHJhd19tZXRob2Rfc3VidGVzdCh1aW50NjRfdCB0aWxp bmcpCit7CisJaWd0X2NyY190IHJlZmVyZW5jZV9jcmMsIGNyYzsKKworCWttc3Rlc3RfdW5zZXRf YWxsX2NydGNzKGRybV9mZCwgZHJtX3Jlcyk7CisKKwlmaW5kX21vZGVzZXRfcGFyYW1zKCk7CisK KwlnZXRfbWV0aG9kX2NyYyh0aWxpbmcsICZyZWZlcmVuY2VfY3JjLCBmYWxzZSk7CisJZ2V0X21l dGhvZF9jcmModGlsaW5nLCAmY3JjLCB0cnVlKTsKKworCS8vIFhYWDogSUlVQyBpZiB3ZSBtZXNz IHVwIHdpdGggdGhlIHNjYW5vdXQgZGV2aWNlLCB0aHJvdWdoIGEgZG1hLWJ1ZiAKbW1hcCdlZAor CS8vIHBvaW50ZXIsIHRoZW4gYm90aCB0aGUgcmVmZXJlbmNlIGNyYyBhbmQgdGhlIG1lc3NlZCB1 cCBvbmUgc2hvdWxkIApiZSBlcXVhbAorCS8vIGJlY2F1c2UgdGhlIGxhdHRlciB3YXNuJ3QgZmx1 c2hlZC4gVGhhdCdzIHRoZSB0aGVvcnksIGJ1dCBpdCdzIG5vdCAKd2hhdCdzCisJLy8gaGFwcGVu aW5nIGFuZCB0aGUgZm9sbG93aW5nIGlzIG5vdCBwYXNzaW5nLgorCWlndF9hc3NlcnRfY3JjX2Vx dWFsKCZyZWZlcmVuY2VfY3JjLCAmY3JjKTsKK30KKworc3RhdGljIHZvaWQgc2V0dXBfZW52aXJv bm1lbnQodm9pZCkKK3sKKwlpbnQgaTsKKworCWRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIo KTsKKwlpZ3RfcmVxdWlyZShkcm1fZmQgPj0gMCk7CisKKwlkcm1fcmVzID0gZHJtTW9kZUdldFJl c291cmNlcyhkcm1fZmQpOworCWlndF9hc3NlcnQoZHJtX3Jlcy0+Y291bnRfY29ubmVjdG9ycyA8 PSBNQVhfQ09OTkVDVE9SUyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZHJtX3Jlcy0+Y291bnRfY29u bmVjdG9yczsgaSsrKQorCQlkcm1fY29ubmVjdG9yc1tpXSA9IGRybU1vZGVHZXRDb25uZWN0b3Io ZHJtX2ZkLAorCQkJCQkJCWRybV9yZXMtPmNvbm5lY3RvcnNbaV0pOworCisJa21zdGVzdF9zZXRf dnRfZ3JhcGhpY3NfbW9kZSgpOworCisJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5p dChkcm1fZmQsIDQwOTYpOworCWlndF9hc3NlcnQoYnVmbWdyKTsKKwlkcm1faW50ZWxfYnVmbWdy X2dlbV9lbmFibGVfcmV1c2UoYnVmbWdyKTsKKworCXBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25l dygwLCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7Cit9CisKK3N0YXRpYyB2b2lkIHRlYXJk b3duX2Vudmlyb25tZW50KHZvaWQpCit7CisJaW50IGk7CisKKwlpZ3RfcGlwZV9jcmNfZnJlZShw aXBlX2NyYyk7CisKKwlkcm1faW50ZWxfYnVmbWdyX2Rlc3Ryb3koYnVmbWdyKTsKKworCWZvciAo aSA9IDA7IGkgPCBkcm1fcmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspCisJCWRybU1vZGVGcmVl Q29ubmVjdG9yKGRybV9jb25uZWN0b3JzW2ldKTsKKworCWRybU1vZGVGcmVlUmVzb3VyY2VzKGRy bV9yZXMpOworCWNsb3NlKGRybV9mZCk7Cit9CisKK2lndF9tYWluCit7CisJaWd0X2ZpeHR1cmUK KwkJc2V0dXBfZW52aXJvbm1lbnQoKTsKKworCWlndF9zdWJ0ZXN0X2YoImRyYXctbWV0aG9kLXRp bGVkIikKKwkJZHJhd19tZXRob2Rfc3VidGVzdChMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxF RCk7CisKKwlpZ3RfZml4dHVyZQorCQl0ZWFyZG93bl9lbnZpcm9ubWVudCgpOworfQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=