From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v3] drm/i915: Add unit tests for the breadcrumb rbtree, wakeups Date: Wed, 1 Feb 2017 13:19:06 +0000 Message-ID: <20170201131906.7795-1-chris@chris-wilson.co.uk> References: <8855527e-f275-1e9d-3766-ca6aa8df079c@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 01DAF6E7D3 for ; Wed, 1 Feb 2017 13:19:10 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id u63so5728337wmu.2 for ; Wed, 01 Feb 2017 05:19:09 -0800 (PST) In-Reply-To: <8855527e-f275-1e9d-3766-ca6aa8df079c@linux.intel.com> 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 VGhpcmQgcmV0cm9hY3RpdmUgdGVzdCwgbWFrZSBzdXJlIHRoYXQgdGhlIHNlcW5vIHdhaXRlcnMg YXJlIHdva2VuLgoKdjI6IFNtYXR0ZXJpbmcgb2YgY29tbWVudHMsIHJlYXJyYW5nZSBjb2RlCgpT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfYnJlYWRjcnVtYnMuYyB8IDIw MiArKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9icmVh ZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2JyZWFkY3J1 bWJzLmMKaW5kZXggMjQ1ZTVmMWI4MzczLi45MDc1MDM5MDE2NDQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9icmVhZGNydW1icy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9icmVhZGNydW1icy5jCkBAIC0yNjMsMTEg KzI2MywyMTMgQEAgc3RhdGljIGludCBpZ3RfaW5zZXJ0X2NvbXBsZXRlKHZvaWQgKmFyZykKIAly ZXR1cm4gZXJyOwogfQogCitzdHJ1Y3QgaWd0X3dha2V1cCB7CisJc3RydWN0IHRhc2tfc3RydWN0 ICp0c2s7CisJYXRvbWljX3QgKnJlYWR5LCAqc2V0LCAqZG9uZTsKKwlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKyNkZWZpbmUgU1RPUCAwCisj ZGVmaW5lIFdBSVRJTkcgMQorCXdhaXRfcXVldWVfaGVhZF90ICp3cTsKKwl1MzIgc2Vxbm87Cit9 OworCitzdGF0aWMgaW50IHdhaXRfYXRvbWljKGF0b21pY190ICpwKQoreworCXNjaGVkdWxlKCk7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd2FpdF9hdG9taWNfdGltZW91dChhdG9taWNf dCAqcCkKK3sKKwlyZXR1cm4gc2NoZWR1bGVfdGltZW91dCgxMCAqIEhaKSA/IDAgOiAtRVRJTUVE T1VUOworfQorCitzdGF0aWMgYm9vbCB3YWl0X2Zvcl9yZWFkeShzdHJ1Y3QgaWd0X3dha2V1cCAq dykKK3sKKwlERUZJTkVfV0FJVChyZWFkeSk7CisKKwlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCh3 LT5kb25lKSkKKwkJd2FrZV91cF9hdG9taWNfdCh3LT5kb25lKTsKKworCWlmICh0ZXN0X2JpdChT VE9QLCAmdy0+ZmxhZ3MpKQorCQlnb3RvIG91dDsKKworCXNldF9iaXQoV0FJVElORywgJnctPmZs YWdzKTsKKwlmb3IgKDs7KSB7CisJCXByZXBhcmVfdG9fd2FpdCh3LT53cSwgJnJlYWR5LCBUQVNL X0lOVEVSUlVQVElCTEUpOworCQlpZiAoYXRvbWljX3JlYWQody0+cmVhZHkpID09IDApCisJCQli cmVhazsKKworCQlzY2hlZHVsZSgpOworCX0KKwlmaW5pc2hfd2FpdCh3LT53cSwgJnJlYWR5KTsK KwljbGVhcl9iaXQoV0FJVElORywgJnctPmZsYWdzKTsKKworb3V0OgorCWlmIChhdG9taWNfZGVj X2FuZF90ZXN0KHctPnNldCkpCisJCXdha2VfdXBfYXRvbWljX3Qody0+c2V0KTsKKworCXJldHVy biAhdGVzdF9iaXQoU1RPUCwgJnctPmZsYWdzKTsKK30KKworc3RhdGljIGludCBpZ3Rfd2FrZXVw X3RocmVhZCh2b2lkICphcmcpCit7CisJc3RydWN0IGlndF93YWtldXAgKncgPSBhcmc7CisJc3Ry dWN0IGludGVsX3dhaXQgd2FpdDsKKworCXdoaWxlICh3YWl0X2Zvcl9yZWFkeSh3KSkgeworCQlH RU1fQlVHX09OKGt0aHJlYWRfc2hvdWxkX3N0b3AoKSk7CisKKwkJaW50ZWxfd2FpdF9pbml0KCZ3 YWl0LCB3LT5zZXFubyk7CisJCWludGVsX2VuZ2luZV9hZGRfd2FpdCh3LT5lbmdpbmUsICZ3YWl0 KTsKKwkJZm9yICg7OykgeworCQkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19VTklOVEVSUlVQVElC TEUpOworCQkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKGludGVsX2VuZ2luZV9nZXRfc2Vxbm8ody0+ ZW5naW5lKSwKKwkJCQkJICAgICAgdy0+c2Vxbm8pKQorCQkJCWJyZWFrOworCisJCQlpZiAodGVz dF9iaXQoU1RPUCwgJnctPmZsYWdzKSkgLyogZW1lcmdlbmN5IGVzY2FwZSAqLworCQkJCWJyZWFr OworCisJCQlzY2hlZHVsZSgpOworCQl9CisJCWludGVsX2VuZ2luZV9yZW1vdmVfd2FpdCh3LT5l bmdpbmUsICZ3YWl0KTsKKwkJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOworCX0K KworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBpZ3Rfd2FrZV9hbGxfc3luYyhhdG9taWNf dCAqcmVhZHksCisJCQkgICAgICBhdG9taWNfdCAqc2V0LAorCQkJICAgICAgYXRvbWljX3QgKmRv bmUsCisJCQkgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCAqd3EsCisJCQkgICAgICBpbnQgY291bnQp Cit7CisJYXRvbWljX3NldChzZXQsIGNvdW50KTsKKwlhdG9taWNfc2V0KGRvbmUsIGNvdW50KTsK KworCWF0b21pY19zZXQocmVhZHksIDApOworCXdha2VfdXBfYWxsKHdxKTsKKworCXdhaXRfb25f YXRvbWljX3Qoc2V0LCB3YWl0X2F0b21pYywgVEFTS19VTklOVEVSUlVQVElCTEUpOworCWF0b21p Y19zZXQocmVhZHksIGNvdW50KTsKK30KKworc3RhdGljIGludCBpZ3Rfd2FrZXVwKHZvaWQgKmFy ZykKK3sKKwlJOTE1X1JORF9TVEFURShwcm5nKTsKKwljb25zdCBpbnQgc3RhdGUgPSBUQVNLX1VO SU5URVJSVVBUSUJMRTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBhcmc7CisJ c3RydWN0IGlndF93YWtldXAgKndhaXRlcnM7CisJREVDTEFSRV9XQUlUX1FVRVVFX0hFQURfT05T VEFDSyh3cSk7CisJY29uc3QgaW50IGNvdW50ID0gNDA5NjsKKwljb25zdCB1MzIgbWF4X3NlcW5v ID0gY291bnQgLyA0OworCWF0b21pY190IHJlYWR5LCBzZXQsIGRvbmU7CisJaW50IGVyciA9IC1F Tk9NRU07CisJaW50IG4sIHN0ZXA7CisKKwltb2NrX2VuZ2luZV9yZXNldChlbmdpbmUpOworCisJ d2FpdGVycyA9IGRybV9tYWxsb2NfZ2ZwKGNvdW50LCBzaXplb2YoKndhaXRlcnMpLCBHRlBfVEVN UE9SQVJZKTsKKwlpZiAoIXdhaXRlcnMpCisJCWdvdG8gb3V0X2VuZ2luZXM7CisKKwkvKiBDcmVh dGUgYSBsYXJnZSBudW1iZXIgb2YgdGhyZWFkcywgZWFjaCB3YWl0aW5nIG9uIGEgcmFuZG9tIHNl cW5vLgorCSAqIE11bHRpcGxlIHdhaXRlcnMgd2lsbCBiZSB3YWl0aW5nIGZvciB0aGUgc2FtZSBz ZXFuby4KKwkgKi8KKwlhdG9taWNfc2V0KCZyZWFkeSwgY291bnQpOworCWZvciAobiA9IDA7IG4g PCBjb3VudDsgbisrKSB7CisJCXdhaXRlcnNbbl0ud3EgPSAmd3E7CisJCXdhaXRlcnNbbl0ucmVh ZHkgPSAmcmVhZHk7CisJCXdhaXRlcnNbbl0uc2V0ID0gJnNldDsKKwkJd2FpdGVyc1tuXS5kb25l ID0gJmRvbmU7CisJCXdhaXRlcnNbbl0uZW5naW5lID0gZW5naW5lOworCQl3YWl0ZXJzW25dLmZs YWdzID0gMDsKKworCQl3YWl0ZXJzW25dLnRzayA9IGt0aHJlYWRfcnVuKGlndF93YWtldXBfdGhy ZWFkLCAmd2FpdGVyc1tuXSwKKwkJCQkJICAgICAiaTkxNS9pZ3Q6JWQiLCBuKTsKKwkJaWYgKElT X0VSUih3YWl0ZXJzW25dLnRzaykpCisJCQlnb3RvIG91dF93YWl0ZXJzOworCisJCWdldF90YXNr X3N0cnVjdCh3YWl0ZXJzW25dLnRzayk7CisJfQorCisJZm9yIChzdGVwID0gMTsgc3RlcCA8PSBt YXhfc2Vxbm87IHN0ZXAgPDw9IDEpIHsKKwkJdTMyIHNlcW5vOworCisJCS8qIFRoZSB3YWl0ZXIg dGhyZWFkcyBzdGFydCBwYXVzZWQgYXMgd2UgYXNzaWduIHRoZW0gYSByYW5kb20KKwkJICogc2Vx bm8gYW5kIHJlc2V0IHRoZSBlbmdpbmUuIE9uY2UgdGhlIGVuZ2luZSBpcyByZXNldCwKKwkJICog d2Ugc2lnbmFsIHRoYXQgdGhlIHRocmVhZHMgbWF5IGJlZ2luIHRoZWlyLCBhbmQgd2Ugd2FpdAor CQkgKiB1bnRpbCBhbGwgdGhyZWFkcyBhcmUgd29rZW4uCisJCSAqLworCQlmb3IgKG4gPSAwOyBu IDwgY291bnQ7IG4rKykgeworCQkJR0VNX0JVR19PTighdGVzdF9iaXQoV0FJVElORywgJndhaXRl cnNbbl0uZmxhZ3MpKTsKKwkJCXdhaXRlcnNbbl0uc2Vxbm8gPQorCQkJCTEgKyBwcmFuZG9tX3Uz Ml9zdGF0ZSgmcHJuZykgJSBtYXhfc2Vxbm87CisJCX0KKwkJbW9ja19zZXFub19hZHZhbmNlKGVu Z2luZSwgMCk7CisJCWlndF93YWtlX2FsbF9zeW5jKCZyZWFkeSwgJnNldCwgJmRvbmUsICZ3cSwg Y291bnQpOworCisJCS8qIFNpbXVsYXRlIEdQVSBkb2luZyBjaHVua3Mgb2Ygd29yaywgd2l0aCBv bmUgb3IgbW9yZSBzZXFubworCQkgKiBhcHBlYXJpbmcgdG8gZmluaXNoIGF0IHRoZSBzYW1lIHRp bWUuIEEgcmFuZG9tIG51bWJlciBvZgorCQkgKiB0aHJlYWRzIHdpbGwgYmUgd2FpdGluZyB1cG9u IHRoZSB1cGRhdGUgYW5kIGhvcGVmdWxseSBiZQorCQkgKiB3b2tlbi4KKwkJICovCisJCWZvciAo c2Vxbm8gPSAxOyBzZXFubyA8PSBtYXhfc2Vxbm8gKyBzdGVwOyBzZXFubyArPSBzdGVwKSB7CisJ CQl1c2xlZXBfcmFuZ2UoNTAsIDUwMCk7CisJCQltb2NrX3NlcW5vX2FkdmFuY2UoZW5naW5lLCBz ZXFubyk7CisJCX0KKwkJR0VNX0JVR19PTihpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSkg PCAxICsgbWF4X3NlcW5vKTsKKworCQkvKiBXaXRoIHRoZSBzZXFubyBub3cgYmV5b25kIGFueSBv ZiB0aGUgd2FpdGluZyB0aHJlYWRzLCB0aGV5CisJCSAqIHNob3VsZCBhbGwgYmUgd29rZW4sIHNl ZSB0aGF0IHRoZXkgYXJlIGNvbXBsZXRlIGFuZCBzaWduYWwKKwkJICogdGhhdCB0aGV5IGFyZSBy ZWFkeSBmb3IgdGhlIG5leHQgdGVzdC4gV2Ugd2FpdCB1bnRpbCBhbGwKKwkJICogdGhyZWFkcyBh cmUgd2FpdGluZyBmb3IgdXMgKGFuZCBub3QgYSBzZXFubykgYWdhaW4uCisJCSAqLworCQllcnIg PSB3YWl0X29uX2F0b21pY190KCZkb25lLCB3YWl0X2F0b21pY190aW1lb3V0LCBzdGF0ZSk7CisJ CWlmIChlcnIpIHsKKwkJCXByX2VycigiVGltZWQgb3V0IHdhaXRpbmcgZm9yICVkIHJlbWFpbmlu ZyB3YWl0ZXJzXG4iLAorCQkJICAgICAgIGF0b21pY19yZWFkKCZkb25lKSk7CisJCQlicmVhazsK KwkJfQorCisJCWVyciA9IGNoZWNrX3JidHJlZV9lbXB0eShlbmdpbmUpOworCQlpZiAoZXJyKQor CQkJYnJlYWs7CisJfQorCitvdXRfd2FpdGVyczoKKwltb2NrX3NlcW5vX2FkdmFuY2UoZW5naW5l LCBJTlRfTUFYKTsgLyogd2FrZXVwIGFueSBicm9rZW4gd2FpdGVycyAqLworCWZvciAobiA9IDA7 IG4gPCBjb3VudDsgbisrKSB7CisJCWlmIChJU19FUlIod2FpdGVyc1tuXS50c2spKQorCQkJYnJl YWs7CisKKwkJc2V0X2JpdChTVE9QLCAmd2FpdGVyc1tuXS5mbGFncyk7CisJfQorCWlndF93YWtl X2FsbF9zeW5jKCZyZWFkeSwgJnNldCwgJmRvbmUsICZ3cSwgbik7CisKKwlmb3IgKG4gPSAwOyBu IDwgY291bnQ7IG4rKykgeworCQlpZiAoSVNfRVJSKHdhaXRlcnNbbl0udHNrKSkKKwkJCWJyZWFr OworCisJCWt0aHJlYWRfc3RvcCh3YWl0ZXJzW25dLnRzayk7CisJCXB1dF90YXNrX3N0cnVjdCh3 YWl0ZXJzW25dLnRzayk7CisJfQorCisJZHJtX2ZyZWVfbGFyZ2Uod2FpdGVycyk7CitvdXRfZW5n aW5lczoKKwltb2NrX2VuZ2luZV9mbHVzaChlbmdpbmUpOworCXJldHVybiBlcnI7Cit9CisKIGlu dCBpbnRlbF9icmVhZGNydW1ic19tb2NrX3NlbGZ0ZXN0cyh2b2lkKQogewogCXN0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X3JhbmRvbV9p bnNlcnRfcmVtb3ZlKSwKIAkJU1VCVEVTVChpZ3RfaW5zZXJ0X2NvbXBsZXRlKSwKKwkJU1VCVEVT VChpZ3Rfd2FrZXVwKSwKIAl9OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlp bnQgZXJyOwotLSAKMi4xMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK