From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 06/37] drm/i915: Add unit tests for the breadcrumb rbtree, wakeups Date: Wed, 11 Jan 2017 21:09:06 +0000 Message-ID: <20170111210937.29252-7-chris@chris-wilson.co.uk> References: <20170111210937.29252-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 mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9CE5C6EA20 for ; Wed, 11 Jan 2017 21:09:52 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id r126so796033wmr.3 for ; Wed, 11 Jan 2017 13:09:52 -0800 (PST) In-Reply-To: <20170111210937.29252-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 VGhpcmQgcmV0cm9hY3RpdmUgdGVzdCwgbWFrZSBzdXJlIHRoYXQgdGhlIHNlcW5vIHdhaXRlcnMg YXJlIHdva2VuLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2JyZWFk Y3J1bWJzLmMgfCAxNzEgKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTcx IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaW50ZWxfYnJlYWRjcnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p bnRlbF9icmVhZGNydW1icy5jCmluZGV4IGU5ZGZmNmVlZTMyMy4uYmVlODY0NzBhOTFkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfYnJlYWRjcnVtYnMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfYnJlYWRjcnVtYnMu YwpAQCAtMjYzLDExICsyNjMsMTgyIEBAIHN0YXRpYyBpbnQgaWd0X2luc2VydF9jb21wbGV0ZSh2 b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RydWN0IGlndF93YWtldXAgeworCXN0cnVj dCB0YXNrX3N0cnVjdCAqdHNrOworCWF0b21pY190ICpyZWFkeSwgKnNldCwgKmRvbmU7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJd2Fp dF9xdWV1ZV9oZWFkX3QgKndxOworCXUzMiBzZXFubzsKK307CisKK3N0YXRpYyBpbnQgd2FpdF9h dG9taWMoYXRvbWljX3QgKnApCit7CisJc2NoZWR1bGUoKTsKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGludCB3YWl0X2F0b21pY190aW1lb3V0KGF0b21pY190ICpwKQoreworCXJldHVybiBzY2hl ZHVsZV90aW1lb3V0KDEwICogSFopID8gMCA6IC1FVElNRURPVVQ7Cit9CisKK3N0YXRpYyBpbnQg aWd0X3dha2V1cF90aHJlYWQodm9pZCAqYXJnKQoreworCXN0cnVjdCBpZ3Rfd2FrZXVwICp3ID0g YXJnOworCXN0cnVjdCBpbnRlbF93YWl0IHdhaXQ7CisKKwl3aGlsZSAoIWt0aHJlYWRfc2hvdWxk X3N0b3AoKSkgeworCQlERUZJTkVfV0FJVChyZWFkeSk7CisKKwkJZm9yICg7OykgeworCQkJcHJl cGFyZV90b193YWl0KHctPndxLCAmcmVhZHksIFRBU0tfSU5URVJSVVBUSUJMRSk7CisJCQlpZiAo YXRvbWljX3JlYWQody0+cmVhZHkpID09IDApCisJCQkJYnJlYWs7CisKKwkJCXNjaGVkdWxlKCk7 CisJCX0KKwkJZmluaXNoX3dhaXQody0+d3EsICZyZWFkeSk7CisJCWlmIChhdG9taWNfZGVjX2Fu ZF90ZXN0KHctPnNldCkpCisJCQl3YWtlX3VwX2F0b21pY190KHctPnNldCk7CisKKwkJaWYgKHRl c3RfYml0KDAsICZ3LT5mbGFncykpCisJCQlicmVhazsKKworCQlpbnRlbF93YWl0X2luaXQoJndh aXQsIHctPnNlcW5vKTsKKwkJaW50ZWxfZW5naW5lX2FkZF93YWl0KHctPmVuZ2luZSwgJndhaXQp OworCQlmb3IgKDs7KSB7CisJCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJSVVBUSUJM RSk7CisJCQlpZiAoaTkxNV9zZXFub19wYXNzZWQoaW50ZWxfZW5naW5lX2dldF9zZXFubyh3LT5l bmdpbmUpLAorCQkJCQkgICAgICB3LT5zZXFubykpCisJCQkJYnJlYWs7CisKKwkJCXNjaGVkdWxl KCk7CisJCX0KKwkJaW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KHctPmVuZ2luZSwgJndhaXQpOwor CQlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CisKKwkJaWYgKGF0b21pY19kZWNf YW5kX3Rlc3Qody0+ZG9uZSkpCisJCQl3YWtlX3VwX2F0b21pY190KHctPmRvbmUpOworCX0KKwor CWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KHctPmRvbmUpKQorCQl3YWtlX3VwX2F0b21pY190KHct PmRvbmUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBpZ3Rfd2FrZV9hbGxfc3luYyhh dG9taWNfdCAqcmVhZHksCisJCQkgICAgICBhdG9taWNfdCAqc2V0LAorCQkJICAgICAgYXRvbWlj X3QgKmRvbmUsCisJCQkgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCAqd3EsCisJCQkgICAgICBpbnQg Y291bnQpCit7CisJYXRvbWljX3NldChzZXQsIGNvdW50KTsKKwlhdG9taWNfc2V0KGRvbmUsIGNv dW50KTsKKworCWF0b21pY19zZXQocmVhZHksIDApOworCXdha2VfdXBfYWxsKHdxKTsKKworCXdh aXRfb25fYXRvbWljX3Qoc2V0LCB3YWl0X2F0b21pYywgVEFTS19VTklOVEVSUlVQVElCTEUpOwor CWF0b21pY19zZXQocmVhZHksIGNvdW50KTsKK30KKworc3RhdGljIGludCBpZ3Rfd2FrZXVwKHZv aWQgKmFyZykKK3sKKwljb25zdCBpbnQgc3RhdGUgPSBUQVNLX1VOSU5URVJSVVBUSUJMRTsKKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBhcmc7CisJc3RydWN0IGlndF93YWtldXAg KndhaXRlcnM7CisJREVDTEFSRV9XQUlUX1FVRVVFX0hFQURfT05TVEFDSyh3cSk7CisJY29uc3Qg aW50IGNvdW50ID0gNDA5NjsKKwljb25zdCB1MzIgbWF4X3NlcW5vID0gY291bnQgLyA0OworCWF0 b21pY190IHJlYWR5LCBzZXQsIGRvbmU7CisJaW50IGVyciA9IC1FTk9NRU07CisJaW50IG4sIHN0 ZXA7CisKKwltb2NrX2VuZ2luZV9yZXNldChlbmdpbmUpOworCisJd2FpdGVycyA9IGRybV9tYWxs b2NfZ2ZwKGNvdW50LCBzaXplb2YoKndhaXRlcnMpLCBHRlBfVEVNUE9SQVJZKTsKKwlpZiAoIXdh aXRlcnMpCisJCWdvdG8gb3V0X2VuZ2luZXM7CisKKwkvKiBDcmVhdGUgYSBsYXJnZSBudW1iZXIg b2YgdGhyZWFkcywgZWFjaCB3YWl0aW5nIG9uIGEgcmFuZG9tIHNlcW5vLgorCSAqIE11bHRpcGxl IHdhaXRlcnMgd2lsbCBiZSB3YWl0aW5nIGZvciB0aGUgc2FtZSBzZXFuby4KKwkgKi8KKwlhdG9t aWNfc2V0KCZyZWFkeSwgY291bnQpOworCWZvciAobiA9IDA7IG4gPCBjb3VudDsgbisrKSB7CisJ CXdhaXRlcnNbbl0ud3EgPSAmd3E7CisJCXdhaXRlcnNbbl0ucmVhZHkgPSAmcmVhZHk7CisJCXdh aXRlcnNbbl0uc2V0ID0gJnNldDsKKwkJd2FpdGVyc1tuXS5kb25lID0gJmRvbmU7CisJCXdhaXRl cnNbbl0uZW5naW5lID0gZW5naW5lOworCQl3YWl0ZXJzW25dLmZsYWdzID0gMDsKKworCQl3YWl0 ZXJzW25dLnRzayA9IGt0aHJlYWRfcnVuKGlndF93YWtldXBfdGhyZWFkLCAmd2FpdGVyc1tuXSwK KwkJCQkJICAgICAiaTkxNS9pZ3Q6JWQiLCBuKTsKKwkJaWYgKElTX0VSUih3YWl0ZXJzW25dLnRz aykpCisJCQlnb3RvIG91dF93YWl0ZXJzOworCisJCWdldF90YXNrX3N0cnVjdCh3YWl0ZXJzW25d LnRzayk7CisJfQorCisJZm9yIChzdGVwID0gMTsgc3RlcCA8PSBtYXhfc2Vxbm87IHN0ZXAgPDw9 IDEpIHsKKwkJdTMyIHNlcW5vOworCisJCWZvciAobiA9IDA7IG4gPCBjb3VudDsgbisrKQorCQkJ d2FpdGVyc1tuXS5zZXFubyA9IDEgKyBnZXRfcmFuZG9tX2ludCgpICUgbWF4X3NlcW5vOworCisJ CW1vY2tfc2Vxbm9fYWR2YW5jZShlbmdpbmUsIDApOworCQlpZ3Rfd2FrZV9hbGxfc3luYygmcmVh ZHksICZzZXQsICZkb25lLCAmd3EsIGNvdW50KTsKKworCQlmb3IgKHNlcW5vID0gMTsgc2Vxbm8g PD0gbWF4X3NlcW5vICsgc3RlcDsgc2Vxbm8gKz0gc3RlcCkgeworCQkJdXNsZWVwX3JhbmdlKDUw LCA1MDApOworCQkJbW9ja19zZXFub19hZHZhbmNlKGVuZ2luZSwgc2Vxbm8pOworCQl9CisJCUdF TV9CVUdfT04oaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpIDwgMSArIG1heF9zZXFubyk7 CisKKwkJZXJyID0gd2FpdF9vbl9hdG9taWNfdCgmZG9uZSwgd2FpdF9hdG9taWNfdGltZW91dCwg c3RhdGUpOworCQlpZiAoZXJyKSB7CisJCQlwcl9lcnIoIlRpbWVkIG91dCB3YWl0aW5nIGZvciAl ZCByZW1haW5pbmcgd2FpdGVyc1xuIiwKKwkJCSAgICAgICBhdG9taWNfcmVhZCgmZG9uZSkpOwor CQkJYnJlYWs7CisJCX0KKworCQllcnIgPSBjaGVja19yYnRyZWVfZW1wdHkoZW5naW5lKTsKKwkJ aWYgKGVycikKKwkJCWJyZWFrOworCX0KKworb3V0X3dhaXRlcnM6CisJZm9yIChuID0gMDsgbiA8 IGNvdW50OyBuKyspIHsKKwkJaWYgKElTX0VSUih3YWl0ZXJzW25dLnRzaykpCisJCQlicmVhazsK KworCQlzZXRfYml0KDAsICZ3YWl0ZXJzW25dLmZsYWdzKTsKKwl9CisKKwlpZ3Rfd2FrZV9hbGxf c3luYygmcmVhZHksICZzZXQsICZkb25lLCAmd3EsIG4pOworCXdhaXRfb25fYXRvbWljX3QoJmRv bmUsIHdhaXRfYXRvbWljLCBzdGF0ZSk7CisKKwlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykg eworCQlpZiAoSVNfRVJSKHdhaXRlcnNbbl0udHNrKSkKKwkJCWJyZWFrOworCisJCWt0aHJlYWRf c3RvcCh3YWl0ZXJzW25dLnRzayk7CisJCXB1dF90YXNrX3N0cnVjdCh3YWl0ZXJzW25dLnRzayk7 CisJfQorCisJZHJtX2ZyZWVfbGFyZ2Uod2FpdGVycyk7CitvdXRfZW5naW5lczoKKwltb2NrX2Vu Z2luZV9mbHVzaChlbmdpbmUpOworCXJldHVybiBlcnI7Cit9CisKIGludCBpbnRlbF9icmVhZGNy dW1ic19tb2NrX3NlbGZ0ZXN0cyh2b2lkKQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9z dWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X3JhbmRvbV9pbnNlcnRfcmVtb3ZlKSwK IAkJU1VCVEVTVChpZ3RfaW5zZXJ0X2NvbXBsZXRlKSwKKwkJU1VCVEVTVChpZ3Rfd2FrZXVwKSwK IAl9OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgZXJyOwotLSAKMi4x MS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK