From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 1/4] drm/vram: Add kmap ref-counting to GEM VRAM objects Date: Fri, 6 Sep 2019 14:20:53 +0200 Message-ID: <20190906122056.32018-2-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 3C3356E281 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 VGhlIGttYXAgYW5kIGt1bm1hcCBvcGVyYXRpb25zIG9mIEdFTSBWUkFNIGJ1ZmZlcnMgY2FuIG5v dyBiZSBjYWxsZWQKaW4gaW50ZXJsZWF2aW5nIHBhaXJzLiBUaGUgZmlyc3QgY2FsbCB0byBkcm1f Z2VtX3ZyYW1fa21hcCgpIG1hcHMgdGhlCmJ1ZmZlcidzIG1lbW9yeSB0byBrZXJuZWwgYWRkcmVz cyBzcGFjZSBhbmQgdGhlIGZpbmFsIGNhbGwgdG8KZHJtX2dlbV92cmFtX2t1bm1hcCgpIHVubWFw cyB0aGUgbWVtb3J5LiBJbnRlcm1lZGlhdGUgY2FsbHMgdG8gdGhlc2UKZnVuY3Rpb25zIGluY3Jl bWVudCBvciBkZWNyZW1lbnQgYSByZWZlcmVuY2UgY291bnRlci4KClRoaXMgY2hhbmdlIGFsbG93 cyBmb3Iga2VlcGluZyBidWZmZXIgbWVtb3J5IG1hcHBlZCBmb3IgbG9uZ2VyIGFuZAptaW5pbWl6 ZXMgdGhlIGFtb3VudCBvZiBjaGFuZ2VzIHRvIFRMQiwgcGFnZSB0YWJsZXMsIGV0Yy4KCnY0OgoJ KiBsb2NrIGluIGttYXAoKS9rdW5tYXAoKSB3aXRoIHR0bV9ib19yZXNlcnZlKCkKClNpZ25lZC1v ZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgpSZXZpZXdlZC1i eTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+CkNjOiBEYXZpZGxvaHIgQnVlc28g PGRhdmVAc3Rnb2xhYnMubmV0PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVs cGVyLmMgfCA3NSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGluY2x1ZGUvZHJtL2RybV9n ZW1fdnJhbV9oZWxwZXIuaCAgICAgfCAxNCArKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNl cnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2dlbV92cmFtX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxw ZXIuYwppbmRleCBmZDc1MTA3OGJhZTEuLjVlODZlYzA2NjQ0YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV92cmFtX2hlbHBlci5jCkBAIC0yNiw2ICsyNiw5IEBAIHN0YXRpYyB2b2lkIGRybV9nZW1f dnJhbV9jbGVhbnVwKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8pCiAJICogVFRNIGJ1 ZmZlciBvYmplY3QgaW4gJ2JvJyBoYXMgYWxyZWFkeSBiZWVuIGNsZWFuZWQKIAkgKiB1cDsgb25s eSByZWxlYXNlIHRoZSBHRU0gb2JqZWN0LgogCSAqLworCisJV0FSTl9PTihnYm8tPmttYXBfdXNl X2NvdW50KTsKKwogCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmdiby0+Ym8uYmFzZSk7CiB9CiAK QEAgLTI4Myw2ICsyODYsMzQgQEAgaW50IGRybV9nZW1fdnJhbV91bnBpbihzdHJ1Y3QgZHJtX2dl bV92cmFtX29iamVjdCAqZ2JvKQogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fdW5waW4p OwogCitzdGF0aWMgdm9pZCAqZHJtX2dlbV92cmFtX2ttYXBfbG9ja2VkKHN0cnVjdCBkcm1fZ2Vt X3ZyYW1fb2JqZWN0ICpnYm8sCisJCQkJICAgICAgYm9vbCBtYXAsIGJvb2wgKmlzX2lvbWVtKQor eworCWludCByZXQ7CisJc3RydWN0IHR0bV9ib19rbWFwX29iaiAqa21hcCA9ICZnYm8tPmttYXA7 CisKKwlpZiAoZ2JvLT5rbWFwX3VzZV9jb3VudCA+IDApCisJCWdvdG8gb3V0OworCisJaWYgKGtt YXAtPnZpcnR1YWwgfHwgIW1hcCkKKwkJZ290byBvdXQ7CisKKwlyZXQgPSB0dG1fYm9fa21hcCgm Z2JvLT5ibywgMCwgZ2JvLT5iby5udW1fcGFnZXMsIGttYXApOworCWlmIChyZXQpCisJCXJldHVy biBFUlJfUFRSKHJldCk7CisKK291dDoKKwlpZiAoIWttYXAtPnZpcnR1YWwpIHsKKwkJaWYgKGlz X2lvbWVtKQorCQkJKmlzX2lvbWVtID0gZmFsc2U7CisJCXJldHVybiBOVUxMOyAvKiBub3QgbWFw cGVkOyBkb24ndCBpbmNyZW1lbnQgcmVmICovCisJfQorCSsrZ2JvLT5rbWFwX3VzZV9jb3VudDsK KwlpZiAoaXNfaW9tZW0pCisJCXJldHVybiB0dG1fa21hcF9vYmpfdmlydHVhbChrbWFwLCBpc19p b21lbSk7CisJcmV0dXJuIGttYXAtPnZpcnR1YWw7Cit9CisKIC8qKgogICogZHJtX2dlbV92cmFt X2ttYXAoKSAtIE1hcHMgYSBHRU0gVlJBTSBvYmplY3QgaW50byBrZXJuZWwgYWRkcmVzcyBzcGFj ZQogICogQGdibzoJdGhlIEdFTSBWUkFNIG9iamVjdApAQCAtMzA0LDQwICszMzUsNDggQEAgdm9p ZCAqZHJtX2dlbV92cmFtX2ttYXAoc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibywgYm9v bCBtYXAsCiAJCQlib29sICppc19pb21lbSkKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCB0dG1fYm9f a21hcF9vYmogKmttYXAgPSAmZ2JvLT5rbWFwOwotCi0JaWYgKGttYXAtPnZpcnR1YWwgfHwgIW1h cCkKLQkJZ290byBvdXQ7CisJdm9pZCAqdmlydHVhbDsKIAotCXJldCA9IHR0bV9ib19rbWFwKCZn Ym8tPmJvLCAwLCBnYm8tPmJvLm51bV9wYWdlcywga21hcCk7CisJcmV0ID0gdHRtX2JvX3Jlc2Vy dmUoJmdiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gRVJS X1BUUihyZXQpOworCXZpcnR1YWwgPSBkcm1fZ2VtX3ZyYW1fa21hcF9sb2NrZWQoZ2JvLCBtYXAs IGlzX2lvbWVtKTsKKwl0dG1fYm9fdW5yZXNlcnZlKCZnYm8tPmJvKTsKIAotb3V0OgotCWlmICgh aXNfaW9tZW0pCi0JCXJldHVybiBrbWFwLT52aXJ0dWFsOwotCWlmICgha21hcC0+dmlydHVhbCkg ewotCQkqaXNfaW9tZW0gPSBmYWxzZTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCXJldHVybiB0dG1f a21hcF9vYmpfdmlydHVhbChrbWFwLCBpc19pb21lbSk7CisJcmV0dXJuIHZpcnR1YWw7CiB9CiBF WFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV9rbWFwKTsKIAotLyoqCi0gKiBkcm1fZ2VtX3ZyYW1f a3VubWFwKCkgLSBVbm1hcHMgYSBHRU0gVlJBTSBvYmplY3QKLSAqIEBnYm86CXRoZSBHRU0gVlJB TSBvYmplY3QKLSAqLwotdm9pZCBkcm1fZ2VtX3ZyYW1fa3VubWFwKHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0ICpnYm8pCitzdGF0aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fa3VubWFwX2xvY2tlZChz dHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvKQogewogCXN0cnVjdCB0dG1fYm9fa21hcF9v YmogKmttYXAgPSAmZ2JvLT5rbWFwOwogCisJaWYgKFdBUk5fT05fT05DRSghZ2JvLT5rbWFwX3Vz ZV9jb3VudCkpCisJCXJldHVybjsKKwlpZiAoLS1nYm8tPmttYXBfdXNlX2NvdW50ID4gMCkKKwkJ cmV0dXJuOworCiAJaWYgKCFrbWFwLT52aXJ0dWFsKQogCQlyZXR1cm47CiAKIAl0dG1fYm9fa3Vu bWFwKGttYXApOwogCWttYXAtPnZpcnR1YWwgPSBOVUxMOwogfQorCisvKioKKyAqIGRybV9nZW1f dnJhbV9rdW5tYXAoKSAtIFVubWFwcyBhIEdFTSBWUkFNIG9iamVjdAorICogQGdibzoJdGhlIEdF TSBWUkFNIG9iamVjdAorICovCit2b2lkIGRybV9nZW1fdnJhbV9rdW5tYXAoc3RydWN0IGRybV9n ZW1fdnJhbV9vYmplY3QgKmdibykKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gdHRtX2JvX3Jlc2Vy dmUoJmdiby0+Ym8sIGZhbHNlLCBmYWxzZSwgTlVMTCk7CisJaWYgKFdBUk5fT05DRShyZXQsICJ0 dG1fYm9fcmVzZXJ2ZV9mYWlsZWQoKTogcmV0PSVkXG4iLCByZXQpKQorCQlyZXR1cm47CisJZHJt X2dlbV92cmFtX2t1bm1hcF9sb2NrZWQoZ2JvKTsKKwl0dG1fYm9fdW5yZXNlcnZlKCZnYm8tPmJv KTsKK30KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2t1bm1hcCk7CiAKIC8qKgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJt X2dlbV92cmFtX2hlbHBlci5oCmluZGV4IGFjMjE3ZDc2ODQ1Ni4uNGYwZTIwN2VlMDk3IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX2dlbV92cmFtX2hlbHBlci5oCkBAIC0zNCwxMSArMzQsMjUgQEAgc3RydWN0IHZtX2Fy ZWFfc3RydWN0OwogICogYmFja2VkIGJ5IFZSQU0uIEl0IGNhbiBiZSB1c2VkIGZvciBzaW1wbGUg ZnJhbWVidWZmZXIgZGV2aWNlcyB3aXRoCiAgKiBkZWRpY2F0ZWQgbWVtb3J5LiBUaGUgYnVmZmVy IG9iamVjdCBjYW4gYmUgZXZpY3RlZCB0byBzeXN0ZW0gbWVtb3J5IGlmCiAgKiB2aWRlbyBtZW1v cnkgYmVjb21lcyBzY2FyY2UuCisgKgorICogR0VNIFZSQU0gb2JqZWN0cyBwZXJmb3JtIHJlZmVy ZW5jZSBjb3VudGluZyBmb3IgcGluIGFuZCBtYXBwaW5nCisgKiBvcGVyYXRpb25zLiBTbyBhIGJ1 ZmZlciBvYmplY3QgdGhhdCBoYXMgYmVlbiBwaW5uZWQgTiB0aW1lcyB3aXRoCisgKiBkcm1fZ2Vt X3ZyYW1fcGluKCkgbXVzdCBiZSB1bnBpbm5lZCBOIHRpbWVzIHdpdGgKKyAqIGRybV9nZW1fdnJh bV91bnBpbigpLiBUaGUgc2FtZSBhcHBsaWVzIHRvIHBhaXJzIG9mCisgKiBkcm1fZ2VtX3ZyYW1f a21hcCgpIGFuZCBkcm1fZ2VtX3ZyYW1fa3VubWFwKCkuCiAgKi8KIHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0IHsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgYm87CiAJc3RydWN0IHR0bV9i b19rbWFwX29iaiBrbWFwOwogCisJLyoqCisJICogQGttYXBfdXNlX2NvdW50OgorCSAqCisJICog UmVmZXJlbmNlIGNvdW50IG9uIHRoZSB2aXJ0dWFsIGFkZHJlc3MuCisJICogVGhlIGFkZHJlc3Mg YXJlIHVuLW1hcHBlZCB3aGVuIHRoZSBjb3VudCByZWFjaGVzIHplcm8uCisJICovCisJdW5zaWdu ZWQgaW50IGttYXBfdXNlX2NvdW50OworCiAJLyogU3VwcG9ydGVkIHBsYWNlbWVudHMgYXJlICVU VE1fUExfVlJBTSBhbmQgJVRUTV9QTF9TWVNURU0gKi8KIAlzdHJ1Y3QgdHRtX3BsYWNlbWVudCBw bGFjZW1lbnQ7CiAJc3RydWN0IHR0bV9wbGFjZSBwbGFjZW1lbnRzWzJdOwotLSAKMi4yMy4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=