From mboxrd@z Thu Jan 1 00:00:00 1970 From: robert.foss@collabora.com Subject: [PATCH i-g-t v5 01/13] lib/sw_sync: Add helper functions for managing synchronization primitives Date: Thu, 15 Sep 2016 14:40:06 -0400 Message-ID: <20160915184018.9218-2-robert.foss@collabora.com> References: <20160915184018.9218-1-robert.foss@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 26C7F6E8FF for ; Thu, 15 Sep 2016 18:40:27 +0000 (UTC) In-Reply-To: <20160915184018.9218-1-robert.foss@collabora.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, Gustavo Padovan , Daniel Stone , Daniel Vetter , Marius Vlad , Eric Engestrom , Chris Wilson Cc: Gustavo Padovan List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+CgpCYXNlIGZ1bmN0 aW9ucyB0byBoZWxwIHRlc3RpbmcgdGhlIFN5bmMgRmlsZSBGcmFtZXdvcmsgKGV4cGxpY2l0IGZl bmNpbmcKbWVjaGFuaXNtIHBvcnRlZCBmcm9tIEFuZHJvaWQpLgpUaGVzZSBmdW5jdGlvbnMgYWxs b3cgeW91IHRvIGNyZWF0ZSwgdXNlIGFuZCBkZXN0cm95IHRpbWVsaW5lcyBhbmQgZmVuY2VzLgoK U2lnbmVkLW9mZi1ieTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNvbGxhYm9yYS5jb20+ClNp Z25lZC1vZmYtYnk6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9yYS5j by51az4KUmV2aWV3ZWQtYnk6IEVyaWMgRW5nZXN0cm9tIDxlcmljQGVuZ2VzdHJvbS5jaD4KLS0t CiBsaWIvTWFrZWZpbGUuc291cmNlcyB8ICAgMiArCiBsaWIvc3dfc3luYy5jICAgICAgICB8IDE4 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxp Yi9zd19zeW5jLmggICAgICAgIHwgIDQ4ICsrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQs IDIzMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL3N3X3N5bmMuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYi9zd19zeW5jLmgKCmRpZmYgLS1naXQgYS9saWIvTWFrZWZpbGUu c291cmNlcyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGJhYzlhN2YuLjNkYzdjM2MgMTAw NjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2Vz CkBAIC02MSw2ICs2MSw4IEBAIGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCXJlbmRlcmNvcHlfZ2Vu OC5jCVwKIAlyZW5kZXJjb3B5X2dlbjkuYwlcCiAJcmVuZGVyY29weS5oCQlcCisJc3dfc3luYy5j CQlcCisJc3dfc3luYy5oCQlcCiAJaW50ZWxfcmVnX21hcC5jCQlcCiAJaW50ZWxfaW9zZi5jCQlc CiAJaWd0X2ttcy5jCQlcCmRpZmYgLS1naXQgYS9saWIvc3dfc3luYy5jIGIvbGliL3N3X3N5bmMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWQ5MjI2Ci0tLSAvZGV2L251 bGwKKysrIGIvbGliL3N3X3N5bmMuYwpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIENvcHlyaWdo dCAyMDEyIEdvb2dsZSwgSW5jCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBDb2xsYWJvcmEsIEx0ZC4K KyAqCisgKiBCYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gZnJvbSB0aGUgQW5kcm9pZCBPcGVu IFNvdXJjZSBQcm9qZWN0CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k aWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBz ZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3Jh cGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O SU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisg KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRX QVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBSb2JlcnQgRm9zcyA8cm9iZXJ0LmZvc3NAY29s bGFib3JhLmNvbT4KKyAqLworCisjaWZuZGVmIEFORFJPSUQKKyNkZWZpbmUgX0dOVV9TT1VSQ0UK KyNlbHNlCisjaW5jbHVkZSA8bGliZ2VuLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxmY250bC5oPgor I2luY2x1ZGUgPHBvbGwuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9z eW5jX2ZpbGUuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKworI2luY2x1ZGUgInN3X3N5bmMu aCIKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKwor I2lmbmRlZiBTV19TWU5DX0lPQ19JTkMKK3N0cnVjdCBzd19zeW5jX2NyZWF0ZV9mZW5jZV9kYXRh IHsKKwlfX3UzMgl2YWx1ZTsKKwljaGFyCW5hbWVbMzJdOworCV9fczMyCWZlbmNlOworfTsKKwor I2RlZmluZSBTV19TWU5DX0lPQ19NQUdJQwkJJ1cnCisjZGVmaW5lIFNXX1NZTkNfSU9DX0NSRUFU RV9GRU5DRQlfSU9XUihTV19TWU5DX0lPQ19NQUdJQywgMCxcCisJCQkJCQlzdHJ1Y3Qgc3dfc3lu Y19jcmVhdGVfZmVuY2VfZGF0YSkKKyNkZWZpbmUgU1dfU1lOQ19JT0NfSU5DCQkJX0lPVyhTV19T WU5DX0lPQ19NQUdJQywgMSwgX191MzIpCisjZW5kaWYKKworI2RlZmluZSBERVZGU19TV19TWU5D ICAgIi9kZXYvc3dfc3luYyIKKyNkZWZpbmUgREVCVUdGU19TV19TWU5DICIvc3lzL2tlcm5lbC9k ZWJ1Zy9zeW5jL3N3X3N5bmMiCisKKworaW50IHN3X3N5bmNfZmRfaXNfdmFsaWQoaW50IGZkKQor eworCWludCBzdGF0dXM7CisKKwlpZiAoZmQgPCAwKQorCQlyZXR1cm4gMDsKKworCXN0YXR1cyA9 IGZjbnRsKGZkLCBGX0dFVEZELCAwKTsKKwlyZXR1cm4gc3RhdHVzID49IDA7Cit9CisKK2ludCBz d19zeW5jX3RpbWVsaW5lX2NyZWF0ZSh2b2lkKQoreworCWludCBmZCA9IG9wZW4oREVWRlNfU1df U1lOQywgT19SRFdSKTsKKworCWlmIChmZCA8IDApCisJCWZkID0gb3BlbihERUJVR0ZTX1NXX1NZ TkMsIE9fUkRXUik7CisKKwlpZ3RfYXNzZXJ0KHN3X3N5bmNfZmRfaXNfdmFsaWQoZmQpKTsKKwor CXJldHVybiBmZDsKK30KKworaW50IF9fc3dfc3luY19mZW5jZV9jcmVhdGUoaW50IGZkLCB1aW50 MzJfdCBzZXFubykKK3sKKworCXN0cnVjdCBzd19zeW5jX2NyZWF0ZV9mZW5jZV9kYXRhIGRhdGE7 CisKKwltZW1zZXQoJmRhdGEsIDAsIHNpemVvZihkYXRhKSk7CisJZGF0YS52YWx1ZSA9IHNlcW5v OworCisJaWYgKGlndF9pb2N0bChmZCwgU1dfU1lOQ19JT0NfQ1JFQVRFX0ZFTkNFLCAmZGF0YSkp CisJCXJldHVybiAtZXJybm87CisKKwlyZXR1cm4gZGF0YS5mZW5jZTsKK30KKworaW50IHN3X3N5 bmNfZmVuY2VfY3JlYXRlKGludCBmZCwgdWludDMyX3Qgc2Vxbm8pCit7CisJaW50IGZlbmNlID0g X19zd19zeW5jX2ZlbmNlX2NyZWF0ZShmZCwgc2Vxbm8pOworCWlndF9hc3NlcnQoZmVuY2UgPj0g MCk7CisJcmV0dXJuIGZlbmNlOworfQorCit2b2lkIHN3X3N5bmNfdGltZWxpbmVfaW5jKGludCBm ZCwgdWludDMyX3QgY291bnQpCit7CisJdWludDMyX3QgYXJnID0gY291bnQ7CisKKwlkb19pb2N0 bChmZCwgU1dfU1lOQ19JT0NfSU5DLCAmYXJnKTsKK30KKworaW50IHN3X3N5bmNfbWVyZ2UoaW50 IGZkMSwgaW50IGZkMikKK3sKKwlzdHJ1Y3Qgc3luY19tZXJnZV9kYXRhIGRhdGEgPSB7fTsKKwlp bnQgZXJyOworCisJZGF0YS5mZDIgPSBmZDI7CisKKwllcnIgPSBpb2N0bChmZDEsIFNZTkNfSU9D X01FUkdFLCAmZGF0YSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiAtZXJybm87CisKKwlzd19z eW5jX2ZkX2lzX3ZhbGlkKGRhdGEuZmVuY2UpOworCisJcmV0dXJuIGRhdGEuZmVuY2U7Cit9CisK K2ludCBzd19zeW5jX3dhaXQoaW50IGZlbmNlLCBpbnQgdGltZW91dCkKK3sKKwlzdHJ1Y3QgcG9s bGZkIHBmZCA9IHsgZmVuY2UsIFBPTExJTiB9OworCisJcmV0dXJuIHBvbGwoJnBmZCwgMSwgdGlt ZW91dCk7Cit9CisKK2ludCBzd19zeW5jX2ZlbmNlX2NvdW50KGludCBmZCkKK3sKKwlzdHJ1Y3Qg c3luY19maWxlX2luZm8gaW5mbzsKKworCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsK KwlpZiAoaW9jdGwoZmQsIFNZTkNfSU9DX0ZJTEVfSU5GTywgJmluZm8pKQorCQlyZXR1cm4gLWVy cm5vOworCisJcmV0dXJuIGluZm8ubnVtX2ZlbmNlczsKK30KKworc3RhdGljIGludCBfX3N3X3N5 bmNfZmVuY2VfY291bnRfc3RhdHVzKGludCBmZCwgaW50IHN0YXR1cykKK3sKKwlzdHJ1Y3Qgc3lu Y19maWxlX2luZm8gaW5mbzsKKwlzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvICpmZW5jZV9pbmZvOwor CWludCBjb3VudDsKKwlpbnQgaTsKKworCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsK KwlpZiAoaW9jdGwoZmQsIFNZTkNfSU9DX0ZJTEVfSU5GTywgJmluZm8pKQorCQlyZXR1cm4gLWVy cm5vOworCisJZmVuY2VfaW5mbyA9IGNhbGxvYyhpbmZvLm51bV9mZW5jZXMsIHNpemVvZigqZmVu Y2VfaW5mbykpOworCWlmICghZmVuY2VfaW5mbykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpbmZv LnN5bmNfZmVuY2VfaW5mbyA9ICh1aW50cHRyX3QpZmVuY2VfaW5mbzsKKwlpZiAoaW9jdGwoZmQs IFNZTkNfSU9DX0ZJTEVfSU5GTywgJmluZm8pKSB7CisJCWNvdW50ID0gLWVycm5vOworCX0gZWxz ZSB7CisJCWNvdW50ID0gMDsKKwkJZm9yIChpID0gMCA7IGkgPCBpbmZvLm51bV9mZW5jZXMgOyBp KyspCisJCQljb3VudCArPSBmZW5jZV9pbmZvW2ldLnN0YXR1cyA9PSBzdGF0dXM7CisJfQorCisJ ZnJlZShmZW5jZV9pbmZvKTsKKworCXJldHVybiBjb3VudDsKK30KKworaW50IHN3X3N5bmNfZmVu Y2VfY291bnRfc3RhdHVzKGludCBmZCwgaW50IHN0YXR1cykKK3sKKwlpbnQgY291bnQgPSBfX3N3 X3N5bmNfZmVuY2VfY291bnRfc3RhdHVzKGZkLCBzdGF0dXMpOworCWlndF9hc3NlcnQoY291bnQg Pj0gMCk7CisJcmV0dXJuIGNvdW50OworfQpkaWZmIC0tZ2l0IGEvbGliL3N3X3N5bmMuaCBiL2xp Yi9zd19zeW5jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVlOTI0OQot LS0gL2Rldi9udWxsCisrKyBiL2xpYi9zd19zeW5jLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq IENvcHlyaWdodCAyMDEyIEdvb2dsZSwgSW5jCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBDb2xsYWJv cmEsIEx0ZC4KKyAqCisgKiBCYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gZnJvbSB0aGUgQW5k cm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cisg KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4g VEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBSb2JlcnQgRm9zcyA8cm9iZXJ0 LmZvc3NAY29sbGFib3JhLmNvbT4KKyAqLworCisjaWZuZGVmIFNXX1NZTkNfSAorI2RlZmluZSBT V19TWU5DX0gKKworI2RlZmluZSBTV19TWU5DX0ZFTkNFX1NUQVRVU19FUlJPUgkJKC0xKQorI2Rl ZmluZSBTV19TWU5DX0ZFTkNFX1NUQVRVU19BQ1RJVkUJCSgwKQorI2RlZmluZSBTV19TWU5DX0ZF TkNFX1NUQVRVU19TSUdOQUxFRAkoMSkKKworaW50IHN3X3N5bmNfZmRfaXNfdmFsaWQoaW50IGZk KTsKK2ludCBzd19zeW5jX3RpbWVsaW5lX2NyZWF0ZSh2b2lkKTsKK2ludCBfX3N3X3N5bmNfZmVu Y2VfY3JlYXRlKGludCBmZCwgdWludDMyX3Qgc2Vxbm8pOworaW50IHN3X3N5bmNfZmVuY2VfY3Jl YXRlKGludCBmZCwgdWludDMyX3Qgc2Vxbm8pOwordm9pZCBzd19zeW5jX3RpbWVsaW5lX2luYyhp bnQgZmQsIHVpbnQzMl90IGNvdW50KTsKK2ludCBzd19zeW5jX21lcmdlKGludCBmZDEsIGludCBm ZDIpOworaW50IHN3X3N5bmNfd2FpdChpbnQgZmVuY2UsIGludCB0aW1lb3V0KTsKK2ludCBzd19z eW5jX2ZlbmNlX2NvdW50KGludCBmZCk7CitpbnQgc3dfc3luY19mZW5jZV9jb3VudF9zdGF0dXMo aW50IGZkLCBpbnQgc3RhdHVzKTsKKworI2VuZGlmCisKLS0gCjIuOS4zCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK