From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 932FC6E5CF for ; Fri, 2 Nov 2018 19:37:38 +0000 (UTC) From: Ville Syrjala Date: Fri, 2 Nov 2018 21:37:31 +0200 Message-Id: <20181102193731.27330-1-ville.syrjala@linux.intel.com> In-Reply-To: <20181102190651.25969-4-ville.syrjala@linux.intel.com> References: <20181102190651.25969-4-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 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 bTE4LDc1N3MKKyByZWFsCTBtMiw2MzVzCgp2MjogVXNlIHRoZSBvcmlnaW5hbCBzcmMgYnVmZmVy IGlmIHRoZSBtYWxsb2MgZmFpbHMgKENocmlzKQogICAgRHJvcCB0aGUgZHVwbGljYXRlZCBjb21t ZW50IGFib3V0IHRoaW5ncyBiZWluZyBzbG93CgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+CkNjOiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4u Y29tPgpDYzogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgpDYzog SnVoYS1QZWtrYSBIZWlra2lsYSA8anVoYXBla2thLmhlaWtraWxhQGdtYWlsLmNvbT4KQ2M6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClNpZ25l ZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Ci0tLQogbGliL2lndF9mYi5jIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDE3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3RfZmIuYwpp bmRleCA5NzMxMGY3MGI2MzUuLjAxZWZkMjY5NzE0YiAxMDA2NDQKLS0tIGEvbGliL2lndF9mYi5j CisrKyBiL2xpYi9pZ3RfZmIuYwpAQCAtMTUwNiw2ICsxNTA2LDcgQEAgc3RhdGljIHZvaWQgd3Jp dGVfcmdiKHVpbnQ4X3QgKnJnYjI0LCBjb25zdCBzdHJ1Y3QgaWd0X3ZlYzQgKnJnYikKIHN0cnVj dCBmYl9jb252ZXJ0X2J1ZiB7CiAJdm9pZAkJCSpwdHI7CiAJc3RydWN0IGlndF9mYgkJKmZiOwor CWJvb2wgICAgICAgICAgICAgICAgICAgICBzbG93X3JlYWRzOwogfTsKIAogc3RydWN0IGZiX2Nv bnZlcnQgewpAQCAtMTUxMyw2ICsxNTE0LDM0IEBAIHN0cnVjdCBmYl9jb252ZXJ0IHsKIAlzdHJ1 Y3QgZmJfY29udmVydF9idWYJc3JjOwogfTsKIAorc3RhdGljIHZvaWQgKmNvbnZlcnRfc3JjX2dl dChjb25zdCBzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQoreworCXZvaWQgKmJ1ZjsKKworCWlmICgh Y3Z0LT5zcmMuc2xvd19yZWFkcykKKwkJcmV0dXJuIGN2dC0+c3JjLnB0cjsKKworCS8qCisJICog UmVhZGluZyBmcm9tIHRoZSBCTyBpcyBhd2Z1bGx5IHNsb3cgYmVjYXVzZSBvZiBsYWNrIG9mIHJl YWQgY2FjaGluZywKKwkgKiBpdCdzIGZhc3RlciB0byBjb3B5IHRoZSB3aG9sZSBCTyB0byBhIHRl bXBvcmFyeSBidWZmZXIgYW5kIGNvbnZlcnQKKwkgKiBmcm9tIHRoZXJlLgorCSAqLworCWJ1ZiA9 IG1hbGxvYyhjdnQtPnNyYy5mYi0+c2l6ZSk7CisJaWYgKCFidWYpCisJCXJldHVybiBjdnQtPnNy Yy5wdHI7CisKKwlpZ3RfbWVtY3B5X2Zyb21fd2MoYnVmLCBjdnQtPnNyYy5wdHIsIGN2dC0+c3Jj LmZiLT5zaXplKTsKKworCXJldHVybiBidWY7Cit9CisKK3N0YXRpYyB2b2lkIGNvbnZlcnRfc3Jj X3B1dChjb25zdCBzdHJ1Y3QgZmJfY29udmVydCAqY3Z0LAorCQkJICAgIHZvaWQgKnNyY19idWYp Cit7CisJaWYgKHNyY19idWYgIT0gY3Z0LT5zcmMucHRyKQorCQlmcmVlKHNyY19idWYpOworfQor CiBzdGF0aWMgdm9pZCBjb252ZXJ0X252MTJfdG9fcmdiMjQoc3RydWN0IGZiX2NvbnZlcnQgKmN2 dCkKIHsKIAlpbnQgaSwgajsKQEAgLTE1MjAsMTkgKzE1NDksMTQgQEAgc3RhdGljIHZvaWQgY29u dmVydF9udjEyX3RvX3JnYjI0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJdWludDhfdCAqcmdi MjQgPSBjdnQtPmRzdC5wdHI7CiAJdW5zaWduZWQgaW50IHJnYjI0X3N0cmlkZSA9IGN2dC0+ZHN0 LmZiLT5zdHJpZGVzWzBdOwogCXVuc2lnbmVkIGludCBwbGFuYXJfc3RyaWRlID0gY3Z0LT5zcmMu ZmItPnN0cmlkZXNbMF07Ci0JdWludDhfdCAqYnVmID0gbWFsbG9jKGN2dC0+c3JjLmZiLT5zaXpl KTsKIAlzdHJ1Y3QgaWd0X21hdDQgbSA9IGlndF95Y2Jjcl90b19yZ2JfbWF0cml4KGN2dC0+c3Jj LmZiLT5jb2xvcl9lbmNvZGluZywKIAkJCQkJCSAgICBjdnQtPnNyYy5mYi0+Y29sb3JfcmFuZ2Up OworCXVpbnQ4X3QgKmJ1ZjsKIAogCWlndF9hc3NlcnQoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQg PT0gRFJNX0ZPUk1BVF9OVjEyICYmCiAJCSAgIGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09IERS TV9GT1JNQVRfWFJHQjg4ODgpOwogCi0JLyoKLQkgKiBSZWFkaW5nIGZyb20gdGhlIEJPIGlzIGF3 ZnVsbHkgc2xvdyBiZWNhdXNlIG9mIGxhY2sgb2YgcmVhZCBjYWNoaW5nLAotCSAqIGl0J3MgZmFz dGVyIHRvIGNvcHkgdGhlIHdob2xlIEJPIHRvIGEgdGVtcG9yYXJ5IGJ1ZmZlciBhbmQgY29udmVy dAotCSAqIGZyb20gdGhlcmUuCi0JICovCi0JaWd0X21lbWNweV9mcm9tX3djKGJ1ZiwgY3Z0LT5z cmMucHRyLCBjdnQtPnNyYy5mYi0+c2l6ZSk7CisJYnVmID0gY29udmVydF9zcmNfZ2V0KGN2dCk7 CiAJeSA9IGJ1ZiArIGN2dC0+c3JjLmZiLT5vZmZzZXRzWzBdOwogCXV2ID0gYnVmICsgY3Z0LT5z cmMuZmItPm9mZnNldHNbMV07CiAKQEAgLTE2MjIsNyArMTY0Niw3IEBAIHN0YXRpYyB2b2lkIGNv bnZlcnRfbnYxMl90b19yZ2IyNChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQogCQl9CiAJfQogCi0J ZnJlZShidWYpOworCWNvbnZlcnRfc3JjX3B1dChjdnQsIGJ1Zik7CiB9CiAKIHN0YXRpYyB2b2lk IGNvbnZlcnRfcmdiMjRfdG9fbnYxMihzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQpAQCAtMTc2MCwx MCArMTc4NCwxMCBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0X3l1eXZfdG9fcmdiMjQoc3RydWN0IGZi X2NvbnZlcnQgKmN2dCkKIAl1aW50OF90ICpyZ2IyNCA9IGN2dC0+ZHN0LnB0cjsKIAl1bnNpZ25l ZCBpbnQgcmdiMjRfc3RyaWRlID0gY3Z0LT5kc3QuZmItPnN0cmlkZXNbMF07CiAJdW5zaWduZWQg aW50IHl1eXZfc3RyaWRlID0gY3Z0LT5zcmMuZmItPnN0cmlkZXNbMF07Ci0JdWludDhfdCAqYnVm ID0gbWFsbG9jKGN2dC0+c3JjLmZiLT5zaXplKTsKIAlzdHJ1Y3QgaWd0X21hdDQgbSA9IGlndF95 Y2Jjcl90b19yZ2JfbWF0cml4KGN2dC0+c3JjLmZiLT5jb2xvcl9lbmNvZGluZywKIAkJCQkJCSAg ICBjdnQtPnNyYy5mYi0+Y29sb3JfcmFuZ2UpOwogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnN3eiA9 IHl1eXZfc3dpenpsZShjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCk7CisJdWludDhfdCAqYnVmOwog CiAJaWd0X2Fzc2VydCgoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVVlW IHx8CiAJCSAgICBjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1VZVlkgfHwK QEAgLTE3NzEsMTIgKzE3OTUsNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0X3l1eXZfdG9fcmdiMjQo c3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKIAkJICAgIGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09 IERSTV9GT1JNQVRfVllVWSkgJiYKIAkJICAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQgPT0gRFJN X0ZPUk1BVF9YUkdCODg4OCk7CiAKLQkvKgotCSAqIFJlYWRpbmcgZnJvbSB0aGUgQk8gaXMgYXdm dWxseSBzbG93IGJlY2F1c2Ugb2YgbGFjayBvZiByZWFkIGNhY2hpbmcsCi0JICogaXQncyBmYXN0 ZXIgdG8gY29weSB0aGUgd2hvbGUgQk8gdG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBjb252ZXJ0 Ci0JICogZnJvbSB0aGVyZS4KLQkgKi8KLQlpZ3RfbWVtY3B5X2Zyb21fd2MoYnVmLCBjdnQtPnNy Yy5wdHIsIGN2dC0+c3JjLmZiLT5zaXplKTsKKwlidWYgPSBjb252ZXJ0X3NyY19nZXQoY3Z0KTsK IAl5dXl2ID0gYnVmOwogCiAJZm9yIChpID0gMDsgaSA8IGN2dC0+ZHN0LmZiLT5oZWlnaHQ7IGkr KykgewpAQCAtMTgxNiw3ICsxODM1LDcgQEAgc3RhdGljIHZvaWQgY29udmVydF95dXl2X3RvX3Jn YjI0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJCXl1eXYgKz0geXV5dl9zdHJpZGU7CiAJfQog Ci0JZnJlZShidWYpOworCWNvbnZlcnRfc3JjX3B1dChjdnQsIGJ1Zik7CiB9CiAKIHN0YXRpYyB2 b2lkIGNvbnZlcnRfcmdiMjRfdG9feXV5dihzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQpAQCAtMTg3 NywxNCArMTg5NiwxNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0X3BpeG1hbihzdHJ1Y3QgZmJfY29u dmVydCAqY3Z0KQogCXBpeG1hbl9mb3JtYXRfY29kZV90IHNyY19waXhtYW4gPSBkcm1fZm9ybWF0 X3RvX3BpeG1hbihjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCk7CiAJcGl4bWFuX2Zvcm1hdF9jb2Rl X3QgZHN0X3BpeG1hbiA9IGRybV9mb3JtYXRfdG9fcGl4bWFuKGN2dC0+ZHN0LmZiLT5kcm1fZm9y bWF0KTsKIAlwaXhtYW5faW1hZ2VfdCAqZHN0X2ltYWdlLCAqc3JjX2ltYWdlOworCXZvaWQgKnNy Y19wdHI7CiAKIAlpZ3RfYXNzZXJ0KChzcmNfcGl4bWFuICE9IFBJWE1BTl9pbnZhbGlkKSAmJgog CQkgICAoZHN0X3BpeG1hbiAhPSBQSVhNQU5faW52YWxpZCkpOwogCisJc3JjX3B0ciA9IGNvbnZl cnRfc3JjX2dldChjdnQpOworCiAJc3JjX2ltYWdlID0gcGl4bWFuX2ltYWdlX2NyZWF0ZV9iaXRz KHNyY19waXhtYW4sCiAJCQkJCSAgICAgY3Z0LT5zcmMuZmItPndpZHRoLAogCQkJCQkgICAgIGN2 dC0+c3JjLmZiLT5oZWlnaHQsCi0JCQkJCSAgICAgY3Z0LT5zcmMucHRyLAorCQkJCQkgICAgIHNy Y19wdHIsCiAJCQkJCSAgICAgY3Z0LT5zcmMuZmItPnN0cmlkZXNbMF0pOwogCWlndF9hc3NlcnQo c3JjX2ltYWdlKTsKIApAQCAtMTkwMCw2ICsxOTIyLDggQEAgc3RhdGljIHZvaWQgY29udmVydF9w aXhtYW4oc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKIAkJCSAgICAgICBjdnQtPmRzdC5mYi0+d2lk dGgsIGN2dC0+ZHN0LmZiLT5oZWlnaHQpOwogCXBpeG1hbl9pbWFnZV91bnJlZihkc3RfaW1hZ2Up OwogCXBpeG1hbl9pbWFnZV91bnJlZihzcmNfaW1hZ2UpOworCisJY29udmVydF9zcmNfcHV0KGN2 dCwgc3JjX3B0cik7CiB9CiAKIHN0YXRpYyB2b2lkIGZiX2NvbnZlcnQoc3RydWN0IGZiX2NvbnZl cnQgKmN2dCkKQEAgLTE5OTEsNiArMjAxNSw5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9jYWlyb19z dXJmYWNlX19jb252ZXJ0KGludCBmZCwgc3RydWN0IGlndF9mYiAqZmIpCiAJCWJsaXQtPmJhc2Uu bGluZWFyLmZiLmdlbV9oYW5kbGUgPSAwOwogCQlibGl0LT5iYXNlLmxpbmVhci5tYXAgPSBtYXBf Ym8oZmQsIGZiKTsKIAkJaWd0X2Fzc2VydChibGl0LT5iYXNlLmxpbmVhci5tYXApOworCisJCS8q IHJlYWRpbmcgdmlhIGd0dCBtbWFwIGlzIHNsb3cgKi8KKwkJY3Z0LnNyYy5zbG93X3JlYWRzID0g aXNfaTkxNV9kZXZpY2UoZmQpOwogCX0KIAogCWN2dC5kc3QucHRyID0gYmxpdC0+c2hhZG93X3B0 cjsKLS0gCjIuMTguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==