From mboxrd@z Thu Jan 1 00:00:00 1970 From: jglisse@redhat.com Subject: [RFC PATCH 08/13] drm/nouveau: special mapping method for HMM (user interface) Date: Fri, 9 Mar 2018 22:21:36 -0500 Message-ID: <20180310032141.6096-9-jglisse@redhat.com> References: <20180310032141.6096-1-jglisse@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180310032141.6096-1-jglisse@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org Cc: Ralph Campbell , Evgeny Baskakov , linux-mm@kvack.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Ben Skeggs , John Hubbard List-Id: dri-devel@lists.freedesktop.org RnJvbTogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CgpTaWduZWQtb2ZmLWJ5 OiBKw6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KQ2M6IEJlbiBTa2VnZ3MgPGJz a2VnZ3NAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252 aWYvaWYwMDBjLmggICAgIHwgMTcgKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2lu Y2x1ZGUvbnZpZi92bW0uaCAgICAgICAgfCAgMiArCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9p bmNsdWRlL252a20vc3ViZGV2L21tdS5oIHwgMjUgKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udmlmL3ZtbS5jICAgICAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L21tdS91dm1tLmMgICAgfCA0OSAr KysrKysrKysrKysrKysrKysrKy0tLQogNSBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCsp LCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9p bmNsdWRlL252aWYvaWYwMDBjLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252 aWYvaWYwMDBjLmgKaW5kZXggMjkyOGVjZDk4OWFkLi4yYzI0ODE3Y2E1MzMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZpZi9pZjAwMGMuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252aWYvaWYwMDBjLmgKQEAgLTE0LDYgKzE0LDgg QEAgc3RydWN0IG52aWZfdm1tX3YwIHsKICNkZWZpbmUgTlZJRl9WTU1fVjBfUFVUICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIKICNkZWZpbmUg TlZJRl9WTU1fVjBfTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDMKICNkZWZpbmUgTlZJRl9WTU1fVjBfVU5NQVAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQKKyNkZWZpbmUgTlZJRl9WTU1f VjBfSE1NX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDUKKyNkZWZpbmUgTlZJRl9WTU1fVjBfSE1NX1VOTUFQICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYKIAogc3RydWN0IG52aWZfdm1tX3BhZ2VfdjAg ewogCV9fdTggIHZlcnNpb247CkBAIC02MSw0ICs2MywxOSBAQCBzdHJ1Y3QgbnZpZl92bW1fdW5t YXBfdjAgewogCV9fdTggIHBhZDAxWzddOwogCV9fdTY0IGFkZHI7CiB9OworCitzdHJ1Y3QgbnZp Zl92bW1faG1tX21hcF92MCB7CisJX191OCAgdmVyc2lvbjsKKwlfX3U4ICBwYWQwMVs3XTsKKwlf X3U2NCBhZGRyOworCV9fdTY0IG5wYWdlczsKKwlfX3U2NCBwYWdlczsKK307CisKK3N0cnVjdCBu dmlmX3ZtbV9obW1fdW5tYXBfdjAgeworCV9fdTggIHZlcnNpb247CisJX191OCAgcGFkMDFbN107 CisJX191NjQgYWRkcjsKKwlfX3U2NCBucGFnZXM7Cit9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252aWYvdm1tLmggYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9pbmNsdWRlL252aWYvdm1tLmgKaW5kZXggYzVkYjhhMmU4MmRmLi5jNWU0YWRh YTBlM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZpZi92 bW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252aWYvdm1tLmgKQEAg LTM5LDQgKzM5LDYgQEAgdm9pZCBudmlmX3ZtbV9wdXQoc3RydWN0IG52aWZfdm1tICosIHN0cnVj dCBudmlmX3ZtYSAqKTsKIGludCBudmlmX3ZtbV9tYXAoc3RydWN0IG52aWZfdm1tICosIHU2NCBh ZGRyLCB1NjQgc2l6ZSwgdm9pZCAqYXJndiwgdTMyIGFyZ2MsCiAJCSBzdHJ1Y3QgbnZpZl9tZW0g KiwgdTY0IG9mZnNldCk7CiBpbnQgbnZpZl92bW1fdW5tYXAoc3RydWN0IG52aWZfdm1tICosIHU2 NCk7CitpbnQgbnZpZl92bW1faG1tX21hcChzdHJ1Y3QgbnZpZl92bW0gKnZtbSwgdTY0IGFkZHIs IHU2NCBucGFnZXMsIHU2NCAqcGFnZXMpOworaW50IG52aWZfdm1tX2htbV91bm1hcChzdHJ1Y3Qg bnZpZl92bW0gKnZtbSwgdTY0IGFkZHIsIHU2NCBucGFnZXMpOwogI2VuZGlmCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L21tdS5oIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9tbXUuaAppbmRleCA3MTlk NTBlNjI5NmYuLjhmMDg3MThlMDVhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvaW5jbHVkZS9udmttL3N1YmRldi9tbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9pbmNsdWRlL252a20vc3ViZGV2L21tdS5oCkBAIC00LDIwICs0LDYgQEAKICNpbmNsdWRlIDxj b3JlL3N1YmRldi5oPgogI2luY2x1ZGUgPGxpbnV4L2htbS5oPgogCi0vKiBOZWVkIHRvIGNoYW5n ZSBITU0gdG8gYmUgbW9yZSBkcml2ZXIgZnJpZW5kbHkgKi8KLSNpZiBJU19FTkFCTEVEKENPTkZJ R19ITU0pCi0jZWxzZQotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGhtbV9wZm5fdDsKLSNkZWZpbmUg SE1NX1BGTl9WQUxJRCAoMSA8PCAwKQotI2RlZmluZSBITU1fUEZOX1JFQUQgKDEgPDwgMSkKLSNk ZWZpbmUgSE1NX1BGTl9XUklURSAoMSA8PCAyKQotI2RlZmluZSBITU1fUEZOX0VSUk9SICgxIDw8 IDMpCi0jZGVmaW5lIEhNTV9QRk5fRU1QVFkgKDEgPDwgNCkKLSNkZWZpbmUgSE1NX1BGTl9TUEVD SUFMICgxIDw8IDUpCi0jZGVmaW5lIEhNTV9QRk5fREVWSUNFX1VOQUREUkVTU0FCTEUgKDEgPDwg NikKLSNkZWZpbmUgSE1NX1BGTl9TSElGVCA3Ci0jZW5kaWYKLQogc3RydWN0IG52a21fdm1hIHsK IAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CiAJc3RydWN0IHJiX25vZGUgdHJlZTsKQEAgLTc5LDEw ICs2NSwxMyBAQCBzdHJ1Y3QgbnZrbV92bW1fbWFwIHsKIAlzdHJ1Y3QgbnZrbV9tbV9ub2RlICpt ZW07CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2w7CiAJZG1hX2FkZHJfdCAqZG1hOwotI2RlZmlu ZSBOVl9ITU1fUEFHRV9GTEFHX1YgSE1NX1BGTl9WQUxJRAotI2RlZmluZSBOVl9ITU1fUEFHRV9G TEFHX1cgSE1NX1BGTl9XUklURQotI2RlZmluZSBOVl9ITU1fUEFHRV9GTEFHX0UgSE1NX1BGTl9F UlJPUgotI2RlZmluZSBOVl9ITU1fUEFHRV9QRk5fU0hJRlQgSE1NX1BGTl9TSElGVAorI2RlZmlu ZSBOVl9ITU1fUEFHRV9GTEFHX1YgKDEgPDwgMCkKKyNkZWZpbmUgTlZfSE1NX1BBR0VfRkxBR19S IDAKKyNkZWZpbmUgTlZfSE1NX1BBR0VfRkxBR19XICgxIDw8IDEpCisjZGVmaW5lIE5WX0hNTV9Q QUdFX0ZMQUdfRSAoLTFVTEwpCisjZGVmaW5lIE5WX0hNTV9QQUdFX0ZMQUdfTiAwCisjZGVmaW5l IE5WX0hNTV9QQUdFX0ZMQUdfUyAoMVVMTCA8PCA2MykKKyNkZWZpbmUgTlZfSE1NX1BBR0VfUEZO X1NISUZUIDgKIAl1NjQgKnBhZ2VzOwogCXU2NCBvZmY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252aWYvdm1tLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmlm L3ZtbS5jCmluZGV4IDMxY2RiMmQyZTFmZi4uMjdhN2I5NWI0ZTljIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9udmlmL3ZtbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L252aWYvdm1tLmMKQEAgLTMyLDYgKzMyLDM1IEBAIG52aWZfdm1tX3VubWFwKHN0cnVjdCBu dmlmX3ZtbSAqdm1tLCB1NjQgYWRkcikKIAkJCQlzaXplb2Yoc3RydWN0IG52aWZfdm1tX3VubWFw X3YwKSk7CiB9CiAKK2ludAorbnZpZl92bW1faG1tX21hcChzdHJ1Y3QgbnZpZl92bW0gKnZtbSwg dTY0IGFkZHIsIHU2NCBucGFnZXMsIHU2NCAqcGFnZXMpCit7CisJc3RydWN0IG52aWZfdm1tX2ht bV9tYXBfdjAgYXJnczsKKwlpbnQgcmV0OworCisJYXJncy52ZXJzaW9uID0gMDsKKwlhcmdzLmFk ZHIgPSBhZGRyOworCWFyZ3MubnBhZ2VzID0gbnBhZ2VzOworCWFyZ3MucGFnZXMgPSAodWludDY0 X3QpcGFnZXM7CisJcmV0ID0gbnZpZl9vYmplY3RfbXRoZCgmdm1tLT5vYmplY3QsIE5WSUZfVk1N X1YwX0hNTV9NQVAsCisJCQkgICAgICAgJmFyZ3MsIHNpemVvZihhcmdzKSk7CisJcmV0dXJuIHJl dDsKK30KKworaW50CitudmlmX3ZtbV9obW1fdW5tYXAoc3RydWN0IG52aWZfdm1tICp2bW0sIHU2 NCBhZGRyLCB1NjQgbnBhZ2VzKQoreworCXN0cnVjdCBudmlmX3ZtbV9obW1fdW5tYXBfdjAgYXJn czsKKwlpbnQgcmV0OworCisJYXJncy52ZXJzaW9uID0gMDsKKwlhcmdzLmFkZHIgPSBhZGRyOwor CWFyZ3MubnBhZ2VzID0gbnBhZ2VzOworCXJldCA9IG52aWZfb2JqZWN0X210aGQoJnZtbS0+b2Jq ZWN0LCBOVklGX1ZNTV9WMF9ITU1fVU5NQVAsCisJCQkgICAgICAgJmFyZ3MsIHNpemVvZihhcmdz KSk7CisJcmV0dXJuIHJldDsKK30KKwogaW50CiBudmlmX3ZtbV9tYXAoc3RydWN0IG52aWZfdm1t ICp2bW0sIHU2NCBhZGRyLCB1NjQgc2l6ZSwgdm9pZCAqYXJndiwgdTMyIGFyZ2MsCiAJICAgICBz dHJ1Y3QgbnZpZl9tZW0gKm1lbSwgdTY0IG9mZnNldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L21tdS91dm1tLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9udmttL3N1YmRldi9tbXUvdXZtbS5jCmluZGV4IDM3YjIwMWI5NWYxNS4uNzM5ZjJhZjAy NTUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9tbXUv dXZtbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L21tdS91dm1t LmMKQEAgLTI3NCwxNiArMjc0LDU1IEBAIG52a21fdXZtbV9tdGhkX3BhZ2Uoc3RydWN0IG52a21f dXZtbSAqdXZtbSwgdm9pZCAqYXJndiwgdTMyIGFyZ2MpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBpbnQKK252a21fdXZtbV9tdGhkX2htbV9tYXAoc3RydWN0IG52a21fdXZtbSAqdXZtbSwgdm9p ZCAqYXJndiwgdTMyIGFyZ2MpCit7CisJdW5pb24geworCQlzdHJ1Y3QgbnZpZl92bW1faG1tX21h cF92MCB2MDsKKwl9ICphcmdzID0gYXJndjsKKwlzdHJ1Y3QgbnZrbV92bW0gKnZtbSA9IHV2bW0t PnZtbTsKKwlpbnQgcmV0ID0gLUVOT1NZUzsKKworCWlmICgocmV0ID0gbnZpZl91bnBhY2socmV0 LCAmYXJndiwgJmFyZ2MsIGFyZ3MtPnYwLCAwLCAwLCBmYWxzZSkpKQorCQlyZXR1cm4gcmV0Owor CisJbXV0ZXhfbG9jaygmdm1tLT5tdXRleCk7CisJbnZrbV92bW1faG1tX21hcCh2bW0sIGFyZ3Mt PnYwLmFkZHIsIGFyZ3MtPnYwLm5wYWdlcywKKwkJCSh1NjQgKilhcmdzLT52MC5wYWdlcyk7CisJ bXV0ZXhfdW5sb2NrKCZ2bW0tPm11dGV4KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAor bnZrbV91dm1tX210aGRfaG1tX3VubWFwKHN0cnVjdCBudmttX3V2bW0gKnV2bW0sIHZvaWQgKmFy Z3YsIHUzMiBhcmdjKQoreworCXVuaW9uIHsKKwkJc3RydWN0IG52aWZfdm1tX2htbV91bm1hcF92 MCB2MDsKKwl9ICphcmdzID0gYXJndjsKKwlzdHJ1Y3QgbnZrbV92bW0gKnZtbSA9IHV2bW0tPnZt bTsKKwlpbnQgcmV0ID0gLUVOT1NZUzsKKworCWlmICgocmV0ID0gbnZpZl91bnBhY2socmV0LCAm YXJndiwgJmFyZ2MsIGFyZ3MtPnYwLCAwLCAwLCBmYWxzZSkpKQorCQlyZXR1cm4gcmV0OworCisJ bXV0ZXhfbG9jaygmdm1tLT5tdXRleCk7CisJbnZrbV92bW1faG1tX3VubWFwKHZtbSwgYXJncy0+ djAuYWRkciwgYXJncy0+djAubnBhZ2VzKTsKKwltdXRleF91bmxvY2soJnZtbS0+bXV0ZXgpOwor CXJldHVybiAwOworfQorCiBzdGF0aWMgaW50CiBudmttX3V2bW1fbXRoZChzdHJ1Y3QgbnZrbV9v YmplY3QgKm9iamVjdCwgdTMyIG10aGQsIHZvaWQgKmFyZ3YsIHUzMiBhcmdjKQogewogCXN0cnVj dCBudmttX3V2bW0gKnV2bW0gPSBudmttX3V2bW0ob2JqZWN0KTsKIAlzd2l0Y2ggKG10aGQpIHsK LQljYXNlIE5WSUZfVk1NX1YwX1BBR0UgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX3BhZ2UgICh1 dm1tLCBhcmd2LCBhcmdjKTsKLQljYXNlIE5WSUZfVk1NX1YwX0dFVCAgIDogcmV0dXJuIG52a21f dXZtbV9tdGhkX2dldCAgICh1dm1tLCBhcmd2LCBhcmdjKTsKLQljYXNlIE5WSUZfVk1NX1YwX1BV VCAgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX3B1dCAgICh1dm1tLCBhcmd2LCBhcmdjKTsKLQlj YXNlIE5WSUZfVk1NX1YwX01BUCAgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX21hcCAgICh1dm1t LCBhcmd2LCBhcmdjKTsKLQljYXNlIE5WSUZfVk1NX1YwX1VOTUFQIDogcmV0dXJuIG52a21fdXZt bV9tdGhkX3VubWFwICh1dm1tLCBhcmd2LCBhcmdjKTsKKwljYXNlIE5WSUZfVk1NX1YwX1BBR0Ug ICAgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX3BhZ2UgICAgICh1dm1tLCBhcmd2LCBhcmdjKTsK KwljYXNlIE5WSUZfVk1NX1YwX0dFVCAgICAgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX2dldCAg ICAgICh1dm1tLCBhcmd2LCBhcmdjKTsKKwljYXNlIE5WSUZfVk1NX1YwX1BVVCAgICAgIDogcmV0 dXJuIG52a21fdXZtbV9tdGhkX3B1dCAgICAgICh1dm1tLCBhcmd2LCBhcmdjKTsKKwljYXNlIE5W SUZfVk1NX1YwX01BUCAgICAgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX21hcCAgICAgICh1dm1t LCBhcmd2LCBhcmdjKTsKKwljYXNlIE5WSUZfVk1NX1YwX1VOTUFQICAgIDogcmV0dXJuIG52a21f dXZtbV9tdGhkX3VubWFwICAgICh1dm1tLCBhcmd2LCBhcmdjKTsKKwljYXNlIE5WSUZfVk1NX1Yw X0hNTV9NQVAgIDogcmV0dXJuIG52a21fdXZtbV9tdGhkX2htbV9tYXAgICh1dm1tLCBhcmd2LCBh cmdjKTsKKwljYXNlIE5WSUZfVk1NX1YwX0hNTV9VTk1BUDogcmV0dXJuIG52a21fdXZtbV9tdGhk X2htbV91bm1hcCh1dm1tLCBhcmd2LCBhcmdjKTsKIAlkZWZhdWx0OgogCQlicmVhazsKIAl9Ci0t IAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=