From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Nicolai=20H=C3=A4hnle?= Subject: [PATCH v2 07/11] locking/ww_mutex: Wake at most one waiter for back off when acquiring the lock Date: Thu, 1 Dec 2016 15:06:50 +0100 Message-ID: <1480601214-26583-8-git-send-email-nhaehnle@gmail.com> References: <1480601214-26583-1-git-send-email-nhaehnle@gmail.com> 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 1D11C6E7F6 for ; Thu, 1 Dec 2016 14:07:10 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id g23so34457915wme.1 for ; Thu, 01 Dec 2016 06:07:10 -0800 (PST) In-Reply-To: <1480601214-26583-1-git-send-email-nhaehnle@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: Maarten Lankhorst , =?UTF-8?q?Nicolai=20H=C3=A4hnle?= , Peter Zijlstra , dri-devel@lists.freedesktop.org, Ingo Molnar List-Id: dri-devel@lists.freedesktop.org RnJvbTogTmljb2xhaSBIw6RobmxlIDxOaWNvbGFpLkhhZWhubGVAYW1kLmNvbT4KClRoZSB3YWl0 IGxpc3QgaXMgc29ydGVkIGJ5IHN0YW1wIG9yZGVyLCBhbmQgdGhlIG9ubHkgd2FpdGluZyB0YXNr IHRoYXQgbWF5CmhhdmUgdG8gYmFjayBvZmYgaXMgdGhlIGZpcnN0IHdhaXRlciB3aXRoIGEgY29u dGV4dC4KClRoZSByZWd1bGFyIHNsb3cgcGF0aCBkb2VzIG5vdCBoYXZlIHRvIHdha2UgYW55IG90 aGVyIHRhc2tzIGF0IGFsbCwgc2luY2UKYWxsIG90aGVyIHdhaXRlcnMgdGhhdCB3b3VsZCBoYXZl IHRvIGJhY2sgb2ZmIHdlcmUgZWl0aGVyIHdva2VuIHVwIHdoZW4KdGhlIHdhaXRlciB3YXMgYWRk ZWQgdG8gdGhlIGxpc3QsIG9yIGRldGVjdGVkIHRoZSBjb25kaXRpb24gYmVmb3JlIHRoZXkKYWRk ZWQgdGhlbXNlbHZlcy4KCk1lZGlhbiB0aW1pbmdzIHRha2VuIG9mIGEgY29udGVudGlvbi1oZWF2 eSBHUFUgd29ya2xvYWQ6CgpXaXRob3V0IHRoaXMgc2VyaWVzOgpyZWFsICAgIDBtNTkuOTAwcwp1 c2VyICAgIDBtNy41MTZzCnN5cyAgICAgMm0xNi4wNzZzCgpXaXRoIGNoYW5nZXMgdXAgdG8gYW5k IGluY2x1ZGluZyB0aGlzIHBhdGNoOgpyZWFsICAgIDBtNTIuOTQ2cwp1c2VyICAgIDBtNy4yNzJz CnN5cyAgICAgMW01NS45NjRzCgpDYzogUGV0ZXIgWmlqbHN0cmEgPHBldGVyekBpbmZyYWRlYWQu b3JnPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CkNjOiBNYWFydGVuIExhbmto b3JzdCA8ZGV2QG1ibGFua2hvcnN0Lm5sPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xs LmNoPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClNpZ25lZC1vZmYtYnk6IE5pY29sYWkgSMOkaG5s ZSA8Tmljb2xhaS5IYWVobmxlQGFtZC5jb20+Ci0tLQoga2VybmVsL2xvY2tpbmcvbXV0ZXguYyB8 IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEva2VybmVsL2xvY2tpbmcvbXV0ZXguYyBiL2tlcm5lbC9sb2NraW5nL211dGV4LmMKaW5k ZXggMDFlOTQzOC4uZDJjYTQ0NyAxMDA2NDQKLS0tIGEva2VybmVsL2xvY2tpbmcvbXV0ZXguYwor KysgYi9rZXJuZWwvbG9ja2luZy9tdXRleC5jCkBAIC0yODUsNiArMjg1LDM1IEBAIF9fd3dfbXV0 ZXhfc3RhbXBfYWZ0ZXIoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICphLCBzdHJ1Y3Qgd3dfYWNxdWly ZV9jdHggKmIpCiB9CiAKIC8qCisgKiBXYWtlIHVwIGFueSB3YWl0ZXJzIHRoYXQgbWF5IGhhdmUg dG8gYmFjayBvZmYgd2hlbiB0aGUgbG9jayBpcyBoZWxkIGJ5IHRoZQorICogZ2l2ZW4gY29udGV4 dC4KKyAqCisgKiBEdWUgdG8gdGhlIGludmFyaWFudHMgb24gdGhlIHdhaXQgbGlzdCwgdGhpcyBj YW4gb25seSBhZmZlY3QgdGhlIGZpcnN0CisgKiB3YWl0ZXIgd2l0aCBhIGNvbnRleHQuCisgKgor ICogTXVzdCBiZSBjYWxsZWQgd2l0aCB3YWl0X2xvY2sgaGVsZC4gVGhlIGN1cnJlbnQgdGFzayBt dXN0IG5vdCBiZSBvbiB0aGUKKyAqIHdhaXQgbGlzdC4KKyAqLworc3RhdGljIHZvaWQgX19zY2hl ZAorX193d19tdXRleF93YWtldXBfZm9yX2JhY2tvZmYoc3RydWN0IG11dGV4ICpsb2NrLCBzdHJ1 Y3Qgd3dfYWNxdWlyZV9jdHggKnd3X2N0eCkKK3sKKwlzdHJ1Y3QgbXV0ZXhfd2FpdGVyICpjdXI7 CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1ciwgJmxvY2stPndhaXRfbGlzdCwgbGlzdCkgewor CQlpZiAoIWN1ci0+d3dfY3R4KQorCQkJY29udGludWU7CisKKwkJaWYgKGN1ci0+d3dfY3R4LT5h Y3F1aXJlZCA+IDAgJiYKKwkJICAgIF9fd3dfbXV0ZXhfc3RhbXBfYWZ0ZXIoY3VyLT53d19jdHgs IHd3X2N0eCkpIHsKKwkJCWRlYnVnX211dGV4X3dha2Vfd2FpdGVyKGxvY2ssIGN1cik7CisJCQl3 YWtlX3VwX3Byb2Nlc3MoY3VyLT50YXNrKTsKKwkJfQorCisJCWJyZWFrOworCX0KK30KKworLyoK ICAqIEFmdGVyIGFjcXVpcmluZyBsb2NrIHdpdGggZmFzdHBhdGggb3Igd2hlbiB3ZSBsb3N0IG91 dCBpbiBjb250ZXN0ZWQKICAqIHNsb3dwYXRoLCBzZXQgY3R4IGFuZCB3YWtlIHVwIGFueSB3YWl0 ZXJzIHNvIHRoZXkgY2FuIHJlY2hlY2suCiAgKi8KQEAgLTI5Myw3ICszMjIsNiBAQCB3d19tdXRl eF9zZXRfY29udGV4dF9mYXN0cGF0aChzdHJ1Y3Qgd3dfbXV0ZXggKmxvY2ssCiAJCQkgICAgICAg c3RydWN0IHd3X2FjcXVpcmVfY3R4ICpjdHgpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlz dHJ1Y3QgbXV0ZXhfd2FpdGVyICpjdXI7CiAKIAl3d19tdXRleF9sb2NrX2FjcXVpcmVkKGxvY2ss IGN0eCk7CiAKQEAgLTMxOSwxNiArMzQ3LDE1IEBAIHd3X211dGV4X3NldF9jb250ZXh0X2Zhc3Rw YXRoKHN0cnVjdCB3d19tdXRleCAqbG9jaywKIAkgKiBzbyB0aGV5IGNhbiBzZWUgdGhlIG5ldyBs b2NrLT5jdHguCiAJICovCiAJc3Bpbl9sb2NrX211dGV4KCZsb2NrLT5iYXNlLndhaXRfbG9jaywg ZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkoY3VyLCAmbG9jay0+YmFzZS53YWl0X2xpc3Qs IGxpc3QpIHsKLQkJZGVidWdfbXV0ZXhfd2FrZV93YWl0ZXIoJmxvY2stPmJhc2UsIGN1cik7Ci0J CXdha2VfdXBfcHJvY2VzcyhjdXItPnRhc2spOwotCX0KKwlfX3d3X211dGV4X3dha2V1cF9mb3Jf YmFja29mZigmbG9jay0+YmFzZSwgY3R4KTsKIAlzcGluX3VubG9ja19tdXRleCgmbG9jay0+YmFz ZS53YWl0X2xvY2ssIGZsYWdzKTsKIH0KIAogLyoKLSAqIEFmdGVyIGFjcXVpcmluZyBsb2NrIGlu IHRoZSBzbG93cGF0aCBzZXQgY3R4IGFuZCB3YWtlIHVwIGFueQotICogd2FpdGVycyBzbyB0aGV5 IGNhbiByZWNoZWNrLgorICogQWZ0ZXIgYWNxdWlyaW5nIGxvY2sgaW4gdGhlIHNsb3dwYXRoIHNl dCBjdHguCisgKgorICogVW5saWtlIGZvciB0aGUgZmFzdCBwYXRoLCB0aGUgY2FsbGVyIGVuc3Vy ZXMgdGhhdCB3YWl0ZXJzIGFyZSB3b2tlbiB1cCB3aGVyZQorICogbmVjZXNzYXJ5LgogICoKICAq IENhbGxlcnMgbXVzdCBob2xkIHRoZSBtdXRleCB3YWl0X2xvY2suCiAgKi8KQEAgLTMzNiwxOSAr MzYzLDggQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkCiB3d19tdXRleF9zZXRfY29udGV4 dF9zbG93cGF0aChzdHJ1Y3Qgd3dfbXV0ZXggKmxvY2ssCiAJCQkgICAgICBzdHJ1Y3Qgd3dfYWNx dWlyZV9jdHggKmN0eCkKIHsKLQlzdHJ1Y3QgbXV0ZXhfd2FpdGVyICpjdXI7Ci0KIAl3d19tdXRl eF9sb2NrX2FjcXVpcmVkKGxvY2ssIGN0eCk7CiAJbG9jay0+Y3R4ID0gY3R4OwotCi0JLyoKLQkg KiBHaXZlIGFueSBwb3NzaWJsZSBzbGVlcGluZyBwcm9jZXNzZXMgdGhlIGNoYW5jZSB0byB3YWtl IHVwLAotCSAqIHNvIHRoZXkgY2FuIHJlY2hlY2sgaWYgdGhleSBoYXZlIHRvIGJhY2sgb2ZmLgot CSAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkoY3VyLCAmbG9jay0+YmFzZS53YWl0X2xpc3QsIGxp c3QpIHsKLQkJZGVidWdfbXV0ZXhfd2FrZV93YWl0ZXIoJmxvY2stPmJhc2UsIGN1cik7Ci0JCXdh a2VfdXBfcHJvY2VzcyhjdXItPnRhc2spOwotCX0KIH0KIAogI2lmZGVmIENPTkZJR19NVVRFWF9T UElOX09OX09XTkVSCkBAIC03MzcsOCArNzUzLDEyIEBAIF9fbXV0ZXhfbG9ja19jb21tb24oc3Ry dWN0IG11dGV4ICpsb2NrLCBsb25nIHN0YXRlLCB1bnNpZ25lZCBpbnQgc3ViY2xhc3MsCiAJLyoK IAkgKiBBZnRlciB3YWl0aW5nIHRvIGFjcXVpcmUgdGhlIHdhaXRfbG9jaywgdHJ5IGFnYWluLgog CSAqLwotCWlmIChfX211dGV4X3RyeWxvY2sobG9jaywgZmFsc2UpKQorCWlmIChfX211dGV4X3Ry eWxvY2sobG9jaywgZmFsc2UpKSB7CisJCWlmICh1c2Vfd3dfY3R4ICYmIHd3X2N0eCkKKwkJCV9f d3dfbXV0ZXhfd2FrZXVwX2Zvcl9iYWNrb2ZmKGxvY2ssIHd3X2N0eCk7CisKIAkJZ290byBza2lw X3dhaXQ7CisJfQogCiAJZGVidWdfbXV0ZXhfbG9ja19jb21tb24obG9jaywgJndhaXRlcik7CiAJ ZGVidWdfbXV0ZXhfYWRkX3dhaXRlcihsb2NrLCAmd2FpdGVyLCB0YXNrKTsKLS0gCjIuNy40Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK