From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 036CE6E5CB for ; Fri, 2 Nov 2018 19:07:07 +0000 (UTC) From: Ville Syrjala Date: Fri, 2 Nov 2018 21:06:51 +0200 Message-Id: <20181102190651.25969-4-ville.syrjala@linux.intel.com> In-Reply-To: <20181102190651.25969-1-ville.syrjala@linux.intel.com> References: <20181102190651.25969-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 4/4] lib/igt_fb: Generalize the slow read from gtt mmap handling List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk1h a2UgdGhlIGhhbmRsaW5nIG9mIHNsb3cgZ3R0IG1tYXAgcmVhZHMgZ2VuZXJpYywgYW5kIGV4dGVu ZCBpdCB0bwp0aGUgcGl4bWFuIGNvbnZlcnRlci4gTWFrZXMgdGhlIHBpeG1hbiBwYXRoIGEgYml0 IGZhc3Rlci4KCldpdGggdGVzdGluZyBqdXN0IFhSR0I4ODg4IGFuZCBYQkdSODg4OCBvbiBLQkw6 CiQgdGltZSBrbXNfcGxhbmUgLS1yIHBpeGVsLWZvcm1hdC1waXBlLUEtcGxhbmVzCi0gcmVhbAkw bTE4LDc1N3MKKyByZWFsCTBtMiw2MzVzCgpDYzogTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFy ZEBib290bGluLmNvbT4KQ2M6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVs LmNvbT4KQ2M6IEp1aGEtUGVra2EgSGVpa2tpbGEgPGp1aGFwZWtrYS5oZWlra2lsYUBnbWFpbC5j b20+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfZmIuYyB8IDYzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRp b25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmMgYi9saWIv aWd0X2ZiLmMKaW5kZXggOTczMTBmNzBiNjM1Li45Mzc1YjZjNTU4M2UgMTAwNjQ0Ci0tLSBhL2xp Yi9pZ3RfZmIuYworKysgYi9saWIvaWd0X2ZiLmMKQEAgLTE1MDYsNiArMTUwNiw3IEBAIHN0YXRp YyB2b2lkIHdyaXRlX3JnYih1aW50OF90ICpyZ2IyNCwgY29uc3Qgc3RydWN0IGlndF92ZWM0ICpy Z2IpCiBzdHJ1Y3QgZmJfY29udmVydF9idWYgewogCXZvaWQJCQkqcHRyOwogCXN0cnVjdCBpZ3Rf ZmIJCSpmYjsKKwlib29sICAgICAgICAgICAgICAgICAgICAgc2xvd19yZWFkczsKIH07CiAKIHN0 cnVjdCBmYl9jb252ZXJ0IHsKQEAgLTE1MTMsNiArMTUxNCwzNiBAQCBzdHJ1Y3QgZmJfY29udmVy dCB7CiAJc3RydWN0IGZiX2NvbnZlcnRfYnVmCXNyYzsKIH07CiAKK3N0YXRpYyB2b2lkICpjb252 ZXJ0X3NyY19nZXQoY29uc3Qgc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKK3sKKwl2b2lkICpidWY7 CisKKwlpZiAoIWN2dC0+c3JjLnNsb3dfcmVhZHMpCisJCXJldHVybiBjdnQtPnNyYy5wdHI7CisK KwkvKgorCSAqIFJlYWRpbmcgZnJvbSB0aGUgQk8gaXMgYXdmdWxseSBzbG93IGJlY2F1c2Ugb2Yg bGFjayBvZiByZWFkIGNhY2hpbmcsCisJICogaXQncyBmYXN0ZXIgdG8gY29weSB0aGUgd2hvbGUg Qk8gdG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBjb252ZXJ0CisJICogZnJvbSB0aGVyZS4KKwkg Ki8KKwlidWYgPSBtYWxsb2MoY3Z0LT5zcmMuZmItPnNpemUpOworCWlndF9tZW1jcHlfZnJvbV93 YyhidWYsIGN2dC0+c3JjLnB0ciwgY3Z0LT5zcmMuZmItPnNpemUpOworCisJcmV0dXJuIGJ1ZjsK K30KKworc3RhdGljIHZvaWQgY29udmVydF9zcmNfcHV0KGNvbnN0IHN0cnVjdCBmYl9jb252ZXJ0 ICpjdnQsCisJCQkgICAgdm9pZCAqc3JjX2J1ZikKK3sKKwkvKgorCSAqIFJlYWRpbmcgZnJvbSB0 aGUgQk8gaXMgYXdmdWxseSBzbG93IGJlY2F1c2Ugb2YgbGFjayBvZiByZWFkIGNhY2hpbmcsCisJ ICogaXQncyBmYXN0ZXIgdG8gY29weSB0aGUgd2hvbGUgQk8gdG8gYSB0ZW1wb3JhcnkgYnVmZmVy IGFuZCBjb252ZXJ0CisJICogZnJvbSB0aGVyZS4KKwkgKi8KKwlpZiAoY3Z0LT5zcmMuc2xvd19y ZWFkcykKKwkJZnJlZShzcmNfYnVmKTsKK30KKwogc3RhdGljIHZvaWQgY29udmVydF9udjEyX3Rv X3JnYjI0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiB7CiAJaW50IGksIGo7CkBAIC0xNTIwLDE5 ICsxNTUxLDE0IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRfbnYxMl90b19yZ2IyNChzdHJ1Y3QgZmJf Y29udmVydCAqY3Z0KQogCXVpbnQ4X3QgKnJnYjI0ID0gY3Z0LT5kc3QucHRyOwogCXVuc2lnbmVk IGludCByZ2IyNF9zdHJpZGUgPSBjdnQtPmRzdC5mYi0+c3RyaWRlc1swXTsKIAl1bnNpZ25lZCBp bnQgcGxhbmFyX3N0cmlkZSA9IGN2dC0+c3JjLmZiLT5zdHJpZGVzWzBdOwotCXVpbnQ4X3QgKmJ1 ZiA9IG1hbGxvYyhjdnQtPnNyYy5mYi0+c2l6ZSk7CiAJc3RydWN0IGlndF9tYXQ0IG0gPSBpZ3Rf eWNiY3JfdG9fcmdiX21hdHJpeChjdnQtPnNyYy5mYi0+Y29sb3JfZW5jb2RpbmcsCiAJCQkJCQkg ICAgY3Z0LT5zcmMuZmItPmNvbG9yX3JhbmdlKTsKKwl1aW50OF90ICpidWY7CiAKIAlpZ3RfYXNz ZXJ0KGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJgogCQkgICBj dnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1hSR0I4ODg4KTsKIAotCS8qCi0J ICogUmVhZGluZyBmcm9tIHRoZSBCTyBpcyBhd2Z1bGx5IHNsb3cgYmVjYXVzZSBvZiBsYWNrIG9m IHJlYWQgY2FjaGluZywKLQkgKiBpdCdzIGZhc3RlciB0byBjb3B5IHRoZSB3aG9sZSBCTyB0byBh IHRlbXBvcmFyeSBidWZmZXIgYW5kIGNvbnZlcnQKLQkgKiBmcm9tIHRoZXJlLgotCSAqLwotCWln dF9tZW1jcHlfZnJvbV93YyhidWYsIGN2dC0+c3JjLnB0ciwgY3Z0LT5zcmMuZmItPnNpemUpOwor CWJ1ZiA9IGNvbnZlcnRfc3JjX2dldChjdnQpOwogCXkgPSBidWYgKyBjdnQtPnNyYy5mYi0+b2Zm c2V0c1swXTsKIAl1diA9IGJ1ZiArIGN2dC0+c3JjLmZiLT5vZmZzZXRzWzFdOwogCkBAIC0xNjIy LDcgKzE2NDgsNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0X252MTJfdG9fcmdiMjQoc3RydWN0IGZi X2NvbnZlcnQgKmN2dCkKIAkJfQogCX0KIAotCWZyZWUoYnVmKTsKKwljb252ZXJ0X3NyY19wdXQo Y3Z0LCBidWYpOwogfQogCiBzdGF0aWMgdm9pZCBjb252ZXJ0X3JnYjI0X3RvX252MTIoc3RydWN0 IGZiX2NvbnZlcnQgKmN2dCkKQEAgLTE3NjAsMTAgKzE3ODYsMTAgQEAgc3RhdGljIHZvaWQgY29u dmVydF95dXl2X3RvX3JnYjI0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJdWludDhfdCAqcmdi MjQgPSBjdnQtPmRzdC5wdHI7CiAJdW5zaWduZWQgaW50IHJnYjI0X3N0cmlkZSA9IGN2dC0+ZHN0 LmZiLT5zdHJpZGVzWzBdOwogCXVuc2lnbmVkIGludCB5dXl2X3N0cmlkZSA9IGN2dC0+c3JjLmZi LT5zdHJpZGVzWzBdOwotCXVpbnQ4X3QgKmJ1ZiA9IG1hbGxvYyhjdnQtPnNyYy5mYi0+c2l6ZSk7 CiAJc3RydWN0IGlndF9tYXQ0IG0gPSBpZ3RfeWNiY3JfdG9fcmdiX21hdHJpeChjdnQtPnNyYy5m Yi0+Y29sb3JfZW5jb2RpbmcsCiAJCQkJCQkgICAgY3Z0LT5zcmMuZmItPmNvbG9yX3JhbmdlKTsK IAljb25zdCB1bnNpZ25lZCBjaGFyICpzd3ogPSB5dXl2X3N3aXp6bGUoY3Z0LT5zcmMuZmItPmRy bV9mb3JtYXQpOworCXVpbnQ4X3QgKmJ1ZjsKIAogCWlndF9hc3NlcnQoKGN2dC0+c3JjLmZiLT5k cm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWVVZViB8fAogCQkgICAgY3Z0LT5zcmMuZmItPmRybV9m b3JtYXQgPT0gRFJNX0ZPUk1BVF9VWVZZIHx8CkBAIC0xNzcxLDEyICsxNzk3LDcgQEAgc3RhdGlj IHZvaWQgY29udmVydF95dXl2X3RvX3JnYjI0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJCSAg ICBjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1ZZVVkpICYmCiAJCSAgIGN2 dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWFJHQjg4ODgpOwogCi0JLyoKLQkg KiBSZWFkaW5nIGZyb20gdGhlIEJPIGlzIGF3ZnVsbHkgc2xvdyBiZWNhdXNlIG9mIGxhY2sgb2Yg cmVhZCBjYWNoaW5nLAotCSAqIGl0J3MgZmFzdGVyIHRvIGNvcHkgdGhlIHdob2xlIEJPIHRvIGEg dGVtcG9yYXJ5IGJ1ZmZlciBhbmQgY29udmVydAotCSAqIGZyb20gdGhlcmUuCi0JICovCi0JaWd0 X21lbWNweV9mcm9tX3djKGJ1ZiwgY3Z0LT5zcmMucHRyLCBjdnQtPnNyYy5mYi0+c2l6ZSk7CisJ YnVmID0gY29udmVydF9zcmNfZ2V0KGN2dCk7CiAJeXV5diA9IGJ1ZjsKIAogCWZvciAoaSA9IDA7 IGkgPCBjdnQtPmRzdC5mYi0+aGVpZ2h0OyBpKyspIHsKQEAgLTE4MTYsNyArMTgzNyw3IEBAIHN0 YXRpYyB2b2lkIGNvbnZlcnRfeXV5dl90b19yZ2IyNChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQog CQl5dXl2ICs9IHl1eXZfc3RyaWRlOwogCX0KIAotCWZyZWUoYnVmKTsKKwljb252ZXJ0X3NyY19w dXQoY3Z0LCBidWYpOwogfQogCiBzdGF0aWMgdm9pZCBjb252ZXJ0X3JnYjI0X3RvX3l1eXYoc3Ry dWN0IGZiX2NvbnZlcnQgKmN2dCkKQEAgLTE4NzcsMTQgKzE4OTgsMTcgQEAgc3RhdGljIHZvaWQg Y29udmVydF9waXhtYW4oc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKIAlwaXhtYW5fZm9ybWF0X2Nv ZGVfdCBzcmNfcGl4bWFuID0gZHJtX2Zvcm1hdF90b19waXhtYW4oY3Z0LT5zcmMuZmItPmRybV9m b3JtYXQpOwogCXBpeG1hbl9mb3JtYXRfY29kZV90IGRzdF9waXhtYW4gPSBkcm1fZm9ybWF0X3Rv X3BpeG1hbihjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCk7CiAJcGl4bWFuX2ltYWdlX3QgKmRzdF9p bWFnZSwgKnNyY19pbWFnZTsKKwl2b2lkICpzcmNfcHRyOwogCiAJaWd0X2Fzc2VydCgoc3JjX3Bp eG1hbiAhPSBQSVhNQU5faW52YWxpZCkgJiYKIAkJICAgKGRzdF9waXhtYW4gIT0gUElYTUFOX2lu dmFsaWQpKTsKIAorCXNyY19wdHIgPSBjb252ZXJ0X3NyY19nZXQoY3Z0KTsKKwogCXNyY19pbWFn ZSA9IHBpeG1hbl9pbWFnZV9jcmVhdGVfYml0cyhzcmNfcGl4bWFuLAogCQkJCQkgICAgIGN2dC0+ c3JjLmZiLT53aWR0aCwKIAkJCQkJICAgICBjdnQtPnNyYy5mYi0+aGVpZ2h0LAotCQkJCQkgICAg IGN2dC0+c3JjLnB0ciwKKwkJCQkJICAgICBzcmNfcHRyLAogCQkJCQkgICAgIGN2dC0+c3JjLmZi LT5zdHJpZGVzWzBdKTsKIAlpZ3RfYXNzZXJ0KHNyY19pbWFnZSk7CiAKQEAgLTE5MDAsNiArMTky NCw4IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRfcGl4bWFuKHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQp CiAJCQkgICAgICAgY3Z0LT5kc3QuZmItPndpZHRoLCBjdnQtPmRzdC5mYi0+aGVpZ2h0KTsKIAlw aXhtYW5faW1hZ2VfdW5yZWYoZHN0X2ltYWdlKTsKIAlwaXhtYW5faW1hZ2VfdW5yZWYoc3JjX2lt YWdlKTsKKworCWNvbnZlcnRfc3JjX3B1dChjdnQsIHNyY19wdHIpOwogfQogCiBzdGF0aWMgdm9p ZCBmYl9jb252ZXJ0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCkBAIC0xOTkxLDYgKzIwMTcsOSBA QCBzdGF0aWMgdm9pZCBjcmVhdGVfY2Fpcm9fc3VyZmFjZV9fY29udmVydChpbnQgZmQsIHN0cnVj dCBpZ3RfZmIgKmZiKQogCQlibGl0LT5iYXNlLmxpbmVhci5mYi5nZW1faGFuZGxlID0gMDsKIAkJ YmxpdC0+YmFzZS5saW5lYXIubWFwID0gbWFwX2JvKGZkLCBmYik7CiAJCWlndF9hc3NlcnQoYmxp dC0+YmFzZS5saW5lYXIubWFwKTsKKworCQkvKiByZWFkaW5nIHZpYSBndHQgbW1hcCBpcyBzbG93 ICovCisJCWN2dC5zcmMuc2xvd19yZWFkcyA9IGlzX2k5MTVfZGV2aWNlKGZkKTsKIAl9CiAKIAlj dnQuZHN0LnB0ciA9IGJsaXQtPnNoYWRvd19wdHI7Ci0tIAoyLjE4LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=