From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ira Weiny Subject: Re: [PATCH v2 hmm 04/11] mm/hmm: Simplify hmm_get_or_create and make it reliable Date: Fri, 7 Jun 2019 15:44:32 -0700 Message-ID: <20190607224432.GF14559@iweiny-DESK2.sc.intel.com> References: <20190606184438.31646-1-jgg@ziepe.ca> <20190606184438.31646-5-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190606184438.31646-5-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: Jason Gunthorpe Cc: Andrea Arcangeli , Ralph Campbell , linux-rdma@vger.kernel.org, John Hubbard , Felix.Kuehling@amd.com, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, Jerome Glisse , Jason Gunthorpe , amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org T24gVGh1LCBKdW4gMDYsIDIwMTkgYXQgMDM6NDQ6MzFQTSAtMDMwMCwgSmFzb24gR3VudGhvcnBl IHdyb3RlOgo+IEZyb206IEphc29uIEd1bnRob3JwZSA8amdnQG1lbGxhbm94LmNvbT4KPiAKPiBB cyBjb2RlZCB0aGlzIGZ1bmN0aW9uIGNhbiBmYWxzZS1mYWlsIGluIHZhcmlvdXMgcmFjeSBzaXR1 YXRpb25zLiBNYWtlIGl0Cj4gcmVsaWFibGUgYnkgcnVubmluZyBvbmx5IHVuZGVyIHRoZSB3cml0 ZSBzaWRlIG9mIHRoZSBtbWFwX3NlbSBhbmQgYXZvaWRpbmcKPiB0aGUgZmFsc2UtZmFpbGluZyBj b21wYXJlL2V4Y2hhbmdlIHBhdHRlcm4uCj4gCj4gQWxzbyBtYWtlIHRoZSBsb2NraW5nIHZlcnkg ZWFzeSB0byB1bmRlcnN0YW5kIGJ5IG9ubHkgZXZlciByZWFkaW5nIG9yCj4gd3JpdGluZyBtbS0+ aG1tIHdoaWxlIGhvbGRpbmcgdGhlIHdyaXRlIHNpZGUgb2YgdGhlIG1tYXBfc2VtLgo+IAo+IFNp Z25lZC1vZmYtYnk6IEphc29uIEd1bnRob3JwZSA8amdnQG1lbGxhbm94LmNvbT4KClJldmlld2Vk LWJ5OiBJcmEgV2VpbnkgPGlyYS53ZWlueUBpbnRlbC5jb20+Cgo+IC0tLQo+IHYyOgo+IC0gRml4 IGVycm9yIHVud2luZCBvZiBtbWdyYWIgKEplcm9tZSkKPiAtIFVzZSBobW0gbG9jYWwgaW5zdGVh ZCBvZiAybmQgY29udGFpbmVyX29mIChKZXJvbWUpCj4gLS0tCj4gIG1tL2htbS5jIHwgODAgKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAg MSBmaWxlIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9tbS9obW0uYyBiL21tL2htbS5jCj4gaW5kZXggY2M3YzI2ZmRhMzMwMGUuLmRj MzBlZGFkOWE4YTAyIDEwMDY0NAo+IC0tLSBhL21tL2htbS5jCj4gKysrIGIvbW0vaG1tLmMKPiBA QCAtNDAsMTYgKzQwLDYgQEAKPiAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0hNTV9NSVJST1IpCj4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBobW1fbW11X25vdGlmaWVyX29w czsKPiAgCj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IGhtbSAqbW1fZ2V0X2htbShzdHJ1Y3QgbW1f c3RydWN0ICptbSkKPiAtewo+IC0Jc3RydWN0IGhtbSAqaG1tID0gUkVBRF9PTkNFKG1tLT5obW0p Owo+IC0KPiAtCWlmIChobW0gJiYga3JlZl9nZXRfdW5sZXNzX3plcm8oJmhtbS0+a3JlZikpCj4g LQkJcmV0dXJuIGhtbTsKPiAtCj4gLQlyZXR1cm4gTlVMTDsKPiAtfQo+IC0KPiAgLyoqCj4gICAq IGhtbV9nZXRfb3JfY3JlYXRlIC0gcmVnaXN0ZXIgSE1NIGFnYWluc3QgYW4gbW0gKEhNTSBpbnRl cm5hbCkKPiAgICoKPiBAQCAtNjQsMTEgKzU0LDIwIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGht bSAqbW1fZ2V0X2htbShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKPiAgICovCj4gIHN0YXRpYyBzdHJ1 Y3QgaG1tICpobW1fZ2V0X29yX2NyZWF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKPiAgewo+IC0J c3RydWN0IGhtbSAqaG1tID0gbW1fZ2V0X2htbShtbSk7Cj4gLQlib29sIGNsZWFudXAgPSBmYWxz ZTsKPiArCXN0cnVjdCBobW0gKmhtbTsKPiAgCj4gLQlpZiAoaG1tKQo+IC0JCXJldHVybiBobW07 Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkX2V4Y2x1c2l2ZSgmbW0tPm1tYXBfc2VtKTsKPiArCj4g KwlpZiAobW0tPmhtbSkgewo+ICsJCWlmIChrcmVmX2dldF91bmxlc3NfemVybygmbW0tPmhtbS0+ a3JlZikpCj4gKwkJCXJldHVybiBtbS0+aG1tOwo+ICsJCS8qCj4gKwkJICogVGhlIGhtbSBpcyBi ZWluZyBmcmVlZCBieSBzb21lIG90aGVyIENQVSBhbmQgaXMgcGVuZGluZyBhCj4gKwkJICogUkNV IGdyYWNlIHBlcmlvZCwgYnV0IHRoaXMgQ1BVIGNhbiBOVUxMIG5vdyBpdCBzaW5jZSB3ZQo+ICsJ CSAqIGhhdmUgdGhlIG1tYXBfc2VtLgo+ICsJCSAqLwo+ICsJCW1tLT5obW0gPSBOVUxMOwo+ICsJ fQo+ICAKPiAgCWhtbSA9IGttYWxsb2Moc2l6ZW9mKCpobW0pLCBHRlBfS0VSTkVMKTsKPiAgCWlm ICghaG1tKQo+IEBAIC04Myw1NyArODIsMzYgQEAgc3RhdGljIHN0cnVjdCBobW0gKmhtbV9nZXRf b3JfY3JlYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQo+ICAJaG1tLT5ub3RpZmllcnMgPSAwOwo+ ICAJaG1tLT5kZWFkID0gZmFsc2U7Cj4gIAlobW0tPm1tID0gbW07Cj4gLQltbWdyYWIoaG1tLT5t bSk7Cj4gLQo+IC0Jc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKPiAtCWlmICghbW0t PmhtbSkKPiAtCQltbS0+aG1tID0gaG1tOwo+IC0JZWxzZQo+IC0JCWNsZWFudXAgPSB0cnVlOwo+ IC0Jc3Bpbl91bmxvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwo+ICAKPiAtCWlmIChjbGVhbnVw KQo+IC0JCWdvdG8gZXJyb3I7Cj4gLQo+IC0JLyoKPiAtCSAqIFdlIHNob3VsZCBvbmx5IGdldCBo ZXJlIGlmIGhvbGQgdGhlIG1tYXBfc2VtIGluIHdyaXRlIG1vZGUgaWUgb24KPiAtCSAqIHJlZ2lz dHJhdGlvbiBvZiBmaXJzdCBtaXJyb3IgdGhyb3VnaCBobW1fbWlycm9yX3JlZ2lzdGVyKCkKPiAt CSAqLwo+ICAJaG1tLT5tbXVfbm90aWZpZXIub3BzID0gJmhtbV9tbXVfbm90aWZpZXJfb3BzOwo+ IC0JaWYgKF9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKCZobW0tPm1tdV9ub3RpZmllciwgbW0pKQo+ IC0JCWdvdG8gZXJyb3JfbW07Cj4gKwlpZiAoX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJmhtbS0+ bW11X25vdGlmaWVyLCBtbSkpIHsKPiArCQlrZnJlZShobW0pOwo+ICsJCXJldHVybiBOVUxMOwo+ ICsJfQo+ICAKPiArCW1tZ3JhYihobW0tPm1tKTsKPiArCW1tLT5obW0gPSBobW07Cj4gIAlyZXR1 cm4gaG1tOwo+IC0KPiAtZXJyb3JfbW06Cj4gLQlzcGluX2xvY2soJm1tLT5wYWdlX3RhYmxlX2xv Y2spOwo+IC0JaWYgKG1tLT5obW0gPT0gaG1tKQo+IC0JCW1tLT5obW0gPSBOVUxMOwo+IC0Jc3Bp bl91bmxvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwo+IC1lcnJvcjoKPiAtCW1tZHJvcChobW0t Pm1tKTsKPiAtCWtmcmVlKGhtbSk7Cj4gLQlyZXR1cm4gTlVMTDsKPiAgfQo+ICAKPiAgc3RhdGlj IHZvaWQgaG1tX2ZyZWVfcmN1KHN0cnVjdCByY3VfaGVhZCAqcmN1KQo+ICB7Cj4gLQlrZnJlZShj b250YWluZXJfb2YocmN1LCBzdHJ1Y3QgaG1tLCByY3UpKTsKPiArCXN0cnVjdCBobW0gKmhtbSA9 IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBobW0sIHJjdSk7Cj4gKwo+ICsJZG93bl93cml0ZSgm aG1tLT5tbS0+bW1hcF9zZW0pOwo+ICsJaWYgKGhtbS0+bW0tPmhtbSA9PSBobW0pCj4gKwkJaG1t LT5tbS0+aG1tID0gTlVMTDsKPiArCXVwX3dyaXRlKCZobW0tPm1tLT5tbWFwX3NlbSk7Cj4gKwlt bWRyb3AoaG1tLT5tbSk7Cj4gKwo+ICsJa2ZyZWUoaG1tKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQgaG1tX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpCj4gIHsKPiAgCXN0cnVjdCBobW0gKmhtbSA9 IGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgaG1tLCBrcmVmKTsKPiAtCXN0cnVjdCBtbV9zdHJ1 Y3QgKm1tID0gaG1tLT5tbTsKPiAtCj4gLQltbXVfbm90aWZpZXJfdW5yZWdpc3Rlcl9ub19yZWxl YXNlKCZobW0tPm1tdV9ub3RpZmllciwgbW0pOwo+ICAKPiAtCXNwaW5fbG9jaygmbW0tPnBhZ2Vf dGFibGVfbG9jayk7Cj4gLQlpZiAobW0tPmhtbSA9PSBobW0pCj4gLQkJbW0tPmhtbSA9IE5VTEw7 Cj4gLQlzcGluX3VubG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7Cj4gLQo+IC0JbW1kcm9wKGht bS0+bW0pOwo+ICsJbW11X25vdGlmaWVyX3VucmVnaXN0ZXJfbm9fcmVsZWFzZSgmaG1tLT5tbXVf bm90aWZpZXIsIGhtbS0+bW0pOwo+ICAJbW11X25vdGlmaWVyX2NhbGxfc3JjdSgmaG1tLT5yY3Us IGhtbV9mcmVlX3JjdSk7Cj4gIH0KPiAgCj4gLS0gCj4gMi4yMS4wCj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==