From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH 1/3] drm/vram-helpers: Add kmap ref-counting to GEM VRAM objects Date: Thu, 1 Aug 2019 13:56:40 +0200 Message-ID: <20190801115642.21231-2-tzimmermann@suse.de> References: <20190801115642.21231-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 50CA16E566 for ; Thu, 1 Aug 2019 11:56:47 +0000 (UTC) In-Reply-To: <20190801115642.21231-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 Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGttYXAgYW5kIGt1bm1hcCBvcGVyYXRpb25zIG9mIEdFTSBWUkFNIGJ1ZmZlcnMgY2FuIG5v dyBiZSBjYWxsZWQKaW4gaW50ZXJsZWF2aW5nIHBhaXJzLiBUaGUgZmlyc3QgY2FsbCB0byBkcm1f Z2VtX3ZyYW1fa21hcCgpIG1hcHMgdGhlCmJ1ZmZlcidzIG1lbW9yeSB0byBrZXJuZWwgYWRkcmVz cyBzcGFjZSBhbmQgdGhlIGZpbmFsIGNhbGwgdG8KZHJtX2dlbV92cmFtX2t1bm1hcCgpIHVubWFw cyB0aGUgbWVtb3J5LiBJbnRlcm1lZGlhdGUgY2FsbHMgdG8gdGhlc2UKZnVuY3Rpb25zIGluY3Jl bWVudCBvciBkZWNyZW1lbnQgYSByZWZlcmVuY2UgY291bnRlci4KClRoaXMgY2hhbmdlIGFsbG93 cyBmb3Iga2VlcGluZyBidWZmZXIgbWVtb3J5IG1hcHBlZCBmb3IgbG9uZ2VyIGFuZAptaW5pbWl6 ZXMgdGhlIGFtb3VudCBvZiBjaGFuZ2VzIHRvIFRMQiwgcGFnZSB0YWJsZXMsIGV0Yy4gVGhlIGxh dHRlcgppcyByZXF1aXJlZCB0byB3b3JrIGFyb3VuZCBhIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24g d2hlcmUgdGhlIGZiZGV2CmNvZGUgZnJlcXVlbnRseSBtYXBwZWQgYW5kIHVubWFwcGVkIFZBTSBi dWZmZXJzLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1 c2UuZGU+CkZpeGVzOiBjZjFjYTlhZWI5MzAgKCJkcm0vZmItaGVscGVyOiBNYXAgRFJNIGNsaWVu dCBidWZmZXIgb25seSB3aGVuIHJlcXVpcmVkIikKQ2M6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxm QHRyb25uZXMub3JnPgpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KQ2M6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5j b20+CkNjOiBTZWFuIFBhdWwgPHNlYW5AcG9vcmx5LnJ1bj4KQ2M6IERhdmlkIEFpcmxpZSA8YWly bGllZEBsaW51eC5pZT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KQ2M6IFJv bmcgQ2hlbiA8cm9uZy5hLmNoZW5AaW50ZWwuY29tPgpDYzogRmVuZyBUYW5nIDxmZW5nLnRhbmdA aW50ZWwuY29tPgpDYzogSHVhbmcgWWluZyA8eWluZy5odWFuZ0BpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyB8IDc0ICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLQogaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oICAgICB8IDEzICsr KysrCiAyIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCmluZGV4IGUwZmJmYjY1NzBjZi4uZGI0 YjhiZjE2NzI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKQEAgLTI2LDcg KzI2LDExIEBAIHN0YXRpYyB2b2lkIGRybV9nZW1fdnJhbV9jbGVhbnVwKHN0cnVjdCBkcm1fZ2Vt X3ZyYW1fb2JqZWN0ICpnYm8pCiAJICogVFRNIGJ1ZmZlciBvYmplY3QgaW4gJ2JvJyBoYXMgYWxy ZWFkeSBiZWVuIGNsZWFuZWQKIAkgKiB1cDsgb25seSByZWxlYXNlIHRoZSBHRU0gb2JqZWN0Lgog CSAqLworCisJV0FSTl9PTihnYm8tPmttYXBfdXNlX2NvdW50KTsKKwogCWRybV9nZW1fb2JqZWN0 X3JlbGVhc2UoJmdiby0+Z2VtKTsKKwltdXRleF9kZXN0cm95KCZnYm8tPmttYXBfbG9jayk7CiB9 CiAKIHN0YXRpYyB2b2lkIGRybV9nZW1fdnJhbV9kZXN0cm95KHN0cnVjdCBkcm1fZ2VtX3ZyYW1f b2JqZWN0ICpnYm8pCkBAIC0xMDAsNiArMTA0LDggQEAgc3RhdGljIGludCBkcm1fZ2VtX3ZyYW1f aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2RybV9n ZW1fb2JqZWN0X3JlbGVhc2U7CiAKKwltdXRleF9pbml0KCZnYm8tPmttYXBfbG9jayk7CisKIAly ZXR1cm4gMDsKIAogZXJyX2RybV9nZW1fb2JqZWN0X3JlbGVhc2U6CkBAIC0yODMsNiArMjg5LDM0 IEBAIGludCBkcm1fZ2VtX3ZyYW1fdW5waW4oc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdi bykKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX3VucGluKTsKIAorc3RhdGljIHZvaWQg KmRybV9nZW1fdnJhbV9rbWFwX2xvY2tlZChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2Jv LAorCQkJCSAgICAgIGJvb2wgbWFwLCBib29sICppc19pb21lbSkKK3sKKwlpbnQgcmV0OworCXN0 cnVjdCB0dG1fYm9fa21hcF9vYmogKmttYXAgPSAmZ2JvLT5rbWFwOworCisJaWYgKGdiby0+a21h cF91c2VfY291bnQgPiAwKQorCQlnb3RvIG91dDsKKworCWlmIChrbWFwLT52aXJ0dWFsIHx8ICFt YXApCisJCWdvdG8gb3V0OworCisJcmV0ID0gdHRtX2JvX2ttYXAoJmdiby0+Ym8sIDAsIGdiby0+ Ym8ubnVtX3BhZ2VzLCBrbWFwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gRVJSX1BUUihyZXQpOwor CitvdXQ6CisJaWYgKCFrbWFwLT52aXJ0dWFsKSB7CisJCWlmIChpc19pb21lbSkKKwkJCSppc19p b21lbSA9IGZhbHNlOworCQlyZXR1cm4gTlVMTDsgLyogbm90IG1hcHBlZDsgZG9uJ3QgaW5jcmVt ZW50IHJlZiAqLworCX0KKwkrK2diby0+a21hcF91c2VfY291bnQ7CisJaWYgKGlzX2lvbWVtKQor CQlyZXR1cm4gdHRtX2ttYXBfb2JqX3ZpcnR1YWwoa21hcCwgaXNfaW9tZW0pOworCXJldHVybiBr bWFwLT52aXJ0dWFsOworfQorCiAvKioKICAqIGRybV9nZW1fdnJhbV9rbWFwKCkgLSBNYXBzIGEg R0VNIFZSQU0gb2JqZWN0IGludG8ga2VybmVsIGFkZHJlc3Mgc3BhY2UKICAqIEBnYm86CXRoZSBH RU0gVlJBTSBvYmplY3QKQEAgLTMwNCw0MCArMzM4LDQ0IEBAIHZvaWQgKmRybV9nZW1fdnJhbV9r bWFwKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8sIGJvb2wgbWFwLAogCQkJYm9vbCAq aXNfaW9tZW0pCiB7CiAJaW50IHJldDsKLQlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqICprbWFwID0g Jmdiby0+a21hcDsKLQotCWlmIChrbWFwLT52aXJ0dWFsIHx8ICFtYXApCi0JCWdvdG8gb3V0Owor CXZvaWQgKnZpcnR1YWw7CiAKLQlyZXQgPSB0dG1fYm9fa21hcCgmZ2JvLT5ibywgMCwgZ2JvLT5i by5udW1fcGFnZXMsIGttYXApOworCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZ2Jv LT5rbWFwX2xvY2spOwogCWlmIChyZXQpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CisJdmlydHVh bCA9IGRybV9nZW1fdnJhbV9rbWFwX2xvY2tlZChnYm8sIG1hcCwgaXNfaW9tZW0pOworCW11dGV4 X3VubG9jaygmZ2JvLT5rbWFwX2xvY2spOwogCi1vdXQ6Ci0JaWYgKCFpc19pb21lbSkKLQkJcmV0 dXJuIGttYXAtPnZpcnR1YWw7Ci0JaWYgKCFrbWFwLT52aXJ0dWFsKSB7Ci0JCSppc19pb21lbSA9 IGZhbHNlOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0JcmV0dXJuIHR0bV9rbWFwX29ial92aXJ0dWFs KGttYXAsIGlzX2lvbWVtKTsKKwlyZXR1cm4gdmlydHVhbDsKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2dlbV92cmFtX2ttYXApOwogCi0vKioKLSAqIGRybV9nZW1fdnJhbV9rdW5tYXAoKSAtIFVubWFw cyBhIEdFTSBWUkFNIG9iamVjdAotICogQGdibzoJdGhlIEdFTSBWUkFNIG9iamVjdAotICovCi12 b2lkIGRybV9nZW1fdnJhbV9rdW5tYXAoc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibykK K3N0YXRpYyB2b2lkIGRybV9nZW1fdnJhbV9rdW5tYXBfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0ICpnYm8pCiB7CiAJc3RydWN0IHR0bV9ib19rbWFwX29iaiAqa21hcCA9ICZnYm8t PmttYXA7CiAKKwlpZiAoV0FSTl9PTl9PTkNFKCFnYm8tPmttYXBfdXNlX2NvdW50KSkKKwkJcmV0 dXJuOworCWlmICgtLWdiby0+a21hcF91c2VfY291bnQgPiAwKQorCQlyZXR1cm47CisKIAlpZiAo IWttYXAtPnZpcnR1YWwpCiAJCXJldHVybjsKIAogCXR0bV9ib19rdW5tYXAoa21hcCk7CiAJa21h cC0+dmlydHVhbCA9IE5VTEw7CiB9CisKKy8qKgorICogZHJtX2dlbV92cmFtX2t1bm1hcCgpIC0g VW5tYXBzIGEgR0VNIFZSQU0gb2JqZWN0CisgKiBAZ2JvOgl0aGUgR0VNIFZSQU0gb2JqZWN0Cisg Ki8KK3ZvaWQgZHJtX2dlbV92cmFtX2t1bm1hcChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAq Z2JvKQoreworCW11dGV4X2xvY2soJmdiby0+a21hcF9sb2NrKTsKKwlkcm1fZ2VtX3ZyYW1fa3Vu bWFwX2xvY2tlZChnYm8pOworCW11dGV4X3VubG9jaygmZ2JvLT5rbWFwX2xvY2spOworfQogRVhQ T1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fa3VubWFwKTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtX3ZyYW1f aGVscGVyLmgKaW5kZXggYjQxZDkzMmViNTNhLi40N2Y3ZTAxZDI4MDUgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZ2Vt X3ZyYW1faGVscGVyLmgKQEAgLTQwLDYgKzQwLDE5IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2Jq ZWN0IHsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgYm87CiAJc3RydWN0IHR0bV9ib19rbWFw X29iaiBrbWFwOwogCisJLyoqCisJICogQGttYXBfbG9jazogUHJvdGVjdHMgdGhlIGttYXAgYWRk cmVzcyBhbmQgdXNlIGNvdW50CisJICovCisJc3RydWN0IG11dGV4IGttYXBfbG9jazsKKworCS8q KgorCSAqIEBrbWFwX3VzZV9jb3VudDoKKwkgKgorCSAqIFJlZmVyZW5jZSBjb3VudCBvbiB0aGUg dmlydHVhbCBhZGRyZXNzLgorCSAqIFRoZSBhZGRyZXNzIGFyZSB1bi1tYXBwZWQgd2hlbiB0aGUg Y291bnQgcmVhY2hlcyB6ZXJvLgorCSAqLworCXVuc2lnbmVkIGludCBrbWFwX3VzZV9jb3VudDsK KwogCS8qIFN1cHBvcnRlZCBwbGFjZW1lbnRzIGFyZSAlVFRNX1BMX1ZSQU0gYW5kICVUVE1fUExf U1lTVEVNICovCiAJc3RydWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50OwogCXN0cnVjdCB0dG1f cGxhY2UgcGxhY2VtZW50c1syXTsKLS0gCjIuMjIuMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVs