From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] locking/mutex: Ensure forward progress of waiter-spinner Date: Tue, 23 Aug 2016 10:10:10 +0200 Message-ID: <1471939811-9817-6-git-send-email-maarten.lankhorst@linux.intel.com> References: <1471939811-9817-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id B2A586E5B3 for ; Tue, 23 Aug 2016 08:10:18 +0000 (UTC) In-Reply-To: <1471939811-9817-1-git-send-email-maarten.lankhorst@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 Cc: Waiman Long List-Id: intel-gfx@lists.freedesktop.org RnJvbTogV2FpbWFuIExvbmcgPFdhaW1hbi5Mb25nQGhwZS5jb20+CgpBcyBib3RoIGFuIG9wdGlt aXN0aWMgc3Bpbm5lciBhbmQgYSB3YWl0ZXItc3Bpbm5lciAoYSB3b2tlbiB0YXNrIGZyb20KdGhl IHdhaXQgcXVldWUgc3Bpbm5pbmcpIGNhbiBiZSBzcGlubmluZyBvbiB0aGUgbG9jayBhdCB0aGUg c2FtZSB0aW1lLAp3ZSBjYW5ub3QgZW5zdXJlIGZvcndhcmQgcHJvZ3Jlc3MgZm9yIHRoZSB3YWl0 ZXItc3Bpbm5lci4gVGhlcmVmb3JlLAppdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHdhaXRlci1zcGlu bmVyIHRvIGJlIHN0YXJ2ZWQgb2YgZ2V0dGluZyB0aGUKbG9jaywgdGhvdWdoIG5vdCBsaWtlbHku CgpUaGlzIHBhdGNoIGFkZHMgYSBmbGFnIHRvIGluZGljYXRlIHRoYXQgYSB3YWl0ZXItc3Bpbm5l ciBpcwpzcGlubmluZyBhbmQgaGVuY2UgaGFzIHByaW9yaXR5IG92ZXIgdGhlIGFjcXVpc2l0aW9u IG9mIHRoZSBsb2NrLiBBCndhaXRlci1zcGlubmVyIHNldHMgdGhpcyBmbGFnIHdoaWxlIHNwaW5u aW5nLiBBbiBvcHRpbWlzdGljIHNwaW5uZXIKd2lsbCBjaGVjayB0aGlzIGZsYWcgYW5kIHlpZWxk IGlmIHNldC4gVGhpcyBlc3NlbnRpYWxseSBtYWtlcyB0aGUKd2FpdGVyLXNwaW5uZXIganVtcCB0 byB0aGUgaGVhZCBvZiB0aGUgb3B0aW1pc3RpYyBzcGlubmluZyBxdWV1ZSB0bwphY3F1aXJlIHRo ZSBsb2NrLgoKVGhlcmUgd2lsbCBiZSBubyBpbmNyZWFzZSBpbiBzaXplIGZvciB0aGUgbXV0ZXgg c3RydWN0dXJlIGZvciA2NC1iaXQKYXJjaGl0ZWN0dXJlcy4gRm9yIDMyLWJpdCBhcmNoaXRlY3R1 cmVzLCB0aGVyZSB3aWxsIGJlIGEgc2l6ZSBpbmNyZWFzZQpvZiA0IGJ5dGVzLgoKU2lnbmVkLW9m Zi1ieTogV2FpbWFuIExvbmcgPFdhaW1hbi5Mb25nQGhwZS5jb20+Ci0tLQogaW5jbHVkZS9saW51 eC9tdXRleC5oICB8ICAxICsKIGtlcm5lbC9sb2NraW5nL211dGV4LmMgfCAzNiArKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L211dGV4Lmgg Yi9pbmNsdWRlL2xpbnV4L211dGV4LmgKaW5kZXggMmNiNzUzMS4uZjhlOTFhZCAxMDA2NDQKLS0t IGEvaW5jbHVkZS9saW51eC9tdXRleC5oCisrKyBiL2luY2x1ZGUvbGludXgvbXV0ZXguaApAQCAt NTcsNiArNTcsNyBAQCBzdHJ1Y3QgbXV0ZXggewogI2VuZGlmCiAjaWZkZWYgQ09ORklHX01VVEVY X1NQSU5fT05fT1dORVIKIAlzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlIG9zcTsgLyogU3Bp bm5lciBNQ1MgbG9jayAqLworCWludCB3YWl0ZXJfc3Bpbm5pbmc7CiAjZW5kaWYKICNpZmRlZiBD T05GSUdfREVCVUdfTVVURVhFUwogCXZvaWQJCQkqbWFnaWM7CmRpZmYgLS1naXQgYS9rZXJuZWwv bG9ja2luZy9tdXRleC5jIGIva2VybmVsL2xvY2tpbmcvbXV0ZXguYwppbmRleCAyNDEzM2MxLi4z YmNkMjVjIDEwMDY0NAotLS0gYS9rZXJuZWwvbG9ja2luZy9tdXRleC5jCisrKyBiL2tlcm5lbC9s b2NraW5nL211dGV4LmMKQEAgLTU1LDYgKzU1LDcgQEAgX19tdXRleF9pbml0KHN0cnVjdCBtdXRl eCAqbG9jaywgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCiAJ bXV0ZXhfY2xlYXJfb3duZXIobG9jayk7CiAjaWZkZWYgQ09ORklHX01VVEVYX1NQSU5fT05fT1dO RVIKIAlvc3FfbG9ja19pbml0KCZsb2NrLT5vc3EpOworCWxvY2stPndhaXRlcl9zcGlubmluZyA9 IGZhbHNlOwogI2VuZGlmCiAKIAlkZWJ1Z19tdXRleF9pbml0KGxvY2ssIG5hbWUsIGtleSk7CkBA IC0zNDEsOSArMzQyLDIxIEBAIHN0YXRpYyBib29sIG11dGV4X29wdGltaXN0aWNfc3BpbihzdHJ1 Y3QgbXV0ZXggKmxvY2ssCiAJCSAqLwogCQlpZiAoIW9zcV9sb2NrKCZsb2NrLT5vc3EpKQogCQkJ Z290byBkb25lOworCX0gZWxzZSB7CisJCS8qCisJCSAqIFR1cm4gb24gdGhlIHdhaXRlciBzcGlu bmluZyBmbGFnIHRvIGRpc2NvdXJhZ2UgdGhlIHNwaW5uZXIKKwkJICogZnJvbSBnZXR0aW5nIHRo ZSBsb2NrLgorCQkgKi8KKwkJbG9jay0+d2FpdGVyX3NwaW5uaW5nID0gdHJ1ZTsKIAl9CiAKLQl3 aGlsZSAodHJ1ZSkgeworCS8qCisJICogVGhlIGNwdV9yZWxheF9sb3dsYXRlbmN5KCkgY2FsbCBp cyBhIGNvbXBpbGVyIGJhcnJpZXIgd2hpY2ggZm9yY2VzCisJICogZXZlcnl0aGluZyBpbiB0aGlz IGxvb3AgdG8gYmUgcmUtbG9hZGVkLiBXZSBkb24ndCBuZWVkIG1lbW9yeQorCSAqIGJhcnJpZXJz IGFzIHdlJ2xsIGV2ZW50dWFsbHkgb2JzZXJ2ZSB0aGUgcmlnaHQgdmFsdWVzIGF0IHRoZSBjb3N0 CisJICogb2YgYSBmZXcgZXh0cmEgc3BpbnMuCisJICovCisJZm9yICg7OyBjcHVfcmVsYXhfbG93 bGF0ZW5jeSgpKSB7CiAJCXN0cnVjdCB0YXNrX3N0cnVjdCAqb3duZXI7CiAKIAkJaWYgKHVzZV93 d19jdHggJiYgd3dfY3R4LT5hY3F1aXJlZCA+IDApIHsKQEAgLTM2Myw2ICszNzYsMTcgQEAgc3Rh dGljIGJvb2wgbXV0ZXhfb3B0aW1pc3RpY19zcGluKHN0cnVjdCBtdXRleCAqbG9jaywKIAkJfQog CiAJCS8qCisJCSAqIEZvciByZWd1bGFyIG9wdC1zcGlubmVyLCBpdCB3YWl0cyB1bnRpbCB0aGUg d2FpdGVyX3NwaW5uaW5nCisJCSAqIGZsYWcgaXNuJ3Qgc2V0LiBUaGlzIHdpbGwgZW5zdXJlIGZv cndhcmQgcHJvZ3Jlc3MgZm9yCisJCSAqIHRoZSB3YWl0ZXIgc3Bpbm5lci4KKwkJICovCisJCWlm ICghd2FpdGVyICYmIFJFQURfT05DRShsb2NrLT53YWl0ZXJfc3Bpbm5pbmcpKSB7CisJCQlpZiAo bmVlZF9yZXNjaGVkKCkpCisJCQkJYnJlYWs7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qCiAJ CSAqIElmIHRoZXJlJ3MgYW4gb3duZXIsIHdhaXQgZm9yIGl0IHRvIGVpdGhlcgogCQkgKiByZWxl YXNlIHRoZSBsb2NrIG9yIGdvIHRvIHNsZWVwLgogCQkgKi8KQEAgLTM5NCwxOCArNDE4LDEyIEBA IHN0YXRpYyBib29sIG11dGV4X29wdGltaXN0aWNfc3BpbihzdHJ1Y3QgbXV0ZXggKmxvY2ssCiAJ CSAqLwogCQlpZiAoIW93bmVyICYmIChuZWVkX3Jlc2NoZWQoKSB8fCBydF90YXNrKHRhc2spKSkK IAkJCWJyZWFrOwotCi0JCS8qCi0JCSAqIFRoZSBjcHVfcmVsYXgoKSBjYWxsIGlzIGEgY29tcGls ZXIgYmFycmllciB3aGljaCBmb3JjZXMKLQkJICogZXZlcnl0aGluZyBpbiB0aGlzIGxvb3AgdG8g YmUgcmUtbG9hZGVkLiBXZSBkb24ndCBuZWVkCi0JCSAqIG1lbW9yeSBiYXJyaWVycyBhcyB3ZSds bCBldmVudHVhbGx5IG9ic2VydmUgdGhlIHJpZ2h0Ci0JCSAqIHZhbHVlcyBhdCB0aGUgY29zdCBv ZiBhIGZldyBleHRyYSBzcGlucy4KLQkJICovCi0JCWNwdV9yZWxheF9sb3dsYXRlbmN5KCk7CiAJ fQogCiAJaWYgKCF3YWl0ZXIpCiAJCW9zcV91bmxvY2soJmxvY2stPm9zcSk7CisJZWxzZQorCQls b2NrLT53YWl0ZXJfc3Bpbm5pbmcgPSBmYWxzZTsKIGRvbmU6CiAJLyoKIAkgKiBJZiB3ZSBmZWxs IG91dCBvZiB0aGUgc3BpbiBwYXRoIGJlY2F1c2Ugb2YgbmVlZF9yZXNjaGVkKCksCi0tIAoyLjUu MAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==