From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: [PATCH v3 hmm 06/12] mm/hmm: Hold on to the mmget for the lifetime of the range Date: Thu, 13 Jun 2019 21:44:44 -0300 Message-ID: <20190614004450.20252-7-jgg@ziepe.ca> References: <20190614004450.20252-1-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE824892EF for ; Fri, 14 Jun 2019 00:44:57 +0000 (UTC) Received: by mail-qk1-x742.google.com with SMTP id i125so624695qkd.6 for ; Thu, 13 Jun 2019 17:44:57 -0700 (PDT) In-Reply-To: <20190614004450.20252-1-jgg@ziepe.ca> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Cc: Andrea Arcangeli , Philip Yang , linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org, linux-mm@kvack.org, Jason Gunthorpe , dri-devel@lists.freedesktop.org, Ben Skeggs List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKUmFuZ2UgZnVuY3Rpb25z IGxpa2UgaG1tX3JhbmdlX3NuYXBzaG90KCkgYW5kIGhtbV9yYW5nZV9mYXVsdCgpIGNhbGwKZmlu ZF92bWEsIHdoaWNoIHJlcXVpcmVzIGhvZGxpbmcgdGhlIG1tZ2V0KCkgYW5kIHRoZSBtbWFwX3Nl bSBmb3IgdGhlIG1tLgoKTWFrZSB0aGlzIHNpbXBsZXIgZm9yIHRoZSBjYWxsZXJzIGJ5IGhvbGRp bmcgdGhlIG1tZ2V0KCkgaW5zaWRlIHRoZSByYW5nZQpmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBy YW5nZS4gT3RoZXIgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGEgcmFuZ2Ugc2hvdWxkCm9ubHkgYmUg Y2FsbGVkIGlmIHRoZSByYW5nZSBpcyByZWdpc3RlcmVkLgoKVGhpcyBoYXMgdGhlIHNpZGUgZWZm ZWN0IG9mIGRpcmVjdGx5IHByZXZlbnRpbmcgaG1tX3JlbGVhc2UoKSBmcm9tCmhhcHBlbmluZyB3 aGlsZSBhIHJhbmdlIGlzIHJlZ2lzdGVyZWQuIFRoYXQgbWVhbnMgcmFuZ2UtPmRlYWQgY2Fubm90 IGJlCmZhbHNlIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIHJhbmdlLCBzbyByZW1vdmUgZGVh ZCBhbmQKaG1tX21pcnJvcl9tbV9pc19hbGl2ZSgpIGVudGlyZWx5LgoKU2lnbmVkLW9mZi1ieTog SmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSm9obiBIdWJi YXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogUmFscGggQ2FtcGJlbGwgPHJj YW1wYmVsbEBudmlkaWEuY29tPgpUZXN0ZWQtYnk6IFBoaWxpcCBZYW5nIDxQaGlsaXAuWWFuZ0Bh bWQuY29tPgotLS0KdjI6CiAtIFVzZSBKZXJvbWUncyBpZGVhIG9mIGp1c3QgaG9sZGluZyB0aGUg bW1nZXQoKSBmb3IgdGhlIHJhbmdlIGxpZmV0aW1lLAogICByZXdvcmsgdGhlIHBhdGNoIHRvIHVz ZSB0aGF0IGFzIGFzIHNpbXBsaWZpY2F0aW9uIHRvIHJlbW92ZSBkZWFkIGluCiAgIG9uZSBzdGVw Ci0tLQogaW5jbHVkZS9saW51eC9obW0uaCB8IDI2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBtbS9obW0uYyAgICAgICAgICAgIHwgMjggKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQog MiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L2htbS5oIGIvaW5jbHVkZS9saW51eC9obW0uaAppbmRleCAy NmU3YzQ3NzQ5MGM0ZS4uYmYwMTNlOTY1MjU3NzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgv aG1tLmgKKysrIGIvaW5jbHVkZS9saW51eC9obW0uaApAQCAtODIsNyArODIsNiBAQAogICogQG1p cnJvcnNfc2VtOiByZWFkL3dyaXRlIHNlbWFwaG9yZSBwcm90ZWN0aW5nIHRoZSBtaXJyb3JzIGxp c3QKICAqIEB3cTogd2FpdCBxdWV1ZSBmb3IgdXNlciB3YWl0aW5nIG9uIGEgcmFuZ2UgaW52YWxp ZGF0aW9uCiAgKiBAbm90aWZpZXJzOiBjb3VudCBvZiBhY3RpdmUgbW11IG5vdGlmaWVycwotICog QGRlYWQ6IGlzIHRoZSBtbSBkZWFkID8KICAqLwogc3RydWN0IGhtbSB7CiAJc3RydWN0IG1tX3N0 cnVjdAkqbW07CkBAIC05NSw3ICs5NCw2IEBAIHN0cnVjdCBobW0gewogCXdhaXRfcXVldWVfaGVh ZF90CXdxOwogCXN0cnVjdCByY3VfaGVhZAkJcmN1OwogCWxvbmcJCQlub3RpZmllcnM7Ci0JYm9v bAkJCWRlYWQ7CiB9OwogCiAvKgpAQCAtNDU5LDMwICs0NTcsNiBAQCBzdHJ1Y3QgaG1tX21pcnJv ciB7CiBpbnQgaG1tX21pcnJvcl9yZWdpc3RlcihzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLCBz dHJ1Y3QgbW1fc3RydWN0ICptbSk7CiB2b2lkIGhtbV9taXJyb3JfdW5yZWdpc3RlcihzdHJ1Y3Qg aG1tX21pcnJvciAqbWlycm9yKTsKIAotLyoKLSAqIGhtbV9taXJyb3JfbW1faXNfYWxpdmUoKSAt IHRlc3QgaWYgbW0gaXMgc3RpbGwgYWxpdmUKLSAqIEBtaXJyb3I6IHRoZSBITU0gbW0gbWlycm9y IGZvciB3aGljaCB3ZSB3YW50IHRvIGxvY2sgdGhlIG1tYXBfc2VtCi0gKiBSZXR1cm46IGZhbHNl IGlmIHRoZSBtbSBpcyBkZWFkLCB0cnVlIG90aGVyd2lzZQotICoKLSAqIFRoaXMgaXMgYW4gb3B0 aW1pemF0aW9uLCBpdCB3aWxsIG5vdCBhbHdheXMgYWNjdXJhdGVseSByZXR1cm4gZmFsc2UgaWYg dGhlCi0gKiBtbSBpcyBkZWFkOyBpLmUuLCB0aGVyZSBjYW4gYmUgZmFsc2UgbmVnYXRpdmVzIChw cm9jZXNzIGlzIGJlaW5nIGtpbGxlZCBidXQKLSAqIEhNTSBpcyBub3QgeWV0IGluZm9ybWVkIG9m IHRoYXQpLiBJdCBpcyBvbmx5IGludGVuZGVkIHRvIGJlIHVzZWQgdG8gb3B0aW1pemUKLSAqIG91 dCBjYXNlcyB3aGVyZSB0aGUgZHJpdmVyIGlzIGFib3V0IHRvIGRvIHNvbWV0aGluZyB0aW1lIGNv bnN1bWluZyBhbmQgaXQKLSAqIHdvdWxkIGJlIGJldHRlciB0byBza2lwIGl0IGlmIHRoZSBtbSBp cyBkZWFkLgotICovCi1zdGF0aWMgaW5saW5lIGJvb2wgaG1tX21pcnJvcl9tbV9pc19hbGl2ZShz dHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yKQotewotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwotCi0J aWYgKCFtaXJyb3IgfHwgIW1pcnJvci0+aG1tKQotCQlyZXR1cm4gZmFsc2U7Ci0JbW0gPSBSRUFE X09OQ0UobWlycm9yLT5obW0tPm1tKTsKLQlpZiAobWlycm9yLT5obW0tPmRlYWQgfHwgIW1tKQot CQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQogLyoKICAqIFBsZWFzZSBzZWUg RG9jdW1lbnRhdGlvbi92bS9obW0ucnN0IGZvciBob3cgdG8gdXNlIHRoZSByYW5nZSBBUEkuCiAg Ki8KZGlmZiAtLWdpdCBhL21tL2htbS5jIGIvbW0vaG1tLmMKaW5kZXggNGM2NGQ0YzMyZjQ4MjUu LjU4NzEyZDc0ZWRkNTg1IDEwMDY0NAotLS0gYS9tbS9obW0uYworKysgYi9tbS9obW0uYwpAQCAt NzAsNyArNzAsNiBAQCBzdGF0aWMgc3RydWN0IGhtbSAqaG1tX2dldF9vcl9jcmVhdGUoc3RydWN0 IG1tX3N0cnVjdCAqbW0pCiAJbXV0ZXhfaW5pdCgmaG1tLT5sb2NrKTsKIAlrcmVmX2luaXQoJmht bS0+a3JlZik7CiAJaG1tLT5ub3RpZmllcnMgPSAwOwotCWhtbS0+ZGVhZCA9IGZhbHNlOwogCWht bS0+bW0gPSBtbTsKIAogCWhtbS0+bW11X25vdGlmaWVyLm9wcyA9ICZobW1fbW11X25vdGlmaWVy X29wczsKQEAgLTEyNSwyMCArMTI0LDE3IEBAIHN0YXRpYyB2b2lkIGhtbV9yZWxlYXNlKHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKIAlzdHJ1Y3QgaG1t ICpobW0gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBobW0sIG1tdV9ub3RpZmllcik7CiAJc3Ry dWN0IGhtbV9taXJyb3IgKm1pcnJvcjsKLQlzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZTsKIAogCS8q IEJhaWwgb3V0IGlmIGhtbSBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBmcmVlZCAqLwogCWlm ICgha3JlZl9nZXRfdW5sZXNzX3plcm8oJmhtbS0+a3JlZikpCiAJCXJldHVybjsKIAotCS8qIFJl cG9ydCB0aGlzIEhNTSBhcyBkeWluZy4gKi8KLQlobW0tPmRlYWQgPSB0cnVlOwotCi0JLyogV2Fr ZS11cCBldmVyeW9uZSB3YWl0aW5nIG9uIGFueSByYW5nZS4gKi8KIAltdXRleF9sb2NrKCZobW0t PmxvY2spOwotCWxpc3RfZm9yX2VhY2hfZW50cnkocmFuZ2UsICZobW0tPnJhbmdlcywgbGlzdCkK LQkJcmFuZ2UtPnZhbGlkID0gZmFsc2U7Ci0Jd2FrZV91cF9hbGwoJmhtbS0+d3EpOworCS8qCisJ ICogU2luY2UgaG1tX3JhbmdlX3JlZ2lzdGVyKCkgaG9sZHMgdGhlIG1tZ2V0KCkgbG9jayBobW1f cmVsZWFzZSgpIGlzCisJICogcHJldmVudGVkIGFzIGxvbmcgYXMgYSByYW5nZSBleGlzdHMuCisJ ICovCisJV0FSTl9PTighbGlzdF9lbXB0eSgmaG1tLT5yYW5nZXMpKTsKIAltdXRleF91bmxvY2so JmhtbS0+bG9jayk7CiAKIAlkb3duX3dyaXRlKCZobW0tPm1pcnJvcnNfc2VtKTsKQEAgLTkwOCw4 ICs5MDQsOCBAQCBpbnQgaG1tX3JhbmdlX3JlZ2lzdGVyKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdl LAogCXJhbmdlLT5zdGFydCA9IHN0YXJ0OwogCXJhbmdlLT5lbmQgPSBlbmQ7CiAKLQkvKiBDaGVj ayBpZiBobW1fbW1fZGVzdHJveSgpIHdhcyBjYWxsLiAqLwotCWlmIChobW0tPm1tID09IE5VTEwg fHwgaG1tLT5kZWFkKQorCS8qIFByZXZlbnQgaG1tX3JlbGVhc2UoKSBmcm9tIHJ1bm5pbmcgd2hp bGUgdGhlIHJhbmdlIGlzIHZhbGlkICovCisJaWYgKCFtbWdldF9ub3RfemVybyhobW0tPm1tKSkK IAkJcmV0dXJuIC1FRkFVTFQ7CiAKIAkvKiBJbml0aWFsaXplIHJhbmdlIHRvIHRyYWNrIENQVSBw YWdlIHRhYmxlIHVwZGF0ZXMuICovCkBAIC05NTIsNiArOTQ4LDcgQEAgdm9pZCBobW1fcmFuZ2Vf dW5yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkKIAogCS8qIERyb3AgcmVmZXJlbmNl IHRha2VuIGJ5IGhtbV9yYW5nZV9yZWdpc3RlcigpICovCiAJcmFuZ2UtPnZhbGlkID0gZmFsc2U7 CisJbW1wdXQoaG1tLT5tbSk7CiAJaG1tX3B1dChobW0pOwogCXJhbmdlLT5obW0gPSBOVUxMOwog fQpAQCAtOTc5LDEwICs5NzYsNyBAQCBsb25nIGhtbV9yYW5nZV9zbmFwc2hvdChzdHJ1Y3QgaG1t X3JhbmdlICpyYW5nZSkKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKIAlzdHJ1Y3QgbW1f d2FsayBtbV93YWxrOwogCi0JLyogQ2hlY2sgaWYgaG1tX21tX2Rlc3Ryb3koKSB3YXMgY2FsbC4g Ki8KLQlpZiAoaG1tLT5tbSA9PSBOVUxMIHx8IGhtbS0+ZGVhZCkKLQkJcmV0dXJuIC1FRkFVTFQ7 Ci0KKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZobW0tPm1tLT5tbWFwX3NlbSk7CiAJZG8gewogCQkv KiBJZiByYW5nZSBpcyBubyBsb25nZXIgdmFsaWQgZm9yY2UgcmV0cnkuICovCiAJCWlmICghcmFu Z2UtPnZhbGlkKQpAQCAtMTA3Nyw5ICsxMDcxLDcgQEAgbG9uZyBobW1fcmFuZ2VfZmF1bHQoc3Ry dWN0IGhtbV9yYW5nZSAqcmFuZ2UsIGJvb2wgYmxvY2spCiAJc3RydWN0IG1tX3dhbGsgbW1fd2Fs azsKIAlpbnQgcmV0OwogCi0JLyogQ2hlY2sgaWYgaG1tX21tX2Rlc3Ryb3koKSB3YXMgY2FsbC4g Ki8KLQlpZiAoaG1tLT5tbSA9PSBOVUxMIHx8IGhtbS0+ZGVhZCkKLQkJcmV0dXJuIC1FRkFVTFQ7 CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaG1tLT5tbS0+bW1hcF9zZW0pOwogCiAJZG8gewogCQkv KiBJZiByYW5nZSBpcyBubyBsb25nZXIgdmFsaWQgZm9yY2UgcmV0cnkuICovCi0tIAoyLjIxLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==