dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Christoph Hellwig <hch@infradead.org>
Cc: Andrea Arcangeli <aarcange@redhat.com>,
	Philip Yang <Philip.Yang@amd.com>,
	Ralph Campbell <rcampbell@nvidia.com>,
	linux-rdma@vger.kernel.org, John Hubbard <jhubbard@nvidia.com>,
	Felix.Kuehling@amd.com, dri-devel@lists.freedesktop.org,
	linux-mm@kvack.org, Jerome Glisse <jglisse@redhat.com>,
	amd-gfx@lists.freedesktop.org, Ira Weiny <ira.weiny@intel.com>,
	Ben Skeggs <bskeggs@redhat.com>
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	[thread overview]
Message-ID: <20190618130544.GC6961@ziepe.ca> (raw)
In-Reply-To: <20190615135906.GB17724@infradead.org>

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 <jgg@mellanox.com>
> > 
> > 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 <hch@lst.de>
> 
> > 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
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-06-18 13:05 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-14  0:44 [PATCH v3 hmm 00/12] mm/hmm: Various revisions from a locking/code review Jason Gunthorpe
2019-06-14  0:44 ` [PATCH v3 hmm 01/12] mm/hmm: fix use after free with struct hmm in the mmu notifiers Jason Gunthorpe
     [not found]   ` <20190614004450.20252-2-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 13:56     ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 02/12] mm/hmm: Use hmm_mirror not mm as an argument for hmm_range_register Jason Gunthorpe
     [not found]   ` <20190614004450.20252-3-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 13:59     ` Christoph Hellwig
2019-06-18 13:05       ` Jason Gunthorpe [this message]
     [not found]         ` <20190618130544.GC6961-uk2M96/98Pc@public.gmane.org>
2019-06-19  8:14           ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 03/12] mm/hmm: Hold a mmgrab from hmm to mm Jason Gunthorpe
     [not found]   ` <20190614004450.20252-4-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 13:59     ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 04/12] mm/hmm: Simplify hmm_get_or_create and make it reliable Jason Gunthorpe
     [not found]   ` <20190614004450.20252-5-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:12     ` Christoph Hellwig
2019-06-18  0:36       ` Jason Gunthorpe
2019-06-18 18:55       ` Jason Gunthorpe
2019-06-14  0:44 ` [PATCH v3 hmm 05/12] mm/hmm: Remove duplicate condition test before wait_event_timeout Jason Gunthorpe
     [not found]   ` <20190614004450.20252-6-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:12     ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 06/12] mm/hmm: Hold on to the mmget for the lifetime of the range Jason Gunthorpe
     [not found]   ` <20190614004450.20252-7-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:14     ` Christoph Hellwig
2019-06-18 15:11       ` Jason Gunthorpe
     [not found]         ` <20190618151100.GI6961-uk2M96/98Pc@public.gmane.org>
2019-06-19  8:18           ` Christoph Hellwig
2019-06-19 11:34             ` Jason Gunthorpe
     [not found]               ` <20190619113452.GB9360-uk2M96/98Pc@public.gmane.org>
2019-06-19 11:54                 ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 07/12] mm/hmm: Use lockdep instead of comments Jason Gunthorpe
     [not found]   ` <20190614004450.20252-8-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:14     ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 08/12] mm/hmm: Remove racy protection against double-unregistration Jason Gunthorpe
     [not found]   ` <20190614004450.20252-9-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:16     ` Christoph Hellwig
2019-06-18 13:13       ` Jason Gunthorpe
     [not found]         ` <20190618131324.GF6961-uk2M96/98Pc@public.gmane.org>
2019-06-18 13:27           ` Christoph Hellwig
2019-06-18 18:57             ` Jason Gunthorpe
     [not found]               ` <20190618185757.GP6961-uk2M96/98Pc@public.gmane.org>
2019-06-19  8:19                 ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 09/12] mm/hmm: Poison hmm_range during unregister Jason Gunthorpe
     [not found]   ` <20190614004450.20252-10-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:17     ` Christoph Hellwig
2019-06-18 18:04       ` Jason Gunthorpe
2019-06-14  0:44 ` [PATCH v3 hmm 10/12] mm/hmm: Do not use list*_rcu() for hmm->ranges Jason Gunthorpe
     [not found]   ` <20190614004450.20252-11-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:18     ` Christoph Hellwig
2019-06-18  0:38       ` Jason Gunthorpe
2019-06-14  0:44 ` [PATCH v3 hmm 11/12] mm/hmm: Remove confusing comment and logic from hmm_release Jason Gunthorpe
     [not found]   ` <20190614004450.20252-12-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:21     ` Christoph Hellwig
2019-06-18  0:45       ` Jason Gunthorpe
     [not found]         ` <20190618004509.GE30762-uk2M96/98Pc@public.gmane.org>
2019-06-18  5:37           ` Christoph Hellwig
     [not found]             ` <20190618053733.GA25048-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2019-06-19  0:53               ` Kuehling, Felix
     [not found]                 ` <be4f8573-6284-04a6-7862-23bb357bfe3c-5C7GfCeVMHo@public.gmane.org>
2019-06-19  8:07                   ` Christoph Hellwig
2019-06-19 11:56                     ` Jason Gunthorpe
     [not found]                       ` <20190619115632.GC9360-uk2M96/98Pc@public.gmane.org>
2019-06-19 12:03                         ` Christoph Hellwig
2019-06-14  0:44 ` [PATCH v3 hmm 12/12] mm/hmm: Fix error flows in hmm_invalidate_range_start Jason Gunthorpe
     [not found]   ` <20190614004450.20252-13-jgg-uk2M96/98Pc@public.gmane.org>
2019-06-15 14:25     ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190618130544.GC6961@ziepe.ca \
    --to=jgg@ziepe.ca \
    --cc=Felix.Kuehling@amd.com \
    --cc=Philip.Yang@amd.com \
    --cc=aarcange@redhat.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=bskeggs@redhat.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hch@infradead.org \
    --cc=ira.weiny@intel.com \
    --cc=jglisse@redhat.com \
    --cc=jhubbard@nvidia.com \
    --cc=linux-mm@kvack.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=rcampbell@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).