From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v2 1/3] drm/vram: Add kmap ref-counting to GEM VRAM objects Date: Wed, 4 Sep 2019 13:56:42 +0200 Message-ID: <20190904115644.7620-2-tzimmermann@suse.de> References: <20190904115644.7620-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 78ECC898C6 for ; Wed, 4 Sep 2019 11:56:53 +0000 (UTC) In-Reply-To: <20190904115644.7620-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 Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGttYXAgYW5kIGt1bm1hcCBvcGVyYXRpb25zIG9mIEdFTSBWUkFNIGJ1ZmZlcnMgY2FuIG5v dyBiZSBjYWxsZWQKaW4gaW50ZXJsZWF2aW5nIHBhaXJzLiBUaGUgZmlyc3QgY2FsbCB0byBkcm1f Z2VtX3ZyYW1fa21hcCgpIG1hcHMgdGhlCmJ1ZmZlcidzIG1lbW9yeSB0byBrZXJuZWwgYWRkcmVz cyBzcGFjZSBhbmQgdGhlIGZpbmFsIGNhbGwgdG8KZHJtX2dlbV92cmFtX2t1bm1hcCgpIHVubWFw cyB0aGUgbWVtb3J5LiBJbnRlcm1lZGlhdGUgY2FsbHMgdG8gdGhlc2UKZnVuY3Rpb25zIGluY3Jl bWVudCBvciBkZWNyZW1lbnQgYSByZWZlcmVuY2UgY291bnRlci4KClRoaXMgY2hhbmdlIGFsbG93 cyBmb3Iga2VlcGluZyBidWZmZXIgbWVtb3J5IG1hcHBlZCBmb3IgbG9uZ2VyIGFuZAptaW5pbWl6 ZXMgdGhlIGFtb3VudCBvZiBjaGFuZ2VzIHRvIFRMQiwgcGFnZSB0YWJsZXMsIGV0Yy4KClNpZ25l ZC1vZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgpDYzogRGF2 aWRsb2hyIEJ1ZXNvIDxkYXZlQHN0Z29sYWJzLm5ldD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV92cmFtX2hlbHBlci5jIHwgNzQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBpbmNs dWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmggICAgIHwgMTkgKysrKysrKwogMiBmaWxlcyBj aGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW1fdnJhbV9oZWxwZXIuYwppbmRleCBmZDc1MTA3OGJhZTEuLjZjNzkxMjA5Mjg3NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCkBAIC0yNiw3ICsyNiwxMSBAQCBzdGF0 aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fY2xlYW51cChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAq Z2JvKQogCSAqIFRUTSBidWZmZXIgb2JqZWN0IGluICdibycgaGFzIGFscmVhZHkgYmVlbiBjbGVh bmVkCiAJICogdXA7IG9ubHkgcmVsZWFzZSB0aGUgR0VNIG9iamVjdC4KIAkgKi8KKworCVdBUk5f T04oZ2JvLT5rbWFwX3VzZV9jb3VudCk7CisKIAlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKCZnYm8t PmJvLmJhc2UpOworCW11dGV4X2Rlc3Ryb3koJmdiby0+a21hcF9sb2NrKTsKIH0KIAogc3RhdGlj IHZvaWQgZHJtX2dlbV92cmFtX2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdi bykKQEAgLTEwMCw2ICsxMDQsOCBAQCBzdGF0aWMgaW50IGRybV9nZW1fdnJhbV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJldCkKIAkJZ290byBlcnJfZHJtX2dlbV9vYmplY3Rf cmVsZWFzZTsKIAorCW11dGV4X2luaXQoJmdiby0+a21hcF9sb2NrKTsKKwogCXJldHVybiAwOwog CiBlcnJfZHJtX2dlbV9vYmplY3RfcmVsZWFzZToKQEAgLTI4Myw2ICsyODksMzQgQEAgaW50IGRy bV9nZW1fdnJhbV91bnBpbihzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvKQogfQogRVhQ T1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fdW5waW4pOwogCitzdGF0aWMgdm9pZCAqZHJtX2dlbV92 cmFtX2ttYXBfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8sCisJCQkJICAg ICAgYm9vbCBtYXAsIGJvb2wgKmlzX2lvbWVtKQoreworCWludCByZXQ7CisJc3RydWN0IHR0bV9i b19rbWFwX29iaiAqa21hcCA9ICZnYm8tPmttYXA7CisKKwlpZiAoZ2JvLT5rbWFwX3VzZV9jb3Vu dCA+IDApCisJCWdvdG8gb3V0OworCisJaWYgKGttYXAtPnZpcnR1YWwgfHwgIW1hcCkKKwkJZ290 byBvdXQ7CisKKwlyZXQgPSB0dG1fYm9fa21hcCgmZ2JvLT5ibywgMCwgZ2JvLT5iby5udW1fcGFn ZXMsIGttYXApOworCWlmIChyZXQpCisJCXJldHVybiBFUlJfUFRSKHJldCk7CisKK291dDoKKwlp ZiAoIWttYXAtPnZpcnR1YWwpIHsKKwkJaWYgKGlzX2lvbWVtKQorCQkJKmlzX2lvbWVtID0gZmFs c2U7CisJCXJldHVybiBOVUxMOyAvKiBub3QgbWFwcGVkOyBkb24ndCBpbmNyZW1lbnQgcmVmICov CisJfQorCSsrZ2JvLT5rbWFwX3VzZV9jb3VudDsKKwlpZiAoaXNfaW9tZW0pCisJCXJldHVybiB0 dG1fa21hcF9vYmpfdmlydHVhbChrbWFwLCBpc19pb21lbSk7CisJcmV0dXJuIGttYXAtPnZpcnR1 YWw7Cit9CisKIC8qKgogICogZHJtX2dlbV92cmFtX2ttYXAoKSAtIE1hcHMgYSBHRU0gVlJBTSBv YmplY3QgaW50byBrZXJuZWwgYWRkcmVzcyBzcGFjZQogICogQGdibzoJdGhlIEdFTSBWUkFNIG9i amVjdApAQCAtMzA0LDQwICszMzgsNDQgQEAgdm9pZCAqZHJtX2dlbV92cmFtX2ttYXAoc3RydWN0 IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibywgYm9vbCBtYXAsCiAJCQlib29sICppc19pb21lbSkK IHsKIAlpbnQgcmV0OwotCXN0cnVjdCB0dG1fYm9fa21hcF9vYmogKmttYXAgPSAmZ2JvLT5rbWFw OwotCi0JaWYgKGttYXAtPnZpcnR1YWwgfHwgIW1hcCkKLQkJZ290byBvdXQ7CisJdm9pZCAqdmly dHVhbDsKIAotCXJldCA9IHR0bV9ib19rbWFwKCZnYm8tPmJvLCAwLCBnYm8tPmJvLm51bV9wYWdl cywga21hcCk7CisJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZnYm8tPmttYXBfbG9j ayk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl2aXJ0dWFsID0gZHJtX2dl bV92cmFtX2ttYXBfbG9ja2VkKGdibywgbWFwLCBpc19pb21lbSk7CisJbXV0ZXhfdW5sb2NrKCZn Ym8tPmttYXBfbG9jayk7CiAKLW91dDoKLQlpZiAoIWlzX2lvbWVtKQotCQlyZXR1cm4ga21hcC0+ dmlydHVhbDsKLQlpZiAoIWttYXAtPnZpcnR1YWwpIHsKLQkJKmlzX2lvbWVtID0gZmFsc2U7Ci0J CXJldHVybiBOVUxMOwotCX0KLQlyZXR1cm4gdHRtX2ttYXBfb2JqX3ZpcnR1YWwoa21hcCwgaXNf aW9tZW0pOworCXJldHVybiB2aXJ0dWFsOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1f a21hcCk7CiAKLS8qKgotICogZHJtX2dlbV92cmFtX2t1bm1hcCgpIC0gVW5tYXBzIGEgR0VNIFZS QU0gb2JqZWN0Ci0gKiBAZ2JvOgl0aGUgR0VNIFZSQU0gb2JqZWN0Ci0gKi8KLXZvaWQgZHJtX2dl bV92cmFtX2t1bm1hcChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvKQorc3RhdGljIHZv aWQgZHJtX2dlbV92cmFtX2t1bm1hcF9sb2NrZWQoc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3Qg KmdibykKIHsKIAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqICprbWFwID0gJmdiby0+a21hcDsKIAor CWlmIChXQVJOX09OX09OQ0UoIWdiby0+a21hcF91c2VfY291bnQpKQorCQlyZXR1cm47CisJaWYg KC0tZ2JvLT5rbWFwX3VzZV9jb3VudCA+IDApCisJCXJldHVybjsKKwogCWlmICgha21hcC0+dmly dHVhbCkKIAkJcmV0dXJuOwogCiAJdHRtX2JvX2t1bm1hcChrbWFwKTsKIAlrbWFwLT52aXJ0dWFs ID0gTlVMTDsKIH0KKworLyoqCisgKiBkcm1fZ2VtX3ZyYW1fa3VubWFwKCkgLSBVbm1hcHMgYSBH RU0gVlJBTSBvYmplY3QKKyAqIEBnYm86CXRoZSBHRU0gVlJBTSBvYmplY3QKKyAqLwordm9pZCBk cm1fZ2VtX3ZyYW1fa3VubWFwKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8pCit7CisJ bXV0ZXhfbG9jaygmZ2JvLT5rbWFwX2xvY2spOworCWRybV9nZW1fdnJhbV9rdW5tYXBfbG9ja2Vk KGdibyk7CisJbXV0ZXhfdW5sb2NrKCZnYm8tPmttYXBfbG9jayk7Cit9CiBFWFBPUlRfU1lNQk9M KGRybV9nZW1fdnJhbV9rdW5tYXApOwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9nZW1fdnJhbV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaApp bmRleCBhYzIxN2Q3Njg0NTYuLjhjMDhiYzg3Yjc4OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2dlbV92cmFtX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxw ZXIuaApAQCAtMzQsMTEgKzM0LDMwIEBAIHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKICAqIGJhY2tl ZCBieSBWUkFNLiBJdCBjYW4gYmUgdXNlZCBmb3Igc2ltcGxlIGZyYW1lYnVmZmVyIGRldmljZXMg d2l0aAogICogZGVkaWNhdGVkIG1lbW9yeS4gVGhlIGJ1ZmZlciBvYmplY3QgY2FuIGJlIGV2aWN0 ZWQgdG8gc3lzdGVtIG1lbW9yeSBpZgogICogdmlkZW8gbWVtb3J5IGJlY29tZXMgc2NhcmNlLgor ICoKKyAqIEdFTSBWUkFNIG9iamVjdHMgcGVyZm9ybSByZWZlcmVuY2UgY291bnRpbmcgZm9yIHBp biBhbmQgbWFwcGluZworICogb3BlcmF0aW9ucy4gU28gYSBidWZmZXIgb2JqZWN0IHRoYXQgaGFz IGJlZW4gcGlubmVkIE4gdGltZXMgd2l0aAorICogZHJtX2dlbV92cmFtX3BpbigpIG11c3QgYmUg dW5waW5uZWQgTiB0aW1lcyB3aXRoCisgKiBkcm1fZ2VtX3ZyYW1fdW5waW4oKS4gVGhlIHNhbWUg YXBwbGllcyB0byBwYWlycyBvZgorICogZHJtX2dlbV92cmFtX2ttYXAoKSBhbmQgZHJtX2dlbV92 cmFtX2t1bm1hcCgpLgogICovCiBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCB7CiAJc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0IGJvOwogCXN0cnVjdCB0dG1fYm9fa21hcF9vYmoga21hcDsKIAor CS8qKgorCSAqIEBrbWFwX2xvY2s6IFByb3RlY3RzIHRoZSBrbWFwIGFkZHJlc3MgYW5kIHVzZSBj b3VudAorCSAqLworCXN0cnVjdCBtdXRleCBrbWFwX2xvY2s7CisKKwkvKioKKwkgKiBAa21hcF91 c2VfY291bnQ6CisJICoKKwkgKiBSZWZlcmVuY2UgY291bnQgb24gdGhlIHZpcnR1YWwgYWRkcmVz cy4KKwkgKiBUaGUgYWRkcmVzcyBhcmUgdW4tbWFwcGVkIHdoZW4gdGhlIGNvdW50IHJlYWNoZXMg emVyby4KKwkgKi8KKwl1bnNpZ25lZCBpbnQga21hcF91c2VfY291bnQ7CisKIAkvKiBTdXBwb3J0 ZWQgcGxhY2VtZW50cyBhcmUgJVRUTV9QTF9WUkFNIGFuZCAlVFRNX1BMX1NZU1RFTSAqLwogCXN0 cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKIAlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVu dHNbMl07Ci0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbA==