From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ralph Campbell Subject: [PATCH v2 5/7] mm/hmm: make full use of walk_page_range() Date: Thu, 25 Jul 2019 17:56:48 -0700 Message-ID: <20190726005650.2566-6-rcampbell@nvidia.com> References: <20190726005650.2566-1-rcampbell@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190726005650.2566-1-rcampbell-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org Cc: Ralph Campbell , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jason Gunthorpe , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Christoph Hellwig List-Id: dri-devel@lists.freedesktop.org aG1tX3JhbmdlX2ZhdWx0KCkgY2FsbHMgZmluZF92bWEoKSBhbmQgd2Fsa19wYWdlX3JhbmdlKCkg aW4gYSBsb29wLgpUaGlzIGlzIHVubmVjZXNzYXJ5IGR1cGxpY2F0aW9uIHNpbmNlIHdhbGtfcGFn ZV9yYW5nZSgpIGNhbGxzIGZpbmRfdm1hKCkKaW4gYSBsb29wIGFscmVhZHkuClNpbXBsaWZ5IGht bV9yYW5nZV9mYXVsdCgpIGJ5IGRlZmluaW5nIGEgd2Fsa190ZXN0KCkgY2FsbGJhY2sgZnVuY3Rp b24KdG8gZmlsdGVyIHVuaGFuZGxlZCB2bWFzLgoKU2lnbmVkLW9mZi1ieTogUmFscGggQ2FtcGJl bGwgPHJjYW1wYmVsbEBudmlkaWEuY29tPgpDYzogIkrDqXLDtG1lIEdsaXNzZSIgPGpnbGlzc2VA cmVkaGF0LmNvbT4KQ2M6IEphc29uIEd1bnRob3JwZSA8amdnQG1lbGxhbm94LmNvbT4KQ2M6IENo cmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgotLS0KIG1tL2htbS5jIHwgMTMwICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9t bS9obW0uYyBiL21tL2htbS5jCmluZGV4IDFiYzAxNGNkZGQ3OC4uODM4Y2QxZDUwNDk3IDEwMDY0 NAotLS0gYS9tbS9obW0uYworKysgYi9tbS9obW0uYwpAQCAtODQwLDEzICs4NDAsNDQgQEAgc3Rh dGljIGludCBobW1fdm1hX3dhbGtfaHVnZXRsYl9lbnRyeShwdGVfdCAqcHRlLCB1bnNpZ25lZCBs b25nIGhtYXNrLAogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGhtbV9wZm5zX2NsZWFyKHN0cnVj dCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJICAgdWludDY0X3QgKnBmbnMsCi0JCQkgICB1bnNpZ25l ZCBsb25nIGFkZHIsCi0JCQkgICB1bnNpZ25lZCBsb25nIGVuZCkKK3N0YXRpYyBpbnQgaG1tX3Zt YV93YWxrX3Rlc3QodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCSAgICAgdW5zaWduZWQgbG9uZyBl bmQsCisJCQkgICAgIHN0cnVjdCBtbV93YWxrICp3YWxrKQogewotCWZvciAoOyBhZGRyIDwgZW5k OyBhZGRyICs9IFBBR0VfU0laRSwgcGZucysrKQotCQkqcGZucyA9IHJhbmdlLT52YWx1ZXNbSE1N X1BGTl9OT05FXTsKKwlzdHJ1Y3QgaG1tX3ZtYV93YWxrICpobW1fdm1hX3dhbGsgPSB3YWxrLT5w cml2YXRlOworCXN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlID0gaG1tX3ZtYV93YWxrLT5yYW5nZTsK KwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHdhbGstPnZtYTsKKworCS8qIElmIHJhbmdl IGlzIG5vIGxvbmdlciB2YWxpZCwgZm9yY2UgcmV0cnkuICovCisJaWYgKCFyYW5nZS0+dmFsaWQp CisJCXJldHVybiAtRUJVU1k7CisKKwkvKgorCSAqIFNraXAgdm1hIHJhbmdlcyB0aGF0IGRvbid0 IGhhdmUgc3RydWN0IHBhZ2UgYmFja2luZyB0aGVtIG9yCisJICogbWFwIEkvTyBkZXZpY2VzIGRp cmVjdGx5LgorCSAqIFRPRE86IGhhbmRsZSBwZWVyLXRvLXBlZXIgZGV2aWNlIG1hcHBpbmdzLgor CSAqLworCWlmICh2bWEtPnZtX2ZsYWdzICYgKFZNX0lPIHwgVk1fUEZOTUFQIHwgVk1fTUlYRURN QVApKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmIChpc192bV9odWdldGxiX3BhZ2Uodm1hKSkg eworCQlpZiAoaHVnZV9wYWdlX3NoaWZ0KGhzdGF0ZV92bWEodm1hKSkgIT0gcmFuZ2UtPnBhZ2Vf c2hpZnQgJiYKKwkJICAgIHJhbmdlLT5wYWdlX3NoaWZ0ICE9IFBBR0VfU0hJRlQpCisJCQlyZXR1 cm4gLUVJTlZBTDsKKwl9IGVsc2UgeworCQlpZiAocmFuZ2UtPnBhZ2Vfc2hpZnQgIT0gUEFHRV9T SElGVCkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qCisJICogSWYgdm1hIGRvZXMgbm90 IGFsbG93IHJlYWQgYWNjZXNzLCB0aGVuIGFzc3VtZSB0aGF0IGl0IGRvZXMgbm90CisJICogYWxs b3cgd3JpdGUgYWNjZXNzLCBlaXRoZXIuIEhNTSBkb2VzIG5vdCBzdXBwb3J0IGFyY2hpdGVjdHVy ZXMKKwkgKiB0aGF0IGFsbG93IHdyaXRlIHdpdGhvdXQgcmVhZC4KKwkgKi8KKwlpZiAoISh2bWEt PnZtX2ZsYWdzICYgVk1fUkVBRCkpCisJCXJldHVybiAtRVBFUk07CisKKwlyZXR1cm4gMDsKIH0K IAogLyoKQEAgLTk2NSw4MiArOTk2LDM1IEBAIEVYUE9SVF9TWU1CT0woaG1tX3JhbmdlX3VucmVn aXN0ZXIpOwogICovCiBsb25nIGhtbV9yYW5nZV9mYXVsdChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5n ZSwgdW5zaWduZWQgaW50IGZsYWdzKQogewotCWNvbnN0IHVuc2lnbmVkIGxvbmcgZGV2aWNlX3Zt YSA9IFZNX0lPIHwgVk1fUEZOTUFQIHwgVk1fTUlYRURNQVA7Ci0JdW5zaWduZWQgbG9uZyBzdGFy dCA9IHJhbmdlLT5zdGFydCwgZW5kOwotCXN0cnVjdCBobW1fdm1hX3dhbGsgaG1tX3ZtYV93YWxr OworCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSByYW5nZS0+c3RhcnQ7CisJc3RydWN0IGhtbV92bWFf d2FsayBobW1fdm1hX3dhbGsgPSB7fTsKIAlzdHJ1Y3QgaG1tICpobW0gPSByYW5nZS0+aG1tOwot CXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwotCXN0cnVjdCBtbV93YWxrIG1tX3dhbGs7CisJ c3RydWN0IG1tX3dhbGsgbW1fd2FsayA9IHt9OwogCWludCByZXQ7CiAKIAlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZobW0tPm1tLT5tbWFwX3NlbSk7CiAKLQlkbyB7Ci0JCS8qIElmIHJhbmdlIGlzIG5v IGxvbmdlciB2YWxpZCBmb3JjZSByZXRyeS4gKi8KLQkJaWYgKCFyYW5nZS0+dmFsaWQpCi0JCQly ZXR1cm4gLUVCVVNZOworCWhtbV92bWFfd2Fsay5yYW5nZSA9IHJhbmdlOworCWhtbV92bWFfd2Fs ay5sYXN0ID0gc3RhcnQ7CisJaG1tX3ZtYV93YWxrLmZsYWdzID0gZmxhZ3M7CisJbW1fd2Fsay5w cml2YXRlID0gJmhtbV92bWFfd2FsazsKIAotCQl2bWEgPSBmaW5kX3ZtYShobW0tPm1tLCBzdGFy dCk7Ci0JCWlmICh2bWEgPT0gTlVMTCB8fCAodm1hLT52bV9mbGFncyAmIGRldmljZV92bWEpKQot CQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQkJaWYgKGlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKSB7Ci0J CQlpZiAoaHVnZV9wYWdlX3NoaWZ0KGhzdGF0ZV92bWEodm1hKSkgIT0KLQkJCSAgICByYW5nZS0+ cGFnZV9zaGlmdCAmJgotCQkJICAgIHJhbmdlLT5wYWdlX3NoaWZ0ICE9IFBBR0VfU0hJRlQpCi0J CQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAocmFuZ2UtPnBhZ2Vfc2hpZnQg IT0gUEFHRV9TSElGVCkKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQorCW1tX3dhbGsubW0gPSBo bW0tPm1tOworCW1tX3dhbGsucHVkX2VudHJ5ID0gaG1tX3ZtYV93YWxrX3B1ZDsKKwltbV93YWxr LnBtZF9lbnRyeSA9IGhtbV92bWFfd2Fsa19wbWQ7CisJbW1fd2Fsay5wdGVfaG9sZSA9IGhtbV92 bWFfd2Fsa19ob2xlOworCW1tX3dhbGsuaHVnZXRsYl9lbnRyeSA9IGhtbV92bWFfd2Fsa19odWdl dGxiX2VudHJ5OworCW1tX3dhbGsudGVzdF93YWxrID0gaG1tX3ZtYV93YWxrX3Rlc3Q7CiAKLQkJ aWYgKCEodm1hLT52bV9mbGFncyAmIFZNX1JFQUQpKSB7Ci0JCQkvKgotCQkJICogSWYgdm1hIGRv IG5vdCBhbGxvdyByZWFkIGFjY2VzcywgdGhlbiBhc3N1bWUgdGhhdCBpdAotCQkJICogZG9lcyBu b3QgYWxsb3cgd3JpdGUgYWNjZXNzLCBlaXRoZXIuIEhNTSBkb2VzIG5vdAotCQkJICogc3VwcG9y dCBhcmNoaXRlY3R1cmUgdGhhdCBhbGxvdyB3cml0ZSB3aXRob3V0IHJlYWQuCi0JCQkgKi8KLQkJ CWhtbV9wZm5zX2NsZWFyKHJhbmdlLCByYW5nZS0+cGZucywKLQkJCQlyYW5nZS0+c3RhcnQsIHJh bmdlLT5lbmQpOwotCQkJcmV0dXJuIC1FUEVSTTsKLQkJfQorCWRvIHsKKwkJcmV0ID0gd2Fsa19w YWdlX3JhbmdlKHN0YXJ0LCByYW5nZS0+ZW5kLCAmbW1fd2Fsayk7CisJCXN0YXJ0ID0gaG1tX3Zt YV93YWxrLmxhc3Q7CiAKLQkJcmFuZ2UtPnZtYSA9IHZtYTsKLQkJaG1tX3ZtYV93YWxrLnBnbWFw ID0gTlVMTDsKLQkJaG1tX3ZtYV93YWxrLmxhc3QgPSBzdGFydDsKLQkJaG1tX3ZtYV93YWxrLmZs YWdzID0gZmxhZ3M7Ci0JCWhtbV92bWFfd2Fsay5yYW5nZSA9IHJhbmdlOwotCQltbV93YWxrLnBy aXZhdGUgPSAmaG1tX3ZtYV93YWxrOwotCQllbmQgPSBtaW4ocmFuZ2UtPmVuZCwgdm1hLT52bV9l bmQpOwotCi0JCW1tX3dhbGsudm1hID0gdm1hOwotCQltbV93YWxrLm1tID0gdm1hLT52bV9tbTsK LQkJbW1fd2Fsay5wdGVfZW50cnkgPSBOVUxMOwotCQltbV93YWxrLnRlc3Rfd2FsayA9IE5VTEw7 Ci0JCW1tX3dhbGsuaHVnZXRsYl9lbnRyeSA9IE5VTEw7Ci0JCW1tX3dhbGsucHVkX2VudHJ5ID0g aG1tX3ZtYV93YWxrX3B1ZDsKLQkJbW1fd2Fsay5wbWRfZW50cnkgPSBobW1fdm1hX3dhbGtfcG1k OwotCQltbV93YWxrLnB0ZV9ob2xlID0gaG1tX3ZtYV93YWxrX2hvbGU7Ci0JCW1tX3dhbGsuaHVn ZXRsYl9lbnRyeSA9IGhtbV92bWFfd2Fsa19odWdldGxiX2VudHJ5OwotCi0JCWRvIHsKLQkJCXJl dCA9IHdhbGtfcGFnZV9yYW5nZShzdGFydCwgZW5kLCAmbW1fd2Fsayk7Ci0JCQlzdGFydCA9IGht bV92bWFfd2Fsay5sYXN0OwotCi0JCQkvKiBLZWVwIHRyeWluZyB3aGlsZSB0aGUgcmFuZ2UgaXMg dmFsaWQuICovCi0JCX0gd2hpbGUgKHJldCA9PSAtRUJVU1kgJiYgcmFuZ2UtPnZhbGlkKTsKLQot CQlpZiAocmV0KSB7Ci0JCQl1bnNpZ25lZCBsb25nIGk7Ci0KLQkJCWkgPSAoaG1tX3ZtYV93YWxr Lmxhc3QgLSByYW5nZS0+c3RhcnQpID4+IFBBR0VfU0hJRlQ7Ci0JCQlobW1fcGZuc19jbGVhcihy YW5nZSwgJnJhbmdlLT5wZm5zW2ldLAotCQkJCWhtbV92bWFfd2Fsay5sYXN0LCByYW5nZS0+ZW5k KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQkJc3RhcnQgPSBlbmQ7CisJCS8qIEtlZXAgdHJ5aW5n IHdoaWxlIHRoZSByYW5nZSBpcyB2YWxpZC4gKi8KKwl9IHdoaWxlIChyZXQgPT0gLUVCVVNZICYm IHJhbmdlLT52YWxpZCk7CiAKLQl9IHdoaWxlIChzdGFydCA8IHJhbmdlLT5lbmQpOworCWlmIChy ZXQpCisJCXJldHVybiByZXQ7CiAKIAlyZXR1cm4gKGhtbV92bWFfd2Fsay5sYXN0IC0gcmFuZ2Ut PnN0YXJ0KSA+PiBQQUdFX1NISUZUOwogfQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZng=