From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH igt 2/7] igt/gem_workarounds: Read the workaround registers from the active context Date: Fri, 29 Sep 2017 16:26:37 +0100 Message-ID: <20170929152642.24764-2-chris@chris-wilson.co.uk> References: <20170929152642.24764-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id C3B2C6EB76 for ; Fri, 29 Sep 2017 15:26:55 +0000 (UTC) In-Reply-To: <20170929152642.24764-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIHdvcmthcm91bmRzIGFyZSBvbmx5IHZhbGlkIHdoaWxzdCB0aGUgR1BVIGlzIGFjdGl2ZS4g VG8gYmUgc3VyZSB3ZQphcmUgcmVhZGluZyB0aGUgcmVnaXN0ZXJzIGluIHRoZSByaWdodCBzdGF0 ZSwgaXNzdWUgdGhlIHJlYWRzIGZyb20gdGhlIEdQVS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIHRlc3RzL2dlbV93b3JrYXJvdW5k cy5jIHwgMTM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rlc3RzL2dlbV93b3JrYXJvdW5kcy5jIGIvdGVzdHMvZ2VtX3dvcmthcm91bmRz LmMKaW5kZXggNWUzMGE3YjguLjA3NGZmYzBjIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fd29ya2Fy b3VuZHMuYworKysgYi90ZXN0cy9nZW1fd29ya2Fyb3VuZHMuYwpAQCAtNjEsMjAgKzYxLDYgQEAg c3RhdGljIHN0cnVjdCB3cml0ZV9vbmx5X2xpc3Qgewogc3RhdGljIHN0cnVjdCBpbnRlbF93YV9y ZWcgKndhX3JlZ3M7CiBzdGF0aWMgaW50IG51bV93YV9yZWdzOwogCi1zdGF0aWMgdm9pZCB3YWl0 X2dwdSh2b2lkKQotewotCWludCBmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwot CWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKLQljbG9zZShmZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHRl c3RfaGFuZ19ncHUodm9pZCkKLXsKLQlpbnQgZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lO VEVMKTsKLQlpZ3RfcG9zdF9oYW5nX3JpbmcoZmQsIGlndF9oYW5nX3JpbmcoZmQsIEk5MTVfRVhF Q19ERUZBVUxUKSk7Ci0JY2xvc2UoZmQpOwotfQotCiBzdGF0aWMgdm9pZCB0ZXN0X3N1c3BlbmRf cmVzdW1lKHZvaWQpCiB7CiAJaWd0X2luZm8oIlN1c3BlbmRpbmcgdGhlIGRldmljZSAuLi5cbiIp OwpAQCAtOTYsNDkgKzgyLDk3IEBAIHN0YXRpYyBib29sIHdyaXRlX29ubHkoY29uc3QgdWludDMy X3QgYWRkcikKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBpbnQgd29ya2Fyb3VuZF9mYWls X2NvdW50KHZvaWQpCisjZGVmaW5lIE1JX1NUT1JFX1JFR0lTVEVSX01FTSAoMHgyNCA8PCAyMykK Kworc3RhdGljIGludCB3b3JrYXJvdW5kX2ZhaWxfY291bnQoaW50IGZkKQogewotCWludCBpLCBm YWlsX2NvdW50ID0gMDsKKwljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1f ZGV2aWQoZmQpKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl07CisJ c3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5ICpyZWxvYzsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7CisJdWludDMyX3QgcmVzdWx0X3N6LCBiYXRj aF9zejsKKwl1aW50MzJfdCAqYmFzZSwgKm91dDsKKwlpbnQgZmFpbF9jb3VudCA9IDA7CisKKwly ZWxvYyA9IGNhbGxvYyhudW1fd2FfcmVncywgc2l6ZW9mKCpyZWxvYykpOworCWlndF9hc3NlcnQo cmVsb2MpOworCisJcmVzdWx0X3N6ID0gNCAqIG51bV93YV9yZWdzOworCXJlc3VsdF9zeiA9IChy ZXN1bHRfc3ogKyA0MDk1KSAmIC00MDk2OworCisJYmF0Y2hfc3ogPSAxNiAqIG51bV93YV9yZWdz OworCWJhdGNoX3N6ID0gKGJhdGNoX3N6ICsgNCArIDQwOTUpICYgLTQwOTY7CisKKwltZW1zZXQo b2JqLCAwLCBzaXplb2Yob2JqKSk7CisJb2JqWzBdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIHJl c3VsdF9zeik7CisJZ2VtX3NldF9jYWNoaW5nKGZkLCBvYmpbMF0uaGFuZGxlLCAxKTsKKwlvYmpb MV0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgYmF0Y2hfc3opOworCW9ialsxXS5yZWxvY3NfcHRy ID0gdG9fdXNlcl9wb2ludGVyKHJlbG9jKTsKKwlvYmpbMV0ucmVsb2NhdGlvbl9jb3VudCA9IG51 bV93YV9yZWdzOworCisJb3V0ID0gYmFzZSA9IGdlbV9tbWFwX19jcHUoZmQsIG9ialsxXS5oYW5k bGUsIDAsIGJhdGNoX3N6LCBQUk9UX1dSSVRFKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bV93 YV9yZWdzOyBpKyspIHsKKwkJKm91dCsrID0gTUlfU1RPUkVfUkVHSVNURVJfTUVNIHwgKChnZW4g Pj0gOCA/IDQgOiAyKSAtIDIpOworCQkqb3V0KysgPSB3YV9yZWdzW2ldLmFkZHI7CisJCXJlbG9j W2ldLnRhcmdldF9oYW5kbGUgPSBvYmpbMF0uaGFuZGxlOworCQlyZWxvY1tpXS5vZmZzZXQgPSAo b3V0IC0gYmFzZSkgKiBzaXplb2YoKm91dCk7CisJCXJlbG9jW2ldLmRlbHRhID0gaSAqIHNpemVv Zih1aW50MzJfdCk7CisJCXJlbG9jW2ldLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9J TlNUUlVDVElPTjsKKwkJcmVsb2NbaV0ud3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX0lO U1RSVUNUSU9OOworCQkqb3V0KysgPSByZWxvY1tpXS5kZWx0YTsKKwkJaWYgKGdlbiA+PSA4KQor CQkJKm91dCsrID0gMDsKKwl9CisJKm91dCsrID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKKwltdW5t YXAoYmFzZSwgYmF0Y2hfc3opOworCisJbWVtc2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1 ZikpOworCWV4ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIob2JqKTsKKwlleGVj YnVmLmJ1ZmZlcl9jb3VudCA9IDI7CisJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAotCS8q IFRoZXJlIGlzIGEgc21hbGwgZGVsYXkgYWZ0ZXIgY29taW5nIG90IG9mIHJjNiB0byB0aGUgY29y cmVjdAotCSAgIHJlbmRlciBjb250ZXh0IHZhbHVlcyB3aWxsIGdldCBsb2FkZWQgYnkgaGFyZHdh cmUgKGJkdyxjaHYpLgotCSAgIFRoaXMgaGVyZSBlbnN1cmVzIHRoYXQgd2UgaGF2ZSB0aGUgY29y cmVjdCBjb250ZXh0IGxvYWRlZCBiZWZvcmUKLQkgICB3ZSBzdGFydCB0byByZWFkIHZhbHVlcyAq LwotCXdhaXRfZ3B1KCk7CisJZ2VtX3NldF9kb21haW4oZmQsIG9ialswXS5oYW5kbGUsIEk5MTVf R0VNX0RPTUFJTl9DUFUsIDApOwogCiAJaWd0X2RlYnVnKCJBZGRyZXNzXHR2YWxcdFx0bWFza1x0 XHRyZWFkXHRcdHJlc3VsdFxuIik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3dhX3JlZ3M7ICsr aSkgewotCQljb25zdCB1aW50MzJfdCB2YWwgPSBpbnRlbF9yZWdpc3Rlcl9yZWFkKHdhX3JlZ3Nb aV0uYWRkcik7Ci0JCWNvbnN0IGJvb2wgb2sgPSAod2FfcmVnc1tpXS52YWx1ZSAmIHdhX3JlZ3Nb aV0ubWFzaykgPT0KLQkJCSh2YWwgJiB3YV9yZWdzW2ldLm1hc2spOworCW91dCA9IGdlbV9tbWFw X19jcHUoZmQsIG9ialswXS5oYW5kbGUsIDAsIHJlc3VsdF9zeiwgUFJPVF9SRUFEKTsKKwlmb3Ig KGludCBpID0gMDsgaSA8IG51bV93YV9yZWdzOyBpKyspIHsKKwkJY29uc3QgYm9vbCBvayA9CisJ CQkod2FfcmVnc1tpXS52YWx1ZSAmIHdhX3JlZ3NbaV0ubWFzaykgPT0KKwkJCShvdXRbaV0gJiB3 YV9yZWdzW2ldLm1hc2spOworCQljaGFyIGJ1Zls4MF07CiAKLQkJaWd0X2RlYnVnKCIweCUwNVhc dDB4JTA4WFx0MHglMDhYXHQweCUwOFhcdCVzXG4iLAotCQkJICB3YV9yZWdzW2ldLmFkZHIsIHdh X3JlZ3NbaV0udmFsdWUsIHdhX3JlZ3NbaV0ubWFzaywKLQkJCSAgdmFsLCBvayA/ICJPSyIgOiAi RkFJTCIpOworCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLAorCQkJICIweCUwNVhcdDB4JTA4 WFx0MHglMDhYXHQweCUwOFgiLAorCQkJIHdhX3JlZ3NbaV0uYWRkciwgd2FfcmVnc1tpXS52YWx1 ZSwgd2FfcmVnc1tpXS5tYXNrLAorCQkJIG91dFtpXSk7CiAKIAkJaWYgKHdyaXRlX29ubHkod2Ff cmVnc1tpXS5hZGRyKSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmICghb2spIHsKLQkJCWlndF93YXJu KCIweCUwNVhcdDB4JTA4WFx0MHglMDhYXHQweCUwOFhcdCVzXG4iLAotCQkJCSB3YV9yZWdzW2ld LmFkZHIsIHdhX3JlZ3NbaV0udmFsdWUsCi0JCQkJIHdhX3JlZ3NbaV0ubWFzaywKLQkJCQkgdmFs LCBvayA/ICJPSyIgOiAiRkFJTCIpOworCQkJaWd0X3dhcm4oIiVzXHRGQUlMXG4iLCBidWYpOwog CQkJZmFpbF9jb3VudCsrOworCQl9IGVsc2UgeworCQkJaWd0X2RlYnVnKCIlc1x0T0tcbiIsIGJ1 Zik7CiAJCX0KIAl9CisJbXVubWFwKG91dCwgcmVzdWx0X3N6KTsKKworCWdlbV9jbG9zZShmZCwg b2JqWzFdLmhhbmRsZSk7CisJZ2VtX2Nsb3NlKGZkLCBvYmpbMF0uaGFuZGxlKTsKKwlmcmVlKHJl bG9jKTsKIAogCXJldHVybiBmYWlsX2NvdW50OwogfQogCi1zdGF0aWMgdm9pZCBjaGVja193b3Jr YXJvdW5kcyhlbnVtIG9wZXJhdGlvbiBvcCkKK3N0YXRpYyB2b2lkIGNoZWNrX3dvcmthcm91bmRz KGludCBmZCwgZW51bSBvcGVyYXRpb24gb3ApCiB7Ci0JaWd0X2Fzc2VydF9lcSh3b3JrYXJvdW5k X2ZhaWxfY291bnQoKSwgMCk7CisJaWd0X2Fzc2VydF9lcSh3b3JrYXJvdW5kX2ZhaWxfY291bnQo ZmQpLCAwKTsKIAogCXN3aXRjaCAob3ApIHsKIAljYXNlIEdQVV9SRVNFVDoKLQkJdGVzdF9oYW5n X2dwdSgpOworCQlpZ3RfZm9yY2VfZ3B1X3Jlc2V0KGZkKTsKIAkJYnJlYWs7CiAKIAljYXNlIFNV U1BFTkRfUkVTVU1FOgpAQCAtMTUyLDQwICsxODYsMzAgQEAgc3RhdGljIHZvaWQgY2hlY2tfd29y a2Fyb3VuZHMoZW51bSBvcGVyYXRpb24gb3ApCiAJCWlndF9hc3NlcnQoMCk7CiAJfQogCi0JaWd0 X2Fzc2VydF9lcSh3b3JrYXJvdW5kX2ZhaWxfY291bnQoKSwgMCk7CisJaWd0X2Fzc2VydF9lcSh3 b3JrYXJvdW5kX2ZhaWxfY291bnQoZmQpLCAwKTsKIH0KIAogaWd0X21haW4KIHsKKwlpbnQgZGV2 aWNlID0gLTE7CisKIAlpZ3RfZml4dHVyZSB7Ci0JCWludCBkZXZpY2UgPSBkcm1fb3Blbl9kcml2 ZXJfbWFzdGVyKERSSVZFUl9JTlRFTCk7Ci0JCXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2Owog CQlGSUxFICpmaWxlOwogCQljaGFyICpsaW5lID0gTlVMTDsKIAkJc2l6ZV90IGxpbmVfc2l6ZTsK IAkJaW50IGksIGZkOwogCisJCWRldmljZSA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwp OwogCQlpZ3RfcmVxdWlyZV9nZW0oZGV2aWNlKTsKIAogCQlnZW4gPSBpbnRlbF9nZW4oaW50ZWxf Z2V0X2RybV9kZXZpZChkZXZpY2UpKTsKIAotCQlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZp Y2UoKTsKLQkJaWd0X3JlcXVpcmUocGNpX2Rldik7Ci0KLQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2luaXQocGNpX2RldiwgMCwgZGV2aWNlKTsKLQogCQlmZCA9IGlndF9kZWJ1Z2ZzX29wZW4oZGV2 aWNlLCAiaTkxNV93YV9yZWdpc3RlcnMiLCBPX1JET05MWSk7CiAJCWZpbGUgPSBmZG9wZW4oZmQs ICJyIik7CiAJCWlndF9hc3NlcnQoZ2V0bGluZSgmbGluZSwgJmxpbmVfc2l6ZSwgZmlsZSkgPiAw KTsKIAkJaWd0X2RlYnVnKCJpOTE1X3dhX3JlZ2lzdGVyczogJXMiLCBsaW5lKTsKIAkJc3NjYW5m KGxpbmUsICJXb3JrYXJvdW5kcyBhcHBsaWVkOiAlZCIsICZudW1fd2FfcmVncyk7Ci0KLQkJLyog Rm9yIG5ld2VyIGdlbnMsIHRoZSBscmkgd2EgbGlzdCBoYXMgYWx3YXlzIHNvbWV0aGluZy4KLQkJ ICogSWYgaXQgZG9lc24ndCwgZ28gYW5kIGFkZCBvbmUuICovCi0JCWlmIChnZW4gPj0gOCkKLQkJ CWlndF9hc3NlcnRfbHQoMCwgbnVtX3dhX3JlZ3MpOwotCQllbHNlCi0JCQlpZ3RfYXNzZXJ0X2x0 ZSgwLCBudW1fd2FfcmVncyk7CisJCWlndF9yZXF1aXJlKG51bV93YV9yZWdzID4gMCk7CiAKIAkJ d2FfcmVncyA9IG1hbGxvYyhudW1fd2FfcmVncyAqIHNpemVvZigqd2FfcmVncykpOwogCQlpZ3Rf YXNzZXJ0KHdhX3JlZ3MpOwpAQCAtMjA1LDIxICsyMjksMTQgQEAgaWd0X21haW4KIAkJZnJlZShs aW5lKTsKIAkJZmNsb3NlKGZpbGUpOwogCQljbG9zZShmZCk7Ci0JCWNsb3NlKGRldmljZSk7CiAJ fQogCiAJaWd0X3N1YnRlc3QoImJhc2ljLXJlYWQiKQotCQljaGVja193b3JrYXJvdW5kcyhTSU1Q TEVfUkVBRCk7CisJCWNoZWNrX3dvcmthcm91bmRzKGRldmljZSwgU0lNUExFX1JFQUQpOwogCiAJ aWd0X3N1YnRlc3QoInJlc2V0IikKLQkJY2hlY2tfd29ya2Fyb3VuZHMoR1BVX1JFU0VUKTsKKwkJ Y2hlY2tfd29ya2Fyb3VuZHMoZGV2aWNlLCBHUFVfUkVTRVQpOwogCiAJaWd0X3N1YnRlc3QoInN1 c3BlbmQtcmVzdW1lIikKLQkJY2hlY2tfd29ya2Fyb3VuZHMoU1VTUEVORF9SRVNVTUUpOwotCi0J aWd0X2ZpeHR1cmUgewotCQlmcmVlKHdhX3JlZ3MpOwotCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3Nf ZmluaSgpOwotCX0KLQorCQljaGVja193b3JrYXJvdW5kcyhkZXZpY2UsIFNVU1BFTkRfUkVTVU1F KTsKIH0KLS0gCjIuMTQuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==