From: Jerome Glisse <jglisse@redhat.com>
To: "Kuehling, Felix" <Felix.Kuehling@amd.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"Andrew Morton" <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Matthew Wilcox" <mawilcox@microsoft.com>,
"Ross Zwisler" <zwisler@kernel.org>, "Jan Kara" <jack@suse.cz>,
"Dan Williams" <dan.j.williams@intel.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Michal Hocko" <mhocko@kernel.org>,
"Koenig, Christian" <Christian.Koenig@amd.com>,
"Ralph Campbell" <rcampbell@nvidia.com>,
"John Hubbard" <jhubbard@nvidia.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH v2 1/3] mm/mmu_notifier: use structure for invalidate_range_start/end callback
Date: Wed, 5 Dec 2018 18:04:13 -0500 [thread overview]
Message-ID: <20181205230413.GN3536@redhat.com> (raw)
In-Reply-To: <b76dfbdd-a017-4032-d8a1-860ff62dfb59@amd.com>
On Wed, Dec 05, 2018 at 09:42:45PM +0000, Kuehling, Felix wrote:
> The amdgpu part looks good to me.
>
> A minor nit-pick in mmu_notifier.c (inline).
>
> Either way, the series is Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
>
> On 2018-12-05 12:36 a.m., jglisse@redhat.com wrote:
> > From: Jérôme Glisse <jglisse@redhat.com>
> >
> > To avoid having to change many callback definition everytime we want
> > to add a parameter use a structure to group all parameters for the
> > mmu_notifier invalidate_range_start/end callback. No functional changes
> > with this patch.
> >
> > Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
> > Cc: Andrew Morton <akpm@linux-foundation.org>
> > Cc: Matthew Wilcox <mawilcox@microsoft.com>
> > Cc: Ross Zwisler <zwisler@kernel.org>
> > Cc: Jan Kara <jack@suse.cz>
> > Cc: Dan Williams <dan.j.williams@intel.com>
> > Cc: Paolo Bonzini <pbonzini@redhat.com>
> > Cc: Radim Krčmář <rkrcmar@redhat.com>
> > Cc: Michal Hocko <mhocko@kernel.org>
> > Cc: Christian Koenig <christian.koenig@amd.com>
> > Cc: Felix Kuehling <felix.kuehling@amd.com>
> > Cc: Ralph Campbell <rcampbell@nvidia.com>
> > Cc: John Hubbard <jhubbard@nvidia.com>
> > Cc: kvm@vger.kernel.org
> > Cc: dri-devel@lists.freedesktop.org
> > Cc: linux-rdma@vger.kernel.org
> > Cc: linux-fsdevel@vger.kernel.org
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 43 +++++++++++--------------
> > drivers/gpu/drm/i915/i915_gem_userptr.c | 14 ++++----
> > drivers/gpu/drm/radeon/radeon_mn.c | 16 ++++-----
> > drivers/infiniband/core/umem_odp.c | 20 +++++-------
> > drivers/infiniband/hw/hfi1/mmu_rb.c | 13 +++-----
> > drivers/misc/mic/scif/scif_dma.c | 11 ++-----
> > drivers/misc/sgi-gru/grutlbpurge.c | 14 ++++----
> > drivers/xen/gntdev.c | 12 +++----
> > include/linux/mmu_notifier.h | 14 +++++---
> > mm/hmm.c | 23 ++++++-------
> > mm/mmu_notifier.c | 21 ++++++++++--
> > virt/kvm/kvm_main.c | 14 +++-----
> > 12 files changed, 102 insertions(+), 113 deletions(-)
> >
> [snip]
> > diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
> > index 5119ff846769..5f6665ae3ee2 100644
> > --- a/mm/mmu_notifier.c
> > +++ b/mm/mmu_notifier.c
> > @@ -178,14 +178,20 @@ int __mmu_notifier_invalidate_range_start(struct mm_struct *mm,
> > unsigned long start, unsigned long end,
> > bool blockable)
> > {
> > + struct mmu_notifier_range _range, *range = &_range;
>
> I'm not sure why you need to access _range indirectly through a pointer.
> See below.
>
>
> > struct mmu_notifier *mn;
> > int ret = 0;
> > int id;
> >
> > + range->blockable = blockable;
> > + range->start = start;
> > + range->end = end;
> > + range->mm = mm;
>
> This could just assign _range.blockable, _range.start, etc. without the
> indirection. Or you could even use an initializer instead:
>
> struct mmu_notifier_range range = {
> .blockable = blockable,
> .start = start,
> ...
> };
>
>
> > +
> > id = srcu_read_lock(&srcu);
> > hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) {
> > if (mn->ops->invalidate_range_start) {
> > - int _ret = mn->ops->invalidate_range_start(mn, mm, start, end, blockable);
> > + int _ret = mn->ops->invalidate_range_start(mn, range);
>
> This could just use &_range without the indirection.
>
> Same in ..._invalidate_range_end below.
So explaination is that this is a temporary step all this code is
remove in the second patch. It was done this way in this patch to
minimize the diff within the next patch.
I did this because i wanted to do the convertion in 2 steps the
first step i convert all the listener of mmu notifier and in the
second step i convert all the call site that trigger a mmu notifer.
I did that to help people reviewing only the part they care about.
Apparently it end up confusing people more than it helped :)
Do people have strong feeling about getting this code that is
deleted in the second patch fix in the first patch anyway ?
I can respin if so but i don't see much value in formating code
that is deleted in the serie.
Thank you for reviewing
Cheers,
Jérôme
next prev parent reply other threads:[~2018-12-05 23:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-05 5:36 [PATCH v2 0/3] mmu notifier contextual informations jglisse
2018-12-05 5:36 ` jglisse
2018-12-05 5:36 ` [PATCH v2 1/3] mm/mmu_notifier: use structure for invalidate_range_start/end callback jglisse
2018-12-05 5:36 ` jglisse
2018-12-05 16:35 ` Jan Kara
2018-12-05 16:40 ` Jerome Glisse
2018-12-05 16:40 ` Jerome Glisse
2018-12-05 16:49 ` Jan Kara
2018-12-05 16:49 ` Jan Kara
2018-12-05 21:42 ` Kuehling, Felix
2018-12-05 21:42 ` Kuehling, Felix
2018-12-05 23:04 ` Jerome Glisse [this message]
2018-12-05 23:15 ` Kuehling, Felix
2018-12-05 23:15 ` Kuehling, Felix
2018-12-07 3:30 ` Jason Gunthorpe
2018-12-07 15:32 ` Jerome Glisse
2018-12-05 5:36 ` [PATCH v2 2/3] mm/mmu_notifier: use structure for invalidate_range_start/end calls v2 jglisse
2018-12-05 5:36 ` jglisse
2018-12-05 16:48 ` Jan Kara
2018-12-05 16:48 ` Jan Kara
2018-12-05 5:36 ` [PATCH v2 3/3] mm/mmu_notifier: contextual information for event triggering invalidation v2 jglisse
2018-12-05 5:36 ` jglisse
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=20181205230413.GN3536@redhat.com \
--to=jglisse@redhat.com \
--cc=Christian.Koenig@amd.com \
--cc=Felix.Kuehling@amd.com \
--cc=akpm@linux-foundation.org \
--cc=dan.j.williams@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jack@suse.cz \
--cc=jhubbard@nvidia.com \
--cc=kvm@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mawilcox@microsoft.com \
--cc=mhocko@kernel.org \
--cc=pbonzini@redhat.com \
--cc=rcampbell@nvidia.com \
--cc=rkrcmar@redhat.com \
--cc=zwisler@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.