From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 40/70] drm/i915: Reduce locking in gen8 IRQ handler Date: Tue, 7 Apr 2015 16:21:04 +0100 Message-ID: <1428420094-18352-41-git-send-email-chris@chris-wilson.co.uk> References: <1428420094-18352-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay.fireflyinternet.com (hostedrelay.fireflyinternet.com [109.228.30.76]) by gabe.freedesktop.org (Postfix) with ESMTP id 976A46E5B7 for ; Tue, 7 Apr 2015 08:22:15 -0700 (PDT) In-Reply-To: <1428420094-18352-1-git-send-email-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 U2ltaWxhciBpbiB2YWluIGluIHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdW5yZXF1aXJlZCBzcGlu bG9ja3MgdXNlZCBmb3IKZXhlY2xpc3QgY29tbWFuZCBzdWJtaXNzaW9uICh3aGVyZSB0aGUgZm9y Y2V3YWtlIGlzIHJlcXVpcmVkIGJ1dAptYW51YWxseSBjb250cm9sbGVkKSwgd2Uga25vdyB0aGF0 IHRoZSBJUlEgcmVnaXN0ZXJzIGFyZSBvdXRzaWRlIG9mIHRoZQpwb3dlcndlbGwgYW5kIHNvIHdl IGNhbiBhY2Nlc3MgdGhlbSBkaXJlY3RseS4gU2luY2Ugd2Ugbm93IGhhdmUgZGlyZWN0CmFjY2Vz cyBleHBvcnRlZCB2aWEgSTkxNV9SRUFEX0ZXL0k5MTVfV1JJVEVfRlcsIGxldHMgcHV0IHRob3Nl IHRvIHVzZSBpbgp0aGUgaXJxIGhhbmRsZXJzIGFzIHdlbGwuCgpJbiB0aGUgcHJvY2VzcywgcmVv cmRlciB0aGUgZXhlY2xpc3Qgc3VibWlzc2lvbiB0byBoYXBwZW4gYXMgZWFybHkgYXMKcG9zc2li bGUuCgp2MjogUmVzdHJpY3QgdGhlIHVudHJhY2VkIHJlZ2lzdGVyIG1taW8gdG8ganVzdCB0aGUg R1QgcGF0aCAoaS5lLiB0aGUKaG90cGF0aCBmb3IgZXhlY2xpc3RzKQoKU2lnbmVkLW9mZi1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggOGI1ZTAzNThjNTkyLi5jMmM4MGJmNDkw YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMTI4NSw1NiArMTI4NSw1NiBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCWlycXJldHVybl90IHJldCA9IElSUV9OT05FOwogCiAJaWYgKG1hc3Rlcl9jdGwgJiAoR0VO OF9HVF9SQ1NfSVJRIHwgR0VOOF9HVF9CQ1NfSVJRKSkgewotCQl0bXAgPSBJOTE1X1JFQUQoR0VO OF9HVF9JSVIoMCkpOworCQl0bXAgPSBJOTE1X1JFQURfRlcoR0VOOF9HVF9JSVIoMCkpOwogCQlp ZiAodG1wKSB7Ci0JCQlJOTE1X1dSSVRFKEdFTjhfR1RfSUlSKDApLCB0bXApOworCQkJSTkxNV9X UklURV9GVyhHRU44X0dUX0lJUigwKSwgdG1wKTsKIAkJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJ CQlyY3MgPSB0bXAgPj4gR0VOOF9SQ1NfSVJRX1NISUZUOwogCQkJcmluZyA9ICZkZXZfcHJpdi0+ cmluZ1tSQ1NdOwotCQkJaWYgKHJjcyAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkKLQkJCQlu b3RpZnlfcmluZyhkZXYsIHJpbmcpOwogCQkJaWYgKHJjcyAmIEdUX0NPTlRFWFRfU1dJVENIX0lO VEVSUlVQVCkKIAkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIocmluZyk7CisJCQlpZiAocmNzICYg R1RfUkVOREVSX1VTRVJfSU5URVJSVVBUKQorCQkJCW5vdGlmeV9yaW5nKGRldiwgcmluZyk7CiAK IAkJCWJjcyA9IHRtcCA+PiBHRU44X0JDU19JUlFfU0hJRlQ7CiAJCQlyaW5nID0gJmRldl9wcml2 LT5yaW5nW0JDU107Ci0JCQlpZiAoYmNzICYgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUKQotCQkJ CW5vdGlmeV9yaW5nKGRldiwgcmluZyk7CiAJCQlpZiAoYmNzICYgR1RfQ09OVEVYVF9TV0lUQ0hf SU5URVJSVVBUKQogCQkJCWludGVsX2xyY19pcnFfaGFuZGxlcihyaW5nKTsKKwkJCWlmIChiY3Mg JiBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQpCisJCQkJbm90aWZ5X3JpbmcoZGV2LCByaW5nKTsK IAkJfSBlbHNlCiAJCQlEUk1fRVJST1IoIlRoZSBtYXN0ZXIgY29udHJvbCBpbnRlcnJ1cHQgbGll ZCAoR1QwKSFcbiIpOwogCX0KIAogCWlmIChtYXN0ZXJfY3RsICYgKEdFTjhfR1RfVkNTMV9JUlEg fCBHRU44X0dUX1ZDUzJfSVJRKSkgewotCQl0bXAgPSBJOTE1X1JFQUQoR0VOOF9HVF9JSVIoMSkp OworCQl0bXAgPSBJOTE1X1JFQURfRlcoR0VOOF9HVF9JSVIoMSkpOwogCQlpZiAodG1wKSB7Ci0J CQlJOTE1X1dSSVRFKEdFTjhfR1RfSUlSKDEpLCB0bXApOworCQkJSTkxNV9XUklURV9GVyhHRU44 X0dUX0lJUigxKSwgdG1wKTsKIAkJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJCQl2Y3MgPSB0bXAg Pj4gR0VOOF9WQ1MxX0lSUV9TSElGVDsKIAkJCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbVkNTXTsK LQkJCWlmICh2Y3MgJiBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQpCi0JCQkJbm90aWZ5X3Jpbmco ZGV2LCByaW5nKTsKIAkJCWlmICh2Y3MgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpCiAJ CQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKHJpbmcpOworCQkJaWYgKHZjcyAmIEdUX1JFTkRFUl9V U0VSX0lOVEVSUlVQVCkKKwkJCQlub3RpZnlfcmluZyhkZXYsIHJpbmcpOwogCiAJCQl2Y3MgPSB0 bXAgPj4gR0VOOF9WQ1MyX0lSUV9TSElGVDsKIAkJCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbVkNT Ml07Ci0JCQlpZiAodmNzICYgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUKQotCQkJCW5vdGlmeV9y aW5nKGRldiwgcmluZyk7CiAJCQlpZiAodmNzICYgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBU KQogCQkJCWludGVsX2xyY19pcnFfaGFuZGxlcihyaW5nKTsKKwkJCWlmICh2Y3MgJiBHVF9SRU5E RVJfVVNFUl9JTlRFUlJVUFQpCisJCQkJbm90aWZ5X3JpbmcoZGV2LCByaW5nKTsKIAkJfSBlbHNl CiAJCQlEUk1fRVJST1IoIlRoZSBtYXN0ZXIgY29udHJvbCBpbnRlcnJ1cHQgbGllZCAoR1QxKSFc biIpOwogCX0KIAogCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9HVF9QTV9JUlEpIHsKLQkJdG1wID0g STkxNV9SRUFEKEdFTjhfR1RfSUlSKDIpKTsKKwkJdG1wID0gSTkxNV9SRUFEX0ZXKEdFTjhfR1Rf SUlSKDIpKTsKIAkJaWYgKHRtcCAmIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKSB7Ci0JCQlJOTE1 X1dSSVRFKEdFTjhfR1RfSUlSKDIpLAotCQkJCSAgIHRtcCAmIGRldl9wcml2LT5wbV9ycHNfZXZl bnRzKTsKKwkJCUk5MTVfV1JJVEVfRlcoR0VOOF9HVF9JSVIoMiksCisJCQkJICAgICAgdG1wICYg ZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwogCQkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAJCQlnZW42 X3Jwc19pcnFfaGFuZGxlcihkZXZfcHJpdiwgdG1wKTsKIAkJfSBlbHNlCkBAIC0xMzQyLDE3ICsx MzQyLDE3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJfQogCiAJaWYgKG1hc3Rlcl9jdGwgJiBHRU44X0dUX1ZFQ1NfSVJR KSB7Ci0JCXRtcCA9IEk5MTVfUkVBRChHRU44X0dUX0lJUigzKSk7CisJCXRtcCA9IEk5MTVfUkVB RF9GVyhHRU44X0dUX0lJUigzKSk7CiAJCWlmICh0bXApIHsKLQkJCUk5MTVfV1JJVEUoR0VOOF9H VF9JSVIoMyksIHRtcCk7CisJCQlJOTE1X1dSSVRFX0ZXKEdFTjhfR1RfSUlSKDMpLCB0bXApOwog CQkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkJCXZjcyA9IHRtcCA+PiBHRU44X1ZFQ1NfSVJRX1NI SUZUOwogCQkJcmluZyA9ICZkZXZfcHJpdi0+cmluZ1tWRUNTXTsKLQkJCWlmICh2Y3MgJiBHVF9S RU5ERVJfVVNFUl9JTlRFUlJVUFQpCi0JCQkJbm90aWZ5X3JpbmcoZGV2LCByaW5nKTsKIAkJCWlm ICh2Y3MgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpCiAJCQkJaW50ZWxfbHJjX2lycV9o YW5kbGVyKHJpbmcpOworCQkJaWYgKHZjcyAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCkKKwkJ CQlub3RpZnlfcmluZyhkZXYsIHJpbmcpOwogCQl9IGVsc2UKIAkJCURSTV9FUlJPUigiVGhlIG1h c3RlciBjb250cm9sIGludGVycnVwdCBsaWVkIChHVDMpIVxuIik7CiAJfQpAQCAtMjE3OCwxMyAr MjE3OCwxMiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICphcmcpCiAJCWF1eF9tYXNrIHw9ICBHRU45X0FVWF9DSEFOTkVMX0IgfCBHRU45X0FVWF9D SEFOTkVMX0MgfAogCQkJR0VOOV9BVVhfQ0hBTk5FTF9EOwogCi0JbWFzdGVyX2N0bCA9IEk5MTVf UkVBRChHRU44X01BU1RFUl9JUlEpOworCW1hc3Rlcl9jdGwgPSBJOTE1X1JFQURfRlcoR0VOOF9N QVNURVJfSVJRKTsKIAltYXN0ZXJfY3RsICY9IH5HRU44X01BU1RFUl9JUlFfQ09OVFJPTDsKIAlp ZiAoIW1hc3Rlcl9jdGwpCiAJCXJldHVybiBJUlFfTk9ORTsKIAotCUk5MTVfV1JJVEUoR0VOOF9N QVNURVJfSVJRLCAwKTsKLQlQT1NUSU5HX1JFQUQoR0VOOF9NQVNURVJfSVJRKTsKKwlJOTE1X1dS SVRFX0ZXKEdFTjhfTUFTVEVSX0lSUSwgMCk7CiAKIAkvKiBGaW5kLCBjbGVhciwgdGhlbiBwcm9j ZXNzIGVhY2ggc291cmNlIG9mIGludGVycnVwdCAqLwogCkBAIC0yMjgxLDggKzIyODAsOCBAQCBz dGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAK IAl9CiAKLQlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgR0VOOF9NQVNURVJfSVJRX0NPTlRS T0wpOwotCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEpOworCUk5MTVfV1JJVEVfRlcoR0VO OF9NQVNURVJfSVJRLCBHRU44X01BU1RFUl9JUlFfQ09OVFJPTCk7CisJUE9TVElOR19SRUFEX0ZX KEdFTjhfTUFTVEVSX0lSUSk7CiAKIAlyZXR1cm4gcmV0OwogfQotLSAKMi4xLjQKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==