From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: Re: [PATCH v3 hmm 02/12] mm/hmm: Use hmm_mirror not mm as an argument for hmm_range_register Date: Tue, 18 Jun 2019 10:05:44 -0300 Message-ID: <20190618130544.GC6961@ziepe.ca> References: <20190614004450.20252-1-jgg@ziepe.ca> <20190614004450.20252-3-jgg@ziepe.ca> <20190615135906.GB17724@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190615135906.GB17724@infradead.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christoph Hellwig Cc: Andrea Arcangeli , Philip Yang , Ralph Campbell , linux-rdma@vger.kernel.org, John Hubbard , Felix.Kuehling@amd.com, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, Jerome Glisse , amd-gfx@lists.freedesktop.org, Ira Weiny , Ben Skeggs List-Id: amd-gfx.lists.freedesktop.org T24gU2F0LCBKdW4gMTUsIDIwMTkgYXQgMDY6NTk6MDZBTSAtMDcwMCwgQ2hyaXN0b3BoIEhlbGx3 aWcgd3JvdGU6Cj4gT24gVGh1LCBKdW4gMTMsIDIwMTkgYXQgMDk6NDQ6NDBQTSAtMDMwMCwgSmFz b24gR3VudGhvcnBlIHdyb3RlOgo+ID4gRnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFu b3guY29tPgo+ID4gCj4gPiBSYWxwaCBvYnNlcnZlcyB0aGF0IGhtbV9yYW5nZV9yZWdpc3Rlcigp IGNhbiBvbmx5IGJlIGNhbGxlZCBieSBhIGRyaXZlcgo+ID4gd2hpbGUgYSBtaXJyb3IgaXMgcmVn aXN0ZXJlZC4gTWFrZSB0aGlzIGNsZWFyIGluIHRoZSBBUEkgYnkgcGFzc2luZyBpbiB0aGUKPiA+ IG1pcnJvciBzdHJ1Y3R1cmUgYXMgYSBwYXJhbWV0ZXIuCj4gPiAKPiA+IFRoaXMgYWxzbyBzaW1w bGlmaWVzIHVuZGVyc3RhbmRpbmcgdGhlIGxpZmV0aW1lIG1vZGVsIGZvciBzdHJ1Y3QgaG1tLCBh cwo+ID4gdGhlIGhtbSBwb2ludGVyIG11c3QgYmUgdmFsaWQgYXMgcGFydCBvZiBhIHJlZ2lzdGVy ZWQgbWlycm9yIHNvIGFsbCB3ZQo+ID4gbmVlZCBpbiBobW1fcmVnaXN0ZXJfcmFuZ2UoKSBpcyBh IHNpbXBsZSBrcmVmX2dldC4KPiAKPiBMb29rcyBnb29kLCBhdCBsZWFzdCBhbiBhbiBpbnRlcm1l ZGlhdGUgc3RlcDoKPiAKPiBSZXZpZXdlZC1ieTogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3Qu ZGU+Cj4gCj4gPiBpbmRleCBmNjk1NmQ3OGUzY2IyNS4uMjJhOTdhZGExMDhiNGUgMTAwNjQ0Cj4g PiArKysgYi9tbS9obW0uYwo+ID4gQEAgLTkxNCwxMyArOTE0LDEzIEBAIHN0YXRpYyB2b2lkIGht bV9wZm5zX2NsZWFyKHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAo+ID4gICAqIFRyYWNrIHVwZGF0 ZXMgdG8gdGhlIENQVSBwYWdlIHRhYmxlIHNlZSBpbmNsdWRlL2xpbnV4L2htbS5oCj4gPiAgICov Cj4gPiAgaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKPiA+ IC0JCSAgICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKPiA+ICsJCSAgICAgICBzdHJ1Y3QgaG1t X21pcnJvciAqbWlycm9yLAo+ID4gIAkJICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCj4gPiAg CQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmQsCj4gPiAgCQkgICAgICAgdW5zaWduZWQgcGFnZV9z aGlmdCkKPiA+ICB7Cj4gPiAgCXVuc2lnbmVkIGxvbmcgbWFzayA9ICgoMVVMIDw8IHBhZ2Vfc2hp ZnQpIC0gMVVMKTsKPiA+IC0Jc3RydWN0IGhtbSAqaG1tOwo+ID4gKwlzdHJ1Y3QgaG1tICpobW0g PSBtaXJyb3ItPmhtbTsKPiA+ICAKPiA+ICAJcmFuZ2UtPnZhbGlkID0gZmFsc2U7Cj4gPiAgCXJh bmdlLT5obW0gPSBOVUxMOwo+ID4gQEAgLTkzNCwyMCArOTM0LDE1IEBAIGludCBobW1fcmFuZ2Vf cmVnaXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsCj4gPiAgCXJhbmdlLT5zdGFydCA9IHN0 YXJ0Owo+ID4gIAlyYW5nZS0+ZW5kID0gZW5kOwo+IAo+IEJ1dCB3aGlsZSB5b3UncmUgYXQgaXQ6 ICB0aGUgY2FsbGluZyBjb252ZW50aW9ucyBvZiBobW1fcmFuZ2VfcmVnaXN0ZXIKPiBhcmUgc3Rp bGwgcmF0aGVyIG9kZCwgYXMgdGhlIHN0YWV0LCBlbmQgYW5kIHBhZ2Vfc2hpZnQgYXJndW1lbnRz IGFyZQo+IG9ubHkgdXNlZCB0byBmaWxsIG91dCBmaWVsZHMgaW4gdGhlIHJhbmdlIHN0cnVjdHVy ZSBwYXNzZWQgaW4uICBNaWdodAo+IGJlIHdvcnRoIGNsZWFuaW5nIHVwIGFzIHdlbGwgaWYgd2Ug Y2hhbmdlIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24uCgpJJ20gdGhpbmtpbmcgdG8gdGFja2xlIHRo YXQgYXMgcGFydCBvZiB0aGUgbW11IG5vdGlmaWZlciBpbnZsb2NrCmlkZWEuLiBPbmNlIHRoZSBy YW5nZSBsb29zZXMgdGhlIGxvY2sgdGhlbiB3ZSBkb24ndCByZWFsbHkgbmVlZCB0bwpyZWdpc3Rl ciBpdCBhdCBhbGwuCgpUaGFua3MsCkphc29uCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F995C31E51 for ; Tue, 18 Jun 2019 13:05:47 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1B44120665 for ; Tue, 18 Jun 2019 13:05:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b="HSw6uNWb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B44120665 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BB7B76B0003; Tue, 18 Jun 2019 09:05:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B687A8E0005; Tue, 18 Jun 2019 09:05:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A56248E0001; Tue, 18 Jun 2019 09:05:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by kanga.kvack.org (Postfix) with ESMTP id 83CDA6B0003 for ; Tue, 18 Jun 2019 09:05:46 -0400 (EDT) Received: by mail-qk1-f197.google.com with SMTP id x17so1096377qkf.14 for ; Tue, 18 Jun 2019 06:05:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:from:to:cc:subject :message-id:references:mime-version:content-disposition:in-reply-to :user-agent; bh=TTs4qX/AlYeTgBhCVY6oKlnamVeM1+PLnw1E3BGPQ7k=; b=N/da8gg8yuRyU0/mxDH3KcEetU6kGSMGxnhxKAqhOicMiIgTw+jWrWV2AIbAJl5NbI yGcv/DfNUuhEdcDRcDGP6jRSoFWg03jqs67tpKYgb2CVv+WUTKXDQOA+EyeeqhzkUETi q//EdJWiq6fN7sSHJlm9bnanjwge5NS8pzWeGPRdrLZIq35U0xsqvqu5/s8oqO4E2Sa8 xzbCWGdx/gBBePY9yDXhD9d6vTFp6L8A8NXqe7TodLtrvZ3BC7nMOzRmzgONqDR0jVNj vIYykS0gVYjPqfVEm2pIYku/SP79CCXEs+meiCXCHYg8uvDZJ+lVxWqdmpnTZjSZ924I 5zCA== X-Gm-Message-State: APjAAAWDotgJuqpYLODBNWRd1ak3XBPoAQgSSNEhjpBBp8y6NE5j+hA7 DtgTAH417Nqh4zhoFCQLgRQUMKImoEcO2sjlOukQLs5BIcfFFnEZPHw6igNo3rl/0c1lMY//Rz0 U48Ft682C8iXUo0Bh3WyXSiuLy6sxd0rOJWHvemwU9sOC86zRMwQ+g1+VnF6SmpA7SQ== X-Received: by 2002:a0c:91ef:: with SMTP id r44mr8583670qvr.113.1560863146295; Tue, 18 Jun 2019 06:05:46 -0700 (PDT) X-Received: by 2002:a0c:91ef:: with SMTP id r44mr8583615qvr.113.1560863145773; Tue, 18 Jun 2019 06:05:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560863145; cv=none; d=google.com; s=arc-20160816; b=y99O4zJxUzxjOAMBeF7avp9FDVtyjBOswk2Q51OxknjdutkfQV/UXog8sACDMlkcbO rkg15JwTPTqmrqHZHt5o2/l8UBgoN/ZcoX5PCU7W5dOX86TZdknXqBu8suyGEd7ZTm8y joz5d+gaRLB/2USX08X+tFi2a/JzbP481BmHgtKPuaC8eLa+CFgFPEF4AV9s0BnpS6wG uiFQ4UqnG1KXrM8CQ2ie0ruk99iESxXVtgkOkL1IbgiLme14pfOWnmvxLTg7/n73zxkD 7HPfwuXymMmbzkI4AZo4USsfrky/ez8+JTe9bHp8mOMDI2Q3/pEKVXcAFIuPjBKyV/p+ bvtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:dkim-signature; bh=TTs4qX/AlYeTgBhCVY6oKlnamVeM1+PLnw1E3BGPQ7k=; b=DPK9NkSmAB64mFjkAFFgsSvgAtK21h6FsiY0wpYZbRPknVy4rmltrW+OtF/YdL0AA7 D2naHMKmJZ3ypk+mGZ6/6nkxVl+/HhEh894W+yh7VsgRM//ZyHr0NfuHEsWS6i/APxHH kSF27lj0orTOzDAFni4Z1XLzSyD+DBwPOqJ1WAwzatQSV0kG6+hmlsD7Q4BVgfmE7od3 0RGWi3ZFb2gymGrrxPEf/PwHfM5ybrCFsfnWIDvU4DhdVQPK92tLxl5DRcIsk51wI/io ZOxw/0cEhztg2L89rEhcONAhNEdN3k1KBzaQ6+r9DkvRPdLwRqmdiyhSlaXQfPgro5uf q9oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=HSw6uNWb; spf=pass (google.com: domain of jgg@ziepe.ca designates 209.85.220.65 as permitted sender) smtp.mailfrom=jgg@ziepe.ca Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id a24sor9145029qkl.129.2019.06.18.06.05.45 for (Google Transport Security); Tue, 18 Jun 2019 06:05:45 -0700 (PDT) Received-SPF: pass (google.com: domain of jgg@ziepe.ca designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=HSw6uNWb; spf=pass (google.com: domain of jgg@ziepe.ca designates 209.85.220.65 as permitted sender) smtp.mailfrom=jgg@ziepe.ca DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=TTs4qX/AlYeTgBhCVY6oKlnamVeM1+PLnw1E3BGPQ7k=; b=HSw6uNWbQt7fjJEsOb5v36NS40qEnnvUQQOjF8RYBujsDACr03g6V1BCXbU+eBSqgE PkA+PsoTe9P7s1R1QtqFnAPzo/EF0jJEZAr6tsjkwmr6bfdZ90QRfQscfOxkLlDOvybP Swzg2ZlAGssU+HOBqU4mE1v3gbJZ/njoW2LtezmgzdRWxLtbcsPt+AxODrrQQ57lBck6 w1NOErizBGOfwHoHv6R+Rr9DtnvHuBJAl6gq8Zzn0we2Jq+p11rahAQx0yLw5X1G4Fb3 BYHFnuVdQJ8DB5EIRKcdRgWqsSU3aocFHyuDxLPSQ6xUqP+lxAtEF+CfR+M6EBbrnn2T dTOQ== X-Google-Smtp-Source: APXvYqyTVmV2qJESAaYOKHbD1BjBEsgUZPM0i2g79H7bXawYK5ERfS0qh6JfLB9C36JFGw7C3yUXcw== X-Received: by 2002:ae9:ed0a:: with SMTP id c10mr91466247qkg.207.1560863145518; Tue, 18 Jun 2019 06:05:45 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-156-34-55-100.dhcp-dynamic.fibreop.ns.bellaliant.net. [156.34.55.100]) by smtp.gmail.com with ESMTPSA id k15sm7008956qtg.22.2019.06.18.06.05.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Jun 2019 06:05:45 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1hdDo0-0002Yh-HV; Tue, 18 Jun 2019 10:05:44 -0300 Date: Tue, 18 Jun 2019 10:05:44 -0300 From: Jason Gunthorpe To: Christoph Hellwig Cc: Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com, linux-rdma@vger.kernel.org, linux-mm@kvack.org, Andrea Arcangeli , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, Ben Skeggs , Ira Weiny , Philip Yang Subject: Re: [PATCH v3 hmm 02/12] mm/hmm: Use hmm_mirror not mm as an argument for hmm_range_register Message-ID: <20190618130544.GC6961@ziepe.ca> References: <20190614004450.20252-1-jgg@ziepe.ca> <20190614004450.20252-3-jgg@ziepe.ca> <20190615135906.GB17724@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190615135906.GB17724@infradead.org> User-Agent: Mutt/1.9.4 (2018-02-28) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sat, Jun 15, 2019 at 06:59:06AM -0700, Christoph Hellwig wrote: > On Thu, Jun 13, 2019 at 09:44:40PM -0300, Jason Gunthorpe wrote: > > From: Jason Gunthorpe > > > > Ralph observes that hmm_range_register() can only be called by a driver > > while a mirror is registered. Make this clear in the API by passing in the > > mirror structure as a parameter. > > > > This also simplifies understanding the lifetime model for struct hmm, as > > the hmm pointer must be valid as part of a registered mirror so all we > > need in hmm_register_range() is a simple kref_get. > > Looks good, at least an an intermediate step: > > Reviewed-by: Christoph Hellwig > > > index f6956d78e3cb25..22a97ada108b4e 100644 > > +++ b/mm/hmm.c > > @@ -914,13 +914,13 @@ static void hmm_pfns_clear(struct hmm_range *range, > > * Track updates to the CPU page table see include/linux/hmm.h > > */ > > int hmm_range_register(struct hmm_range *range, > > - struct mm_struct *mm, > > + struct hmm_mirror *mirror, > > unsigned long start, > > unsigned long end, > > unsigned page_shift) > > { > > unsigned long mask = ((1UL << page_shift) - 1UL); > > - struct hmm *hmm; > > + struct hmm *hmm = mirror->hmm; > > > > range->valid = false; > > range->hmm = NULL; > > @@ -934,20 +934,15 @@ int hmm_range_register(struct hmm_range *range, > > range->start = start; > > range->end = end; > > But while you're at it: the calling conventions of hmm_range_register > are still rather odd, as the staet, end and page_shift arguments are > only used to fill out fields in the range structure passed in. Might > be worth cleaning up as well if we change the calling convention. I'm thinking to tackle that as part of the mmu notififer invlock idea.. Once the range looses the lock then we don't really need to register it at all. Thanks, Jason