From: Jerome Glisse <jglisse@redhat.com>
To: Balbir Singh <bsingharora@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
John Hubbard <jhubbard@nvidia.com>,
David Nellans <dnellans@nvidia.com>,
Balbir Singh <balbirs@au1.ibm.com>,
Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [HMM-CDM 5/5] mm/hmm: simplify kconfig and enable HMM and DEVICE_PUBLIC for ppc64
Date: Wed, 14 Jun 2017 22:07:09 -0400 [thread overview]
Message-ID: <20170615020709.GB4666@redhat.com> (raw)
In-Reply-To: <20170615114611.34e8f2a7@firefly.ozlabs.ibm.com>
On Thu, Jun 15, 2017 at 11:46:11AM +1000, Balbir Singh wrote:
> On Wed, 14 Jun 2017 16:11:44 -0400
> Jerome Glisse <jglisse@redhat.com> wrote:
>
> > This just simplify kconfig and allow HMM and DEVICE_PUBLIC to be
> > selected for ppc64 once ZONE_DEVICE is allowed on ppc64 (different
> > patchset).
> >
> > Signed-off-by: Jerome Glisse <jglisse@redhat.com>
> > Signed-off-by: John Hubbard <jhubbard@nvidia.com>
> > Cc: Balbir Singh <balbirs@au1.ibm.com>
> > Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
> > Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > ---
> > include/linux/hmm.h | 4 ++--
> > mm/Kconfig | 27 ++++++---------------------
> > mm/hmm.c | 4 ++--
> > 3 files changed, 10 insertions(+), 25 deletions(-)
> >
> > diff --git a/include/linux/hmm.h b/include/linux/hmm.h
> > index f6713b2..720d18c 100644
> > --- a/include/linux/hmm.h
> > +++ b/include/linux/hmm.h
> > @@ -327,7 +327,7 @@ int hmm_vma_fault(struct vm_area_struct *vma,
> > #endif /* IS_ENABLED(CONFIG_HMM_MIRROR) */
> >
> >
> > -#if IS_ENABLED(CONFIG_HMM_DEVMEM)
> > +#if IS_ENABLED(CONFIG_DEVICE_PRIVATE) || IS_ENABLED(CONFIG_DEVICE_PUBLIC)
> > struct hmm_devmem;
> >
> > struct page *hmm_vma_alloc_locked_page(struct vm_area_struct *vma,
> > @@ -456,7 +456,7 @@ struct hmm_device {
> > */
> > struct hmm_device *hmm_device_new(void *drvdata);
> > void hmm_device_put(struct hmm_device *hmm_device);
> > -#endif /* IS_ENABLED(CONFIG_HMM_DEVMEM) */
> > +#endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */
> >
> >
> > /* Below are for HMM internal use only! Not to be used by device driver! */
> > diff --git a/mm/Kconfig b/mm/Kconfig
> > index ad082b9..7de939a 100644
> > --- a/mm/Kconfig
> > +++ b/mm/Kconfig
> > @@ -265,7 +265,7 @@ config ARCH_ENABLE_HUGEPAGE_MIGRATION
> > config ARCH_HAS_HMM
> > bool
> > default y
> > - depends on X86_64
> > + depends on X86_64 || PPC64
>
> Ideally we want to make this (PPC64 && PPC_BOOK3S)
BOOK3S really ? :)
>
> > depends on ZONE_DEVICE
> > depends on MMU && 64BIT
> > depends on MEMORY_HOTPLUG
> > @@ -277,7 +277,7 @@ config HMM
> >
> > config HMM_MIRROR
> > bool "HMM mirror CPU page table into a device page table"
> > - depends on ARCH_HAS_HMM
> > + depends on ARCH_HAS_HMM && X86_64
>
> We would need HMM_MIRROR for the generation of hardware that does
> not have CDM
That would require could change to mirror code mostly ppc is missing
something like pmd_index() iirc. So best to tackle that as separate
patchset.
>
> > select MMU_NOTIFIER
> > select HMM
> > help
> > @@ -287,15 +287,6 @@ config HMM_MIRROR
> > page tables (at PAGE_SIZE granularity), and must be able to recover from
> > the resulting potential page faults.
> >
> > -config HMM_DEVMEM
> > - bool "HMM device memory helpers (to leverage ZONE_DEVICE)"
> > - depends on ARCH_HAS_HMM
> > - select HMM
> > - help
> > - HMM devmem is a set of helper routines to leverage the ZONE_DEVICE
> > - feature. This is just to avoid having device drivers to replicating a lot
> > - of boiler plate code. See Documentation/vm/hmm.txt.
> > -
> > config PHYS_ADDR_T_64BIT
> > def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT
> >
> > @@ -720,11 +711,8 @@ config ZONE_DEVICE
> >
> > config DEVICE_PRIVATE
> > bool "Unaddressable device memory (GPU memory, ...)"
> > - depends on X86_64
> > - depends on ZONE_DEVICE
> > - depends on MEMORY_HOTPLUG
> > - depends on MEMORY_HOTREMOVE
> > - depends on SPARSEMEM_VMEMMAP
> > + depends on ARCH_HAS_HMM && X86_64
>
> Same as above
>
> > + select HMM
> >
> > help
> > Allows creation of struct pages to represent unaddressable device
> > @@ -733,11 +721,8 @@ config DEVICE_PRIVATE
> >
> > config DEVICE_PUBLIC
> > bool "Unaddressable device memory (GPU memory, ...)"
>
> The unaddressable is a typo from above.
Yup cut and paste thank for catching that.
Jerome
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Jerome Glisse <jglisse@redhat.com>
To: Balbir Singh <bsingharora@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
John Hubbard <jhubbard@nvidia.com>,
David Nellans <dnellans@nvidia.com>,
Balbir Singh <balbirs@au1.ibm.com>,
Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [HMM-CDM 5/5] mm/hmm: simplify kconfig and enable HMM and DEVICE_PUBLIC for ppc64
Date: Wed, 14 Jun 2017 22:07:09 -0400 [thread overview]
Message-ID: <20170615020709.GB4666@redhat.com> (raw)
In-Reply-To: <20170615114611.34e8f2a7@firefly.ozlabs.ibm.com>
On Thu, Jun 15, 2017 at 11:46:11AM +1000, Balbir Singh wrote:
> On Wed, 14 Jun 2017 16:11:44 -0400
> Jérôme Glisse <jglisse@redhat.com> wrote:
>
> > This just simplify kconfig and allow HMM and DEVICE_PUBLIC to be
> > selected for ppc64 once ZONE_DEVICE is allowed on ppc64 (different
> > patchset).
> >
> > Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
> > Signed-off-by: John Hubbard <jhubbard@nvidia.com>
> > Cc: Balbir Singh <balbirs@au1.ibm.com>
> > Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
> > Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > ---
> > include/linux/hmm.h | 4 ++--
> > mm/Kconfig | 27 ++++++---------------------
> > mm/hmm.c | 4 ++--
> > 3 files changed, 10 insertions(+), 25 deletions(-)
> >
> > diff --git a/include/linux/hmm.h b/include/linux/hmm.h
> > index f6713b2..720d18c 100644
> > --- a/include/linux/hmm.h
> > +++ b/include/linux/hmm.h
> > @@ -327,7 +327,7 @@ int hmm_vma_fault(struct vm_area_struct *vma,
> > #endif /* IS_ENABLED(CONFIG_HMM_MIRROR) */
> >
> >
> > -#if IS_ENABLED(CONFIG_HMM_DEVMEM)
> > +#if IS_ENABLED(CONFIG_DEVICE_PRIVATE) || IS_ENABLED(CONFIG_DEVICE_PUBLIC)
> > struct hmm_devmem;
> >
> > struct page *hmm_vma_alloc_locked_page(struct vm_area_struct *vma,
> > @@ -456,7 +456,7 @@ struct hmm_device {
> > */
> > struct hmm_device *hmm_device_new(void *drvdata);
> > void hmm_device_put(struct hmm_device *hmm_device);
> > -#endif /* IS_ENABLED(CONFIG_HMM_DEVMEM) */
> > +#endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */
> >
> >
> > /* Below are for HMM internal use only! Not to be used by device driver! */
> > diff --git a/mm/Kconfig b/mm/Kconfig
> > index ad082b9..7de939a 100644
> > --- a/mm/Kconfig
> > +++ b/mm/Kconfig
> > @@ -265,7 +265,7 @@ config ARCH_ENABLE_HUGEPAGE_MIGRATION
> > config ARCH_HAS_HMM
> > bool
> > default y
> > - depends on X86_64
> > + depends on X86_64 || PPC64
>
> Ideally we want to make this (PPC64 && PPC_BOOK3S)
BOOK3S really ? :)
>
> > depends on ZONE_DEVICE
> > depends on MMU && 64BIT
> > depends on MEMORY_HOTPLUG
> > @@ -277,7 +277,7 @@ config HMM
> >
> > config HMM_MIRROR
> > bool "HMM mirror CPU page table into a device page table"
> > - depends on ARCH_HAS_HMM
> > + depends on ARCH_HAS_HMM && X86_64
>
> We would need HMM_MIRROR for the generation of hardware that does
> not have CDM
That would require could change to mirror code mostly ppc is missing
something like pmd_index() iirc. So best to tackle that as separate
patchset.
>
> > select MMU_NOTIFIER
> > select HMM
> > help
> > @@ -287,15 +287,6 @@ config HMM_MIRROR
> > page tables (at PAGE_SIZE granularity), and must be able to recover from
> > the resulting potential page faults.
> >
> > -config HMM_DEVMEM
> > - bool "HMM device memory helpers (to leverage ZONE_DEVICE)"
> > - depends on ARCH_HAS_HMM
> > - select HMM
> > - help
> > - HMM devmem is a set of helper routines to leverage the ZONE_DEVICE
> > - feature. This is just to avoid having device drivers to replicating a lot
> > - of boiler plate code. See Documentation/vm/hmm.txt.
> > -
> > config PHYS_ADDR_T_64BIT
> > def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT
> >
> > @@ -720,11 +711,8 @@ config ZONE_DEVICE
> >
> > config DEVICE_PRIVATE
> > bool "Unaddressable device memory (GPU memory, ...)"
> > - depends on X86_64
> > - depends on ZONE_DEVICE
> > - depends on MEMORY_HOTPLUG
> > - depends on MEMORY_HOTREMOVE
> > - depends on SPARSEMEM_VMEMMAP
> > + depends on ARCH_HAS_HMM && X86_64
>
> Same as above
>
> > + select HMM
> >
> > help
> > Allows creation of struct pages to represent unaddressable device
> > @@ -733,11 +721,8 @@ config DEVICE_PRIVATE
> >
> > config DEVICE_PUBLIC
> > bool "Unaddressable device memory (GPU memory, ...)"
>
> The unaddressable is a typo from above.
Yup cut and paste thank for catching that.
Jérôme
next prev parent reply other threads:[~2017-06-15 2:07 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-14 20:11 [HMM-CDM 0/5] Cache coherent device memory (CDM) with HMM Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-14 20:11 ` [HMM-CDM 1/5] mm/device-public-memory: device memory cache coherent with CPU Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-14 20:11 ` [HMM-CDM 2/5] mm/hmm: add new helper to hotplug CDM memory region Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-15 4:28 ` Balbir Singh
2017-06-15 4:28 ` Balbir Singh
2017-06-14 20:11 ` [HMM-CDM 3/5] mm/memcontrol: allow to uncharge page without using page->lru field Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
[not found] ` <20170614201144.9306-4-jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-06-15 3:31 ` Balbir Singh
2017-06-15 3:31 ` Balbir Singh
2017-06-15 3:31 ` Balbir Singh
[not found] ` <20170615133128.2fe2c33f-czjtt42qU+xukE8zL+fsbsxtgHpCUUYS@public.gmane.org>
2017-06-15 15:35 ` Jerome Glisse
2017-06-15 15:35 ` Jerome Glisse
2017-06-15 15:35 ` Jerome Glisse
2017-06-14 20:11 ` [HMM-CDM 4/5] mm/memcontrol: support MEMORY_DEVICE_PRIVATE and MEMORY_DEVICE_PUBLIC Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-15 1:41 ` Balbir Singh
2017-06-15 1:41 ` Balbir Singh
[not found] ` <20170615114159.11a1eece-czjtt42qU+xukE8zL+fsbsxtgHpCUUYS@public.gmane.org>
2017-06-15 2:04 ` Jerome Glisse
2017-06-15 2:04 ` Jerome Glisse
2017-06-15 2:04 ` Jerome Glisse
2017-06-15 3:10 ` Balbir Singh
2017-06-15 3:10 ` Balbir Singh
2017-06-14 20:11 ` [HMM-CDM 5/5] mm/hmm: simplify kconfig and enable HMM and DEVICE_PUBLIC for ppc64 Jérôme Glisse
2017-06-14 20:11 ` Jérôme Glisse
2017-06-14 23:10 ` John Hubbard
2017-06-14 23:10 ` John Hubbard
2017-06-15 2:09 ` Jerome Glisse
2017-06-15 2:09 ` Jerome Glisse
2017-06-15 3:15 ` John Hubbard
2017-06-15 3:15 ` John Hubbard
2017-06-15 1:46 ` Balbir Singh
2017-06-15 1:46 ` Balbir Singh
2017-06-15 2:07 ` Jerome Glisse [this message]
2017-06-15 2:07 ` Jerome Glisse
2017-06-15 2:59 ` Balbir Singh
2017-06-15 2:59 ` Balbir Singh
2017-06-14 21:20 ` [HMM-CDM 0/5] Cache coherent device memory (CDM) with HMM Dave Hansen
2017-06-14 21:20 ` Dave Hansen
2017-06-14 21:20 ` Dave Hansen
[not found] ` <8219f8fb-65bb-7c6b-6c4c-acc0601c1e0f-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-06-14 21:38 ` Jerome Glisse
2017-06-14 21:38 ` Jerome Glisse
2017-06-14 21:38 ` Jerome Glisse
[not found] ` <20170614213800.GD4160-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-06-14 21:58 ` Dave Hansen
2017-06-14 21:58 ` Dave Hansen
2017-06-14 21:58 ` Dave Hansen
2017-06-14 22:07 ` Benjamin Herrenschmidt
2017-06-14 22:07 ` Benjamin Herrenschmidt
2017-06-14 22:07 ` Benjamin Herrenschmidt
[not found] ` <3a617630-2406-da49-707c-4959a2afd8e1-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-06-14 23:40 ` Balbir Singh
2017-06-14 23:40 ` Balbir Singh
2017-06-14 23:40 ` Balbir Singh
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=20170615020709.GB4666@redhat.com \
--to=jglisse@redhat.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=balbirs@au1.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=bsingharora@gmail.com \
--cc=dnellans@nvidia.com \
--cc=jhubbard@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=paulmck@linux.vnet.ibm.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 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.