From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 10/10] drm/i915: Naive engine busyness based load balancing Date: Thu, 25 Jan 2018 13:33:33 +0000 Message-ID: <20180125133333.13425-11-tvrtko.ursulin@linux.intel.com> References: <20180125133333.13425-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DA2D6E73B for ; Thu, 25 Jan 2018 13:33:51 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id x4so31158419wmc.0 for ; Thu, 25 Jan 2018 05:33:51 -0800 (PST) In-Reply-To: <20180125133333.13425-1-tvrtko.ursulin@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkF0IGV4ZWNi dWYgdGltZSBlbmdpbmUgYnVzeW5lc3Mgc2luY2UgdGhlIGxhc3Qgc3VibWlzc2lvbiBpcyB1c2Vk IGFzIGJhc2lzCmZvciBkZXRlcm1pbmluZyB3aGVyZSB0byBzdWJtaXQuIEluIGNhc2UgYm90aCBl bmdpbmVzIGFyZSBlcXVhbGx5IGJ1c3ksCnJlcXVlc3QgaXMgc3VibWl0dGVkIHRvIHRoZSBzYW1l IGVuZ2luZSBhcyB0aGUgcHJldmlvdXMgb25lLgoKVmlydHVhbCBlbmdpbmUgY29udGV4dHMgZW5h YmxlIGVuZ2luZSBidXN5IHN0YXRzIG9uIGZpcnN0IHN1Ym1pc3Npb24gYW5kCmRpc2FibGUgaXQg YXQgY29udGV4dCBkZXN0cnVjdGlvbi4KCiEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEh ISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhClRoaXMgaXMgbm90IGEg cHJvcG9zYWwgb24gaG93IHRvIGFjdHVhbGx5IGltcGxlbWVudCB0aGlzLiBJdCBzaW5jZSBpdApw ZXJmb3JtcyB2ZXJ5IHBvb3JseSBjb21wYXJlZCB0byBzaW1pbGFyIHVzZXJzcGFjZSBiYWxhbmNp bmcgc3RyYXRlZ2llcwphbmQgaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBhIHByb3RvdHlw ZSB0byBpbGx1c3RyYXRlIHRoZSBpZGVhIGFuZAppc3N1ZXMgd2l0aCBmb3JudGVuZCBiYWxhbmNp bmcuCiEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEh ISEhISEhISEhISEhISEhISEhISEhCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYyAgICB8ICAzICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmggICAgfCAxOSArKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYyB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgICAgIHwgMzUgKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICB8ICAyICsKIDUgZmls ZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDhmNWYyM2IwZGQzNC4uYTMyNGUyNGY3 YTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xMjksNiAr MTI5LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fY29udGV4dF9mcmVlKHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgpCiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykg ewogCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbaV07CiAKKwkJaWYg KGN0eC0+c3RhdHNfZW5hYmxlZFtpXSkKKwkJCWludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRzKGN0 eC0+aTkxNS0+ZW5naW5lW2ldKTsKKwogCQlpZiAoIWNlLT5zdGF0ZSkKIAkJCWNvbnRpbnVlOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKaW5kZXggNWFmZTA1MDcxOGI4 Li4wMTEzYzE2MWYyNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgK QEAgLTE2Myw2ICsxNjMsMjUgQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewogCQlpbnQgcGlu X2NvdW50OwogCX0gZW5naW5lW0k5MTVfTlVNX0VOR0lORVNdOwogCisJLyoqCisJICogQHN0YXRz X2VuYWJsZWQ6IEhhcyB0aGlzIGNvbnRleHQgZW5hYmxlZCBwZXItZW5naW5lIHN0YXRzLgorCSAq CisJICogQm9vbGVhbiB0cmFja2VkIHBlci1lbmdpbmUuCisJICovCisJYm9vbCBzdGF0c19lbmFi bGVkW0k5MTVfTlVNX0VOR0lORVNdOworCisJLyoqCisJICogQHByZXZfYnVzeTogUHJldmlvdXMg ZW5naW5lIGJ1c3luZXNzLgorCSAqCisJICogRm9yIFZDUyBlbmdpbmVzLgorCSAqLworCXU2NCBw cmV2X2J1c3lbMl07CisKKwkvKioKKwkgKiBAcHJldl9pbnN0YW5jZTogUHJldmlvdXNseSBzdWJt aXR0ZWQgdG8gVkNTIGluc3RhbmNlLgorCSAqLworCXU4IHByZXZfaW5zdGFuY2U7CisKIAkvKiog cmluZ19zaXplOiBzaXplIGZvciBhbGxvY2F0aW5nIHRoZSBwZXItZW5naW5lIHJpbmcgYnVmZmVy ICovCiAJdTMyIHJpbmdfc2l6ZTsKIAkvKiogZGVzY190ZW1wbGF0ZTogaW52YXJpYW50IGZpZWxk cyBmb3IgdGhlIEhXIGNvbnRleHQgZGVzY3JpcHRvciAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IGY4OWE3YmU2ODEzMy4uNTNhZmM0ZGM5NzZlIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0yMDE4LDYg KzIwMTgsNTMgQEAgZ2VuOF9kaXNwYXRjaF9ic2RfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gZmlsZV9wcml2LT5ic2RfZW5naW5lOwogfQogCitzdGF0 aWMgdm9pZAorY3R4X2VuYWJsZV9zdGF0cyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBl bnVtIGludGVsX2VuZ2luZV9pZCBpZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gaW50ZWxfZW5h YmxlX2VuZ2luZV9zdGF0cyhjdHgtPmk5MTUtPmVuZ2luZVtpZF0pOworCisJY3R4LT5zdGF0c19l bmFibGVkW2lkXSA9IHJldCA9PSAwOworfQorCitzdGF0aWMgdTggZWJfcnJfaW5zdGFuY2Uoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJcmV0dXJuIGF0b21pY19mZXRjaF94b3Io MSwgJmk5MTUtPm1tLmJzZF9lbmdpbmVfZGlzcGF0Y2hfaW5kZXgpOworfQorCitzdGF0aWMgdTgg Y3R4X2Jlc3RfdmNzX2luc3RhbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCit7CisJ a3RpbWVfdCBub3cgPSBrdGltZV9nZXQoKTsKKwl1NjQgYnVzeVsyXSwgcHJldl9idXN5WzJdOwor CXU4IGluc3RhbmNlOworCisJYnVzeVswXSA9IGludGVsX2VuZ2luZV9nZXRfYnVzeV90aW1lX25v dyhjdHgtPmk5MTUtPmVuZ2luZVtfVkNTKDApXSwKKwkJCQkJCSBub3cpOworCWJ1c3lbMV0gPSBp bnRlbF9lbmdpbmVfZ2V0X2J1c3lfdGltZV9ub3coY3R4LT5pOTE1LT5lbmdpbmVbX1ZDUygxKV0s CisJCQkJCQkgbm93KTsKKworCXByZXZfYnVzeVswXSA9IGN0eC0+cHJldl9idXN5WzBdOworCXBy ZXZfYnVzeVsxXSA9IGN0eC0+cHJldl9idXN5WzFdOworCisJY3R4LT5wcmV2X2J1c3lbMF0gPSBi dXN5WzBdOworCWN0eC0+cHJldl9idXN5WzFdID0gYnVzeVsxXTsKKworCWJ1c3lbMF0gLT0gcHJl dl9idXN5WzBdOworCWJ1c3lbMV0gLT0gcHJldl9idXN5WzFdOworCisJaWYgKGJ1c3lbMF0gPCBi dXN5WzFdKQorCQlpbnN0YW5jZSA9IDA7CisJZWxzZSBpZiAoYnVzeVsxXSA8IGJ1c3lbMF0pCisJ CWluc3RhbmNlID0gMTsKKwllbHNlCisJCWluc3RhbmNlID0gY3R4LT5wcmV2X2luc3RhbmNlOwor CisJY3R4LT5wcmV2X2luc3RhbmNlID0gaW5zdGFuY2U7CisKKwlyZXR1cm4gaW5zdGFuY2U7Cit9 CisKIHN0YXRpYyBpbnQgZWJfc2VsZWN0X2VuZ2luZV9jbGFzc19pbnN0YW5jZShzdHJ1Y3QgaTkx NV9leGVjYnVmZmVyICplYikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVi LT5pOTE1OwpAQCAtMjAzNyw4ICsyMDg0LDE5IEBAIHN0YXRpYyBpbnQgZWJfc2VsZWN0X2VuZ2lu ZV9jbGFzc19pbnN0YW5jZShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKIAkJdW5zaWduZWQg aW50IHZjc19pbnN0YW5jZXMgPSAyOwogCQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5l OwogCi0JCWluc3RhbmNlID0gYXRvbWljX2ZldGNoX3hvcigxLAotCQkJCQkgICAgJmk5MTUtPm1t LmJzZF9lbmdpbmVfZGlzcGF0Y2hfaW5kZXgpOworCQlpZiAoaW50ZWxfZW5naW5lX3N1cHBvcnRz X3N0YXRzKGk5MTUtPmVuZ2luZVtWQ1NdKSkgeworCQkJaWYgKCFlYi0+Y3R4LT5zdGF0c19lbmFi bGVkW19WQ1MoMCldKQorCQkJCWN0eF9lbmFibGVfc3RhdHMoZWItPmN0eCwgX1ZDUygwKSk7CisK KwkJCWlmICghZWItPmN0eC0+c3RhdHNfZW5hYmxlZFtfVkNTKDEpXSkKKwkJCQljdHhfZW5hYmxl X3N0YXRzKGViLT5jdHgsIF9WQ1MoMSkpOworCQl9CisKKwkJaWYgKGViLT5jdHgtPnN0YXRzX2Vu YWJsZWRbX1ZDUygwKV0gJiYKKwkJICAgIGViLT5jdHgtPnN0YXRzX2VuYWJsZWRbX1ZDUygxKV0p CisJCQlpbnN0YW5jZSA9IGN0eF9iZXN0X3Zjc19pbnN0YW5jZShlYi0+Y3R4KTsKKwkJZWxzZQor CQkJaW5zdGFuY2UgPSBlYl9ycl9pbnN0YW5jZShpOTE1KTsKIAogCQlkbyB7CiAJCQllbmdpbmUg PSBpOTE1LT5lbmdpbmVbX1ZDUyhpbnN0YW5jZSldOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwppbmRleCBlMDI2Mjc2MThiYzUuLmQxODZhMjE4ODA5ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTIwMDgsNiArMjAwOCwyMiBAQCBzdGF0aWMg a3RpbWVfdCBfX2ludGVsX2VuZ2luZV9nZXRfYnVzeV90aW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAlyZXR1cm4gdG90YWw7CiB9CiAKK3N0YXRpYyBrdGltZV90CitfX19pbnRl bF9lbmdpbmVfZ2V0X2J1c3lfdGltZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGt0 aW1lX3Qgbm93KQoreworCWt0aW1lX3QgdG90YWwgPSBlbmdpbmUtPnN0YXRzLnRvdGFsOworCisJ LyoKKwkgKiBJZiB0aGUgZW5naW5lIGlzIGV4ZWN1dGluZyBzb21ldGhpbmcgYXQgdGhlIG1vbWVu dAorCSAqIGFkZCBpdCB0byB0aGUgdG90YWwuCisJICovCisJaWYgKGVuZ2luZS0+c3RhdHMuYWN0 aXZlKQorCQl0b3RhbCA9IGt0aW1lX2FkZCh0b3RhbCwKKwkJCQkgIGt0aW1lX3N1Yihub3csIGVu Z2luZS0+c3RhdHMuc3RhcnQpKTsKKworCXJldHVybiB0b3RhbDsKK30KKwogLyoqCiAgKiBpbnRl bF9lbmdpbmVfZ2V0X2J1c3lfdGltZSgpIC0gUmV0dXJuIGN1cnJlbnQgYWNjdW11bGF0ZWQgZW5n aW5lIGJ1c3luZXNzCiAgKiBAZW5naW5lOiBlbmdpbmUgdG8gcmVwb3J0IG9uCkBAIC0yMDI2LDYg KzIwNDIsMjUgQEAga3RpbWVfdCBpbnRlbF9lbmdpbmVfZ2V0X2J1c3lfdGltZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJcmV0dXJuIHRvdGFsOwogfQogCisvKioKKyAqIGludGVs X2VuZ2luZV9nZXRfYnVzeV90aW1lKCkgLSBSZXR1cm4gY3VycmVudCBhY2N1bXVsYXRlZCBlbmdp bmUgYnVzeW5lc3MKKyAqIEBlbmdpbmU6IGVuZ2luZSB0byByZXBvcnQgb24KKyAqCisgKiBSZXR1 cm5zIGFjY3VtdWxhdGVkIHRpbWUgQGVuZ2luZSB3YXMgYnVzeSBzaW5jZSBlbmdpbmUgc3RhdHMg d2VyZSBlbmFibGVkLgorICovCitrdGltZV90CitpbnRlbF9lbmdpbmVfZ2V0X2J1c3lfdGltZV9u b3coc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBrdGltZV90IG5vdykKK3sKKwlrdGlt ZV90IHRvdGFsOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgm ZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CisJdG90YWwgPSBfX19pbnRlbF9lbmdpbmVfZ2V0 X2J1c3lfdGltZShlbmdpbmUsIG5vdyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5l LT5zdGF0cy5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gdG90YWw7Cit9CisKIC8qKgogICogaW50 ZWxfZGlzYWJsZV9lbmdpbmVfc3RhdHMoKSAtIERpc2FibGUgZW5naW5lIGJ1c3kgdHJhY2tpbmcg b24gZW5naW5lCiAgKiBAZW5naW5lOiBlbmdpbmUgdG8gZGlzYWJsZSBzdGF0cyBjb2xsZWN0aW9u CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggNzZmN2ZkYzkyNmFl Li42ZjQxOGIzN2VkNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK QEAgLTExMDIsNSArMTEwMiw3IEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGludGVsX2Rpc2FibGVfZW5naW5lX3N0 YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKIGt0aW1lX3QgaW50ZWxfZW5n aW5lX2dldF9idXN5X3RpbWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK2t0aW1l X3QgaW50ZWxfZW5naW5lX2dldF9idXN5X3RpbWVfbm93KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKKwkJCQkgICAgICAga3RpbWVfdCBub3cpOwogCiAjZW5kaWYgLyogX0lOVEVMX1JJ TkdCVUZGRVJfSF8gKi8KLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==