From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 2/4] drm/vram: Acquire lock only once per call to vmap()/vunmap() Date: Fri, 6 Sep 2019 14:20:54 +0200 Message-ID: <20190906122056.32018-3-tzimmermann@suse.de> References: <20190906122056.32018-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 341386E27F for ; Fri, 6 Sep 2019 12:21:02 +0000 (UTC) In-Reply-To: <20190906122056.32018-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, noralf@tronnes.org, airlied@linux.ie, rong.a.chen@intel.com, feng.tang@intel.com, ying.huang@intel.com, sean@poorly.run, maxime.ripard@bootlin.com, maarten.lankhorst@linux.intel.com, dave@stgolabs.net, kraxel@redhat.com Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGltcGxlbWVudGF0aW9uIG9mIHZtYXAoKSBpcyBhIGNvbWJpbmVkIHBpbigpIGFuZCBrbWFw KCkuIEFzIGJvdGgKZnVuY3Rpb25zIHNoYXJlIHRoZSBzYW1lIGxvY2ssIHdlIGNhbiBtYWtlIHZt YXAoKSBzbGlnaHRseSBmYXN0ZXIgYnkKYWNxdWlyaW5nIHRoZSBsb2NrIG9ubHkgb25jZSBmb3Ig Ym90aCBvcGVyYXRpb25zLiBTYW1lIGZvciB0aGUgaW52ZXJzZSwKdnVubWFwKCkuCgpTaWduZWQt b2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jIHwgMTE5ICsrKysrKysrKysrKysrKyst LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKaW5kZXggNWU4NmVjMDY2NDRi Li4xZTE3ZjExY2M3YjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1f aGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwpAQCAt MTk1LDMwICsxOTUsMTIgQEAgczY0IGRybV9nZW1fdnJhbV9vZmZzZXQoc3RydWN0IGRybV9nZW1f dnJhbV9vYmplY3QgKmdibykKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX29mZnNldCk7 CiAKLS8qKgotICogZHJtX2dlbV92cmFtX3BpbigpIC0gUGlucyBhIEdFTSBWUkFNIG9iamVjdCBp biBhIHJlZ2lvbi4KLSAqIEBnYm86CXRoZSBHRU0gVlJBTSBvYmplY3QKLSAqIEBwbF9mbGFnOglh IGJpdG1hc2sgb2YgcG9zc2libGUgbWVtb3J5IHJlZ2lvbnMKLSAqCi0gKiBQaW5uaW5nIGEgYnVm ZmVyIG9iamVjdCBlbnN1cmVzIHRoYXQgaXQgaXMgbm90IGV2aWN0ZWQgZnJvbQotICogYSBtZW1v cnkgcmVnaW9uLiBBIHBpbm5lZCBidWZmZXIgb2JqZWN0IGhhcyB0byBiZSB1bnBpbm5lZCBiZWZv cmUKLSAqIGl0IGNhbiBiZSBwaW5uZWQgdG8gYW5vdGhlciByZWdpb24uIElmIHRoZSBwbF9mbGFn IGFyZ3VtZW50IGlzIDAsCi0gKiB0aGUgYnVmZmVyIGlzIHBpbm5lZCBhdCBpdHMgY3VycmVudCBs b2NhdGlvbiAodmlkZW8gUkFNIG9yIHN5c3RlbQotICogbWVtb3J5KS4KLSAqCi0gKiBSZXR1cm5z OgotICogMCBvbiBzdWNjZXNzLCBvcgotICogYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lz ZS4KLSAqLwotaW50IGRybV9nZW1fdnJhbV9waW4oc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3Qg KmdibywgdW5zaWduZWQgbG9uZyBwbF9mbGFnKQorc3RhdGljIGludCBkcm1fZ2VtX3ZyYW1fcGlu X2xvY2tlZChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvLAorCQkJCSAgIHVuc2lnbmVk IGxvbmcgcGxfZmxhZykKIHsKIAlpbnQgaSwgcmV0OwogCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0 eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCi0JcmV0ID0gdHRtX2JvX3Jlc2VydmUoJmdiby0+ Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQog CWlmIChnYm8tPnBpbl9jb3VudCkKIAkJZ290byBvdXQ7CiAKQEAgLTIzMCw1OCArMjEyLDgzIEBA IGludCBkcm1fZ2VtX3ZyYW1fcGluKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8sIHVu c2lnbmVkIGxvbmcgcGxfZmxhZykKIAogCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmZ2JvLT5ibywg Jmdiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAocmV0IDwgMCkKLQkJZ290byBlcnJfdHRtX2Jv X3VucmVzZXJ2ZTsKKwkJcmV0dXJuIHJldDsKIAogb3V0OgogCSsrZ2JvLT5waW5fY291bnQ7Ci0J dHRtX2JvX3VucmVzZXJ2ZSgmZ2JvLT5ibyk7CiAKIAlyZXR1cm4gMDsKLQotZXJyX3R0bV9ib191 bnJlc2VydmU6Ci0JdHRtX2JvX3VucmVzZXJ2ZSgmZ2JvLT5ibyk7Ci0JcmV0dXJuIHJldDsKIH0K LUVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX3Bpbik7CiAKIC8qKgotICogZHJtX2dlbV92cmFt X3VucGluKCkgLSBVbnBpbnMgYSBHRU0gVlJBTSBvYmplY3QKKyAqIGRybV9nZW1fdnJhbV9waW4o KSAtIFBpbnMgYSBHRU0gVlJBTSBvYmplY3QgaW4gYSByZWdpb24uCiAgKiBAZ2JvOgl0aGUgR0VN IFZSQU0gb2JqZWN0CisgKiBAcGxfZmxhZzoJYSBiaXRtYXNrIG9mIHBvc3NpYmxlIG1lbW9yeSBy ZWdpb25zCisgKgorICogUGlubmluZyBhIGJ1ZmZlciBvYmplY3QgZW5zdXJlcyB0aGF0IGl0IGlz IG5vdCBldmljdGVkIGZyb20KKyAqIGEgbWVtb3J5IHJlZ2lvbi4gQSBwaW5uZWQgYnVmZmVyIG9i amVjdCBoYXMgdG8gYmUgdW5waW5uZWQgYmVmb3JlCisgKiBpdCBjYW4gYmUgcGlubmVkIHRvIGFu b3RoZXIgcmVnaW9uLiBJZiB0aGUgcGxfZmxhZyBhcmd1bWVudCBpcyAwLAorICogdGhlIGJ1ZmZl ciBpcyBwaW5uZWQgYXQgaXRzIGN1cnJlbnQgbG9jYXRpb24gKHZpZGVvIFJBTSBvciBzeXN0ZW0K KyAqIG1lbW9yeSkuCiAgKgogICogUmV0dXJuczoKICAqIDAgb24gc3VjY2Vzcywgb3IKICAqIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UuCiAgKi8KLWludCBkcm1fZ2VtX3ZyYW1fdW5w aW4oc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibykKK2ludCBkcm1fZ2VtX3ZyYW1fcGlu KHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8sIHVuc2lnbmVkIGxvbmcgcGxfZmxhZykK IHsKLQlpbnQgaSwgcmV0OwotCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNl LCBmYWxzZSB9OworCWludCByZXQ7CiAKIAlyZXQgPSB0dG1fYm9fcmVzZXJ2ZSgmZ2JvLT5ibywg dHJ1ZSwgZmFsc2UsIE5VTEwpOwotCWlmIChyZXQgPCAwKQorCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CisJcmV0ID0gZHJtX2dlbV92cmFtX3Bpbl9sb2NrZWQoZ2JvLCBwbF9mbGFnKTsKKwl0dG1f Ym9fdW5yZXNlcnZlKCZnYm8tPmJvKTsKKworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9M KGRybV9nZW1fdnJhbV9waW4pOworCitzdGF0aWMgaW50IGRybV9nZW1fdnJhbV91bnBpbl9sb2Nr ZWQoc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibykKK3sKKwlpbnQgaSwgcmV0OworCXN0 cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCiAJaWYgKFdB Uk5fT05fT05DRSghZ2JvLT5waW5fY291bnQpKQotCQlnb3RvIG91dDsKKwkJcmV0dXJuIDA7CiAK IAktLWdiby0+cGluX2NvdW50OwogCWlmIChnYm8tPnBpbl9jb3VudCkKLQkJZ290byBvdXQ7CisJ CXJldHVybiAwOwogCiAJZm9yIChpID0gMDsgaSA8IGdiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1l bnQgOyArK2kpCiAJCWdiby0+cGxhY2VtZW50c1tpXS5mbGFncyAmPSB+VFRNX1BMX0ZMQUdfTk9f RVZJQ1Q7CiAKIAlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmdiby0+Ym8sICZnYm8tPnBsYWNlbWVu dCwgJmN0eCk7CiAJaWYgKHJldCA8IDApCi0JCWdvdG8gZXJyX3R0bV9ib191bnJlc2VydmU7Ci0K LW91dDoKLQl0dG1fYm9fdW5yZXNlcnZlKCZnYm8tPmJvKTsKKwkJcmV0dXJuIHJldDsKIAogCXJl dHVybiAwOworfQogCi1lcnJfdHRtX2JvX3VucmVzZXJ2ZToKKy8qKgorICogZHJtX2dlbV92cmFt X3VucGluKCkgLSBVbnBpbnMgYSBHRU0gVlJBTSBvYmplY3QKKyAqIEBnYm86CXRoZSBHRU0gVlJB TSBvYmplY3QKKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzLCBvcgorICogYSBuZWdh dGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KKyAqLworaW50IGRybV9nZW1fdnJhbV91bnBpbihz dHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvKQoreworCWludCByZXQ7CisKKwlyZXQgPSB0 dG1fYm9fcmVzZXJ2ZSgmZ2JvLT5ibywgdHJ1ZSwgZmFsc2UsIE5VTEwpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisJcmV0ID0gZHJtX2dlbV92cmFtX3VucGluX2xvY2tlZChnYm8pOwogCXR0 bV9ib191bnJlc2VydmUoJmdiby0+Ym8pOworCiAJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1C T0woZHJtX2dlbV92cmFtX3VucGluKTsKQEAgLTYzNywxNSArNjQ0LDI4IEBAIHN0YXRpYyB2b2lk ICpkcm1fZ2VtX3ZyYW1fb2JqZWN0X3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0pCiAJ aW50IHJldDsKIAl2b2lkICpiYXNlOwogCi0JcmV0ID0gZHJtX2dlbV92cmFtX3BpbihnYm8sIDAp OworCXJldCA9IHR0bV9ib19yZXNlcnZlKCZnYm8tPmJvLCB0cnVlLCBmYWxzZSwgTlVMTCk7CiAJ aWYgKHJldCkKLQkJcmV0dXJuIE5VTEw7Ci0JYmFzZSA9IGRybV9nZW1fdnJhbV9rbWFwKGdibywg dHJ1ZSwgTlVMTCk7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CisKKwlyZXQgPSBkcm1fZ2VtX3Zy YW1fcGluX2xvY2tlZChnYm8sIDApOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3R0bV9ib191bnJl c2VydmU7CisJYmFzZSA9IGRybV9nZW1fdnJhbV9rbWFwX2xvY2tlZChnYm8sIHRydWUsIE5VTEwp OwogCWlmIChJU19FUlIoYmFzZSkpIHsKLQkJZHJtX2dlbV92cmFtX3VucGluKGdibyk7Ci0JCXJl dHVybiBOVUxMOworCQlyZXQgPSBQVFJfRVJSKGJhc2UpOworCQlnb3RvIGVycl9kcm1fZ2VtX3Zy YW1fdW5waW5fbG9ja2VkOwogCX0KKworCXR0bV9ib191bnJlc2VydmUoJmdiby0+Ym8pOworCiAJ cmV0dXJuIGJhc2U7CisKK2Vycl9kcm1fZ2VtX3ZyYW1fdW5waW5fbG9ja2VkOgorCWRybV9nZW1f dnJhbV91bnBpbl9sb2NrZWQoZ2JvKTsKK2Vycl90dG1fYm9fdW5yZXNlcnZlOgorCXR0bV9ib191 bnJlc2VydmUoJmdiby0+Ym8pOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIC8qKgpAQCAt NjU4LDkgKzY3OCwxNiBAQCBzdGF0aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fb2JqZWN0X3Z1bm1hcChz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwKIAkJCQkgICAgICAgdm9pZCAqdmFkZHIpCiB7CiAJ c3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oZ2Vt KTsKKwlpbnQgcmV0OwogCi0JZHJtX2dlbV92cmFtX2t1bm1hcChnYm8pOwotCWRybV9nZW1fdnJh bV91bnBpbihnYm8pOworCXJldCA9IHR0bV9ib19yZXNlcnZlKCZnYm8tPmJvLCBmYWxzZSwgZmFs c2UsIE5VTEwpOworCWlmIChXQVJOX09OQ0UocmV0LCAidHRtX2JvX3Jlc2VydmVfZmFpbGVkKCk6 IHJldD0lZFxuIiwgcmV0KSkKKwkJcmV0dXJuOworCisJZHJtX2dlbV92cmFtX2t1bm1hcF9sb2Nr ZWQoZ2JvKTsKKwlkcm1fZ2VtX3ZyYW1fdW5waW5fbG9ja2VkKGdibyk7CisKKwl0dG1fYm9fdW5y ZXNlcnZlKCZnYm8tPmJvKTsKIH0KIAogLyoKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs