From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: [PATCH v4 hmm 07/12] mm/hmm: Hold on to the mmget for the lifetime of the range Date: Mon, 24 Jun 2019 18:01:05 -0300 Message-ID: <20190624210110.5098-8-jgg@ziepe.ca> References: <20190624210110.5098-1-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190624210110.5098-1-jgg-uk2M96/98Pc@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: Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling-5C7GfCeVMHo@public.gmane.org Cc: Andrea Arcangeli , Philip Yang , linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Jason Gunthorpe , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Ira Weiny , Christoph Hellwig , Ben Skeggs List-Id: linux-rdma@vger.kernel.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKUmFuZ2UgZnVuY3Rpb25z IGxpa2UgaG1tX3JhbmdlX3NuYXBzaG90KCkgYW5kIGhtbV9yYW5nZV9mYXVsdCgpIGNhbGwKZmlu ZF92bWEsIHdoaWNoIHJlcXVpcmVzIGhvZGxpbmcgdGhlIG1tZ2V0KCkgYW5kIHRoZSBtbWFwX3Nl bSBmb3IgdGhlIG1tLgoKTWFrZSB0aGlzIHNpbXBsZXIgZm9yIHRoZSBjYWxsZXJzIGJ5IGhvbGRp bmcgdGhlIG1tZ2V0KCkgaW5zaWRlIHRoZSByYW5nZQpmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBy YW5nZS4gT3RoZXIgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGEgcmFuZ2Ugc2hvdWxkCm9ubHkgYmUg Y2FsbGVkIGlmIHRoZSByYW5nZSBpcyByZWdpc3RlcmVkLgoKVGhpcyBoYXMgdGhlIHNpZGUgZWZm ZWN0IG9mIGRpcmVjdGx5IHByZXZlbnRpbmcgaG1tX3JlbGVhc2UoKSBmcm9tCmhhcHBlbmluZyB3 aGlsZSBhIHJhbmdlIGlzIHJlZ2lzdGVyZWQuIFRoYXQgbWVhbnMgcmFuZ2UtPmRlYWQgY2Fubm90 IGJlCmZhbHNlIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIHJhbmdlLCBzbyByZW1vdmUgZGVh ZCBhbmQKaG1tX21pcnJvcl9tbV9pc19hbGl2ZSgpIGVudGlyZWx5LgoKU2lnbmVkLW9mZi1ieTog SmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSm9obiBIdWJi YXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogUmFscGggQ2FtcGJlbGwgPHJj YW1wYmVsbEBudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBs c3QuZGU+ClRlc3RlZC1ieTogUGhpbGlwIFlhbmcgPFBoaWxpcC5ZYW5nQGFtZC5jb20+Ci0tLQp2 MjoKIC0gVXNlIEplcm9tZSdzIGlkZWEgb2YganVzdCBob2xkaW5nIHRoZSBtbWdldCgpIGZvciB0 aGUgcmFuZ2UgbGlmZXRpbWUsCiAgIHJld29yayB0aGUgcGF0Y2ggdG8gdXNlIHRoYXQgYXMgYXMg c2ltcGxpZmljYXRpb24gdG8gcmVtb3ZlIGRlYWQgaW4KICAgb25lIHN0ZXAKdjM6CiAtIFVzZSBs aXN0X2RlbF9jYXJlZnVsIChDaHJpc3RvcGgpCi0tLQogaW5jbHVkZS9saW51eC9obW0uaCB8IDI2 IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtbS9obW0uYyAgICAgICAgICAgIHwgMzIgKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0 aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9obW0u aCBiL2luY2x1ZGUvbGludXgvaG1tLmgKaW5kZXggMjZlN2M0Nzc0OTBjNGUuLmJmMDEzZTk2NTI1 NzcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2htbS5oCisrKyBiL2luY2x1ZGUvbGludXgv aG1tLmgKQEAgLTgyLDcgKzgyLDYgQEAKICAqIEBtaXJyb3JzX3NlbTogcmVhZC93cml0ZSBzZW1h cGhvcmUgcHJvdGVjdGluZyB0aGUgbWlycm9ycyBsaXN0CiAgKiBAd3E6IHdhaXQgcXVldWUgZm9y IHVzZXIgd2FpdGluZyBvbiBhIHJhbmdlIGludmFsaWRhdGlvbgogICogQG5vdGlmaWVyczogY291 bnQgb2YgYWN0aXZlIG1tdSBub3RpZmllcnMKLSAqIEBkZWFkOiBpcyB0aGUgbW0gZGVhZCA/CiAg Ki8KIHN0cnVjdCBobW0gewogCXN0cnVjdCBtbV9zdHJ1Y3QJKm1tOwpAQCAtOTUsNyArOTQsNiBA QCBzdHJ1Y3QgaG1tIHsKIAl3YWl0X3F1ZXVlX2hlYWRfdAl3cTsKIAlzdHJ1Y3QgcmN1X2hlYWQJ CXJjdTsKIAlsb25nCQkJbm90aWZpZXJzOwotCWJvb2wJCQlkZWFkOwogfTsKIAogLyoKQEAgLTQ1 OSwzMCArNDU3LDYgQEAgc3RydWN0IGhtbV9taXJyb3IgewogaW50IGhtbV9taXJyb3JfcmVnaXN0 ZXIoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogdm9p ZCBobW1fbWlycm9yX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcik7CiAKLS8q Ci0gKiBobW1fbWlycm9yX21tX2lzX2FsaXZlKCkgLSB0ZXN0IGlmIG1tIGlzIHN0aWxsIGFsaXZl Ci0gKiBAbWlycm9yOiB0aGUgSE1NIG1tIG1pcnJvciBmb3Igd2hpY2ggd2Ugd2FudCB0byBsb2Nr IHRoZSBtbWFwX3NlbQotICogUmV0dXJuOiBmYWxzZSBpZiB0aGUgbW0gaXMgZGVhZCwgdHJ1ZSBv dGhlcndpc2UKLSAqCi0gKiBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiwgaXQgd2lsbCBub3QgYWx3 YXlzIGFjY3VyYXRlbHkgcmV0dXJuIGZhbHNlIGlmIHRoZQotICogbW0gaXMgZGVhZDsgaS5lLiwg dGhlcmUgY2FuIGJlIGZhbHNlIG5lZ2F0aXZlcyAocHJvY2VzcyBpcyBiZWluZyBraWxsZWQgYnV0 Ci0gKiBITU0gaXMgbm90IHlldCBpbmZvcm1lZCBvZiB0aGF0KS4gSXQgaXMgb25seSBpbnRlbmRl ZCB0byBiZSB1c2VkIHRvIG9wdGltaXplCi0gKiBvdXQgY2FzZXMgd2hlcmUgdGhlIGRyaXZlciBp cyBhYm91dCB0byBkbyBzb21ldGhpbmcgdGltZSBjb25zdW1pbmcgYW5kIGl0Ci0gKiB3b3VsZCBi ZSBiZXR0ZXIgdG8gc2tpcCBpdCBpZiB0aGUgbW0gaXMgZGVhZC4KLSAqLwotc3RhdGljIGlubGlu ZSBib29sIGhtbV9taXJyb3JfbW1faXNfYWxpdmUoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcikK LXsKLQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKLQotCWlmICghbWlycm9yIHx8ICFtaXJyb3ItPmht bSkKLQkJcmV0dXJuIGZhbHNlOwotCW1tID0gUkVBRF9PTkNFKG1pcnJvci0+aG1tLT5tbSk7Ci0J aWYgKG1pcnJvci0+aG1tLT5kZWFkIHx8ICFtbSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJu IHRydWU7Ci19Ci0KIC8qCiAgKiBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vdm0vaG1tLnJzdCBm b3IgaG93IHRvIHVzZSB0aGUgcmFuZ2UgQVBJLgogICovCmRpZmYgLS1naXQgYS9tbS9obW0uYyBi L21tL2htbS5jCmluZGV4IDczYzhhZjQ4MjdmZTg3Li4xZWRkZGE0NWNlZmFlNyAxMDA2NDQKLS0t IGEvbW0vaG1tLmMKKysrIGIvbW0vaG1tLmMKQEAgLTY3LDcgKzY3LDYgQEAgc3RhdGljIHN0cnVj dCBobW0gKmhtbV9nZXRfb3JfY3JlYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogCW11dGV4X2lu aXQoJmhtbS0+bG9jayk7CiAJa3JlZl9pbml0KCZobW0tPmtyZWYpOwogCWhtbS0+bm90aWZpZXJz ID0gMDsKLQlobW0tPmRlYWQgPSBmYWxzZTsKIAlobW0tPm1tID0gbW07CiAKIAlobW0tPm1tdV9u b3RpZmllci5vcHMgPSAmaG1tX21tdV9ub3RpZmllcl9vcHM7CkBAIC0xMjAsMjEgKzExOSwxNiBA QCBzdGF0aWMgdm9pZCBobW1fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0 IG1tX3N0cnVjdCAqbW0pCiB7CiAJc3RydWN0IGhtbSAqaG1tID0gY29udGFpbmVyX29mKG1uLCBz dHJ1Y3QgaG1tLCBtbXVfbm90aWZpZXIpOwogCXN0cnVjdCBobW1fbWlycm9yICptaXJyb3I7Ci0J c3RydWN0IGhtbV9yYW5nZSAqcmFuZ2U7CiAKIAkvKiBCYWlsIG91dCBpZiBobW0gaXMgaW4gdGhl IHByb2Nlc3Mgb2YgYmVpbmcgZnJlZWQgKi8KIAlpZiAoIWtyZWZfZ2V0X3VubGVzc196ZXJvKCZo bW0tPmtyZWYpKQogCQlyZXR1cm47CiAKLQkvKiBSZXBvcnQgdGhpcyBITU0gYXMgZHlpbmcuICov Ci0JaG1tLT5kZWFkID0gdHJ1ZTsKLQotCS8qIFdha2UtdXAgZXZlcnlvbmUgd2FpdGluZyBvbiBh bnkgcmFuZ2UuICovCi0JbXV0ZXhfbG9jaygmaG1tLT5sb2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHJhbmdlLCAmaG1tLT5yYW5nZXMsIGxpc3QpCi0JCXJhbmdlLT52YWxpZCA9IGZhbHNlOwot CXdha2VfdXBfYWxsKCZobW0tPndxKTsKLQltdXRleF91bmxvY2soJmhtbS0+bG9jayk7CisJLyoK KwkgKiBTaW5jZSBobW1fcmFuZ2VfcmVnaXN0ZXIoKSBob2xkcyB0aGUgbW1nZXQoKSBsb2NrIGht bV9yZWxlYXNlKCkgaXMKKwkgKiBwcmV2ZW50ZWQgYXMgbG9uZyBhcyBhIHJhbmdlIGV4aXN0cy4K KwkgKi8KKwlXQVJOX09OKCFsaXN0X2VtcHR5X2NhcmVmdWwoJmhtbS0+cmFuZ2VzKSk7CiAKIAlk b3duX3dyaXRlKCZobW0tPm1pcnJvcnNfc2VtKTsKIAltaXJyb3IgPSBsaXN0X2ZpcnN0X2VudHJ5 X29yX251bGwoJmhtbS0+bWlycm9ycywgc3RydWN0IGhtbV9taXJyb3IsCkBAIC05MDMsOCArODk3 LDggQEAgaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKIAly YW5nZS0+c3RhcnQgPSBzdGFydDsKIAlyYW5nZS0+ZW5kID0gZW5kOwogCi0JLyogQ2hlY2sgaWYg aG1tX21tX2Rlc3Ryb3koKSB3YXMgY2FsbC4gKi8KLQlpZiAoaG1tLT5tbSA9PSBOVUxMIHx8IGht bS0+ZGVhZCkKKwkvKiBQcmV2ZW50IGhtbV9yZWxlYXNlKCkgZnJvbSBydW5uaW5nIHdoaWxlIHRo ZSByYW5nZSBpcyB2YWxpZCAqLworCWlmICghbW1nZXRfbm90X3plcm8oaG1tLT5tbSkpCiAJCXJl dHVybiAtRUZBVUxUOwogCiAJLyogSW5pdGlhbGl6ZSByYW5nZSB0byB0cmFjayBDUFUgcGFnZSB0 YWJsZSB1cGRhdGVzLiAqLwpAQCAtOTQyLDExICs5MzYsMTIgQEAgdm9pZCBobW1fcmFuZ2VfdW5y ZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkKIAkJcmV0dXJuOwogCiAJbXV0ZXhfbG9j aygmaG1tLT5sb2NrKTsKLQlsaXN0X2RlbCgmcmFuZ2UtPmxpc3QpOworCWxpc3RfZGVsX2luaXQo JnJhbmdlLT5saXN0KTsKIAltdXRleF91bmxvY2soJmhtbS0+bG9jayk7CiAKIAkvKiBEcm9wIHJl ZmVyZW5jZSB0YWtlbiBieSBobW1fcmFuZ2VfcmVnaXN0ZXIoKSAqLwogCXJhbmdlLT52YWxpZCA9 IGZhbHNlOworCW1tcHV0KGhtbS0+bW0pOwogCWhtbV9wdXQoaG1tKTsKIAlyYW5nZS0+aG1tID0g TlVMTDsKIH0KQEAgLTk3NCwxMCArOTY5LDcgQEAgbG9uZyBobW1fcmFuZ2Vfc25hcHNob3Qoc3Ry dWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJc3Ry dWN0IG1tX3dhbGsgbW1fd2FsazsKIAotCS8qIENoZWNrIGlmIGhtbV9tbV9kZXN0cm95KCkgd2Fz IGNhbGwuICovCi0JaWYgKGhtbS0+bW0gPT0gTlVMTCB8fCBobW0tPmRlYWQpCi0JCXJldHVybiAt RUZBVUxUOwotCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaG1tLT5tbS0+bW1hcF9zZW0pOwogCWRv IHsKIAkJLyogSWYgcmFuZ2UgaXMgbm8gbG9uZ2VyIHZhbGlkIGZvcmNlIHJldHJ5LiAqLwogCQlp ZiAoIXJhbmdlLT52YWxpZCkKQEAgLTEwNzIsOSArMTA2NCw3IEBAIGxvbmcgaG1tX3JhbmdlX2Zh dWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCBib29sIGJsb2NrKQogCXN0cnVjdCBtbV93YWxr IG1tX3dhbGs7CiAJaW50IHJldDsKIAotCS8qIENoZWNrIGlmIGhtbV9tbV9kZXN0cm95KCkgd2Fz IGNhbGwuICovCi0JaWYgKGhtbS0+bW0gPT0gTlVMTCB8fCBobW0tPmRlYWQpCi0JCXJldHVybiAt RUZBVUxUOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmhtbS0+bW0tPm1tYXBfc2VtKTsKIAogCWRv IHsKIAkJLyogSWYgcmFuZ2UgaXMgbm8gbG9uZ2VyIHZhbGlkIGZvcmNlIHJldHJ5LiAqLwotLSAK Mi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwph bWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=