All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: "Anshuman Khandual" <anshuman.khandual@arm.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	"Linux MM" <linux-mm@kvack.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Will Deacon" <will.deacon@arm.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Michal Hocko" <mhocko@suse.com>,
	"Mel Gorman" <mgorman@techsingularity.net>,
	james.morse@arm.com, "Mark Rutland" <mark.rutland@arm.com>,
	cpandya@codeaurora.org, arunks@codeaurora.org, osalvador@suse.de,
	"Logan Gunthorpe" <logang@deltatee.com>,
	"David Hildenbrand" <david@redhat.com>,
	cai@lca.pw, "Jérôme Glisse" <jglisse@redhat.com>,
	"Weiny, Ira" <ira.weiny@intel.com>
Subject: Re: [PATCH 6/6] arm64/mm: Enable ZONE_DEVICE
Date: Sun, 7 Apr 2019 15:11:00 -0700	[thread overview]
Message-ID: <CAPcyv4j0Z2ASeJGgS18Bpgr_2F8XdZdCq4T9W5fgkG1oWKtNHg@mail.gmail.com> (raw)
In-Reply-To: <a16a9867-7019-10ab-1901-c114bcd8712b@arm.com>

On Thu, Apr 4, 2019 at 2:47 AM Robin Murphy <robin.murphy@arm.com> wrote:
>
> On 04/04/2019 06:04, Dan Williams wrote:
> > On Wed, Apr 3, 2019 at 9:42 PM Anshuman Khandual
> > <anshuman.khandual@arm.com> wrote:
> >>
> >>
> >>
> >> On 04/03/2019 07:28 PM, Robin Murphy wrote:
> >>> [ +Dan, Jerome ]
> >>>
> >>> On 03/04/2019 05:30, Anshuman Khandual wrote:
> >>>> Arch implementation for functions which create or destroy vmemmap mapping
> >>>> (vmemmap_populate, vmemmap_free) can comprehend and allocate from inside
> >>>> device memory range through driver provided vmem_altmap structure which
> >>>> fulfils all requirements to enable ZONE_DEVICE on the platform. Hence just
> >>>
> >>> ZONE_DEVICE is about more than just altmap support, no?
> >>
> >> Hot plugging the memory into a dev->numa_node's ZONE_DEVICE and initializing the
> >> struct pages for it has stand alone and self contained use case. The driver could
> >> just want to manage the memory itself but with struct pages either in the RAM or
> >> in the device memory range through struct vmem_altmap. The driver may not choose
> >> to opt for HMM, FS DAX, P2PDMA (use cases of ZONE_DEVICE) where it may have to
> >> map these pages into any user pagetable which would necessitate support for
> >> pte|pmd|pud_devmap.
> >
> > What's left for ZONE_DEVICE if none of the above cases are used?
> >
> >> Though I am still working towards getting HMM, FS DAX, P2PDMA enabled on arm64,
> >> IMHO ZONE_DEVICE is self contained and can be evaluated in itself.
> >
> > I'm not convinced. What's the specific use case.
>
> The fundamental "roadmap" reason we've been doing this is to enable
> further NVDIMM/pmem development (libpmem/Qemu/etc.) on arm64. The fact
> that ZONE_DEVICE immediately opens the door to the various other stuff
> that the CCIX folks have interest in is a definite bonus, so it would
> certainly be preferable to get arm64 on par with the current state of
> things rather than try to subdivide the scope further.
>
> I started working on this from the ZONE_DEVICE end, but got bogged down
> in trying to replace my copied-from-s390 dummy hot-remove implementation
> with something proper. Anshuman has stepped in to help with hot-remove
> (since we also have cloud folks wanting that for its own sake), so is
> effectively coming at the problem from the opposite direction, and I'll
> be the first to admit that we've not managed the greatest job of meeting
> in the middle and coordinating our upstream story; sorry about that :)
>
> Let me freshen up my devmap patches and post them properly, since that
> discussion doesn't have to happen in the context of hot-remove; they're
> effectively just parallel dependencies for ZONE_DEVICE.

Sounds good. It's also worth noting that Ira's recent patches for
supporting get_user_pages_fast() for "longterm" pins relies on
PTE_DEVMAP to determine when fast-GUP is safe to proceed, or whether
it needs to fall back to slow-GUP. So it really is the case that
"devmap" support is an assumption for ZONE_DEVICE.

WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: "Mark Rutland" <mark.rutland@arm.com>,
	"Michal Hocko" <mhocko@suse.com>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Weiny, Ira" <ira.weiny@intel.com>,
	"Anshuman Khandual" <anshuman.khandual@arm.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Will Deacon" <will.deacon@arm.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	cai@lca.pw, "Linux MM" <linux-mm@kvack.org>,
	"Logan Gunthorpe" <logang@deltatee.com>,
	james.morse@arm.com, cpandya@codeaurora.org,
	arunks@codeaurora.org,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Mel Gorman" <mgorman@techsingularity.net>,
	linux-arm-kernel@lists.infradead.org, osalvador@suse.de
Subject: Re: [PATCH 6/6] arm64/mm: Enable ZONE_DEVICE
Date: Sun, 7 Apr 2019 15:11:00 -0700	[thread overview]
Message-ID: <CAPcyv4j0Z2ASeJGgS18Bpgr_2F8XdZdCq4T9W5fgkG1oWKtNHg@mail.gmail.com> (raw)
In-Reply-To: <a16a9867-7019-10ab-1901-c114bcd8712b@arm.com>

On Thu, Apr 4, 2019 at 2:47 AM Robin Murphy <robin.murphy@arm.com> wrote:
>
> On 04/04/2019 06:04, Dan Williams wrote:
> > On Wed, Apr 3, 2019 at 9:42 PM Anshuman Khandual
> > <anshuman.khandual@arm.com> wrote:
> >>
> >>
> >>
> >> On 04/03/2019 07:28 PM, Robin Murphy wrote:
> >>> [ +Dan, Jerome ]
> >>>
> >>> On 03/04/2019 05:30, Anshuman Khandual wrote:
> >>>> Arch implementation for functions which create or destroy vmemmap mapping
> >>>> (vmemmap_populate, vmemmap_free) can comprehend and allocate from inside
> >>>> device memory range through driver provided vmem_altmap structure which
> >>>> fulfils all requirements to enable ZONE_DEVICE on the platform. Hence just
> >>>
> >>> ZONE_DEVICE is about more than just altmap support, no?
> >>
> >> Hot plugging the memory into a dev->numa_node's ZONE_DEVICE and initializing the
> >> struct pages for it has stand alone and self contained use case. The driver could
> >> just want to manage the memory itself but with struct pages either in the RAM or
> >> in the device memory range through struct vmem_altmap. The driver may not choose
> >> to opt for HMM, FS DAX, P2PDMA (use cases of ZONE_DEVICE) where it may have to
> >> map these pages into any user pagetable which would necessitate support for
> >> pte|pmd|pud_devmap.
> >
> > What's left for ZONE_DEVICE if none of the above cases are used?
> >
> >> Though I am still working towards getting HMM, FS DAX, P2PDMA enabled on arm64,
> >> IMHO ZONE_DEVICE is self contained and can be evaluated in itself.
> >
> > I'm not convinced. What's the specific use case.
>
> The fundamental "roadmap" reason we've been doing this is to enable
> further NVDIMM/pmem development (libpmem/Qemu/etc.) on arm64. The fact
> that ZONE_DEVICE immediately opens the door to the various other stuff
> that the CCIX folks have interest in is a definite bonus, so it would
> certainly be preferable to get arm64 on par with the current state of
> things rather than try to subdivide the scope further.
>
> I started working on this from the ZONE_DEVICE end, but got bogged down
> in trying to replace my copied-from-s390 dummy hot-remove implementation
> with something proper. Anshuman has stepped in to help with hot-remove
> (since we also have cloud folks wanting that for its own sake), so is
> effectively coming at the problem from the opposite direction, and I'll
> be the first to admit that we've not managed the greatest job of meeting
> in the middle and coordinating our upstream story; sorry about that :)
>
> Let me freshen up my devmap patches and post them properly, since that
> discussion doesn't have to happen in the context of hot-remove; they're
> effectively just parallel dependencies for ZONE_DEVICE.

Sounds good. It's also worth noting that Ira's recent patches for
supporting get_user_pages_fast() for "longterm" pins relies on
PTE_DEVMAP to determine when fast-GUP is safe to proceed, or whether
it needs to fall back to slow-GUP. So it really is the case that
"devmap" support is an assumption for ZONE_DEVICE.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-04-07 22:11 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-03  4:30 [PATCH 0/6] arm64/mm: Enable memory hot remove and ZONE_DEVICE Anshuman Khandual
2019-04-03  4:30 ` Anshuman Khandual
2019-04-03  4:30 ` [PATCH 1/6] arm64/mm: Enable sysfs based memory hot add interface Anshuman Khandual
2019-04-03  4:30   ` Anshuman Khandual
2019-04-03  8:20   ` David Hildenbrand
2019-04-03  8:20     ` David Hildenbrand
2019-04-03 13:12     ` Robin Murphy
2019-04-03 13:12       ` Robin Murphy
2019-04-04  5:21       ` Anshuman Khandual
2019-04-04  5:21         ` Anshuman Khandual
2019-04-04  5:25     ` Anshuman Khandual
2019-04-04  5:25       ` Anshuman Khandual
2019-04-04  8:49       ` David Hildenbrand
2019-04-04  8:49         ` David Hildenbrand
2019-04-03  4:30 ` [PATCH 2/6] arm64/mm: Enable memory hot remove Anshuman Khandual
2019-04-03  4:30   ` Anshuman Khandual
2019-04-03 12:37   ` Robin Murphy
2019-04-03 12:37     ` Robin Murphy
2019-04-03 13:15     ` Steven Price
2019-04-03 13:15       ` Steven Price
2019-04-04  6:51       ` Anshuman Khandual
2019-04-04  6:51         ` Anshuman Khandual
2019-04-04  5:39     ` Anshuman Khandual
2019-04-04  5:39       ` Anshuman Khandual
2019-04-04 11:58       ` Oscar Salvador
2019-04-04 11:58         ` Oscar Salvador
2019-04-04 13:03         ` Anshuman Khandual
2019-04-04 13:03           ` Anshuman Khandual
2019-04-04 15:19           ` Oscar Salvador
2019-04-04 15:19             ` Oscar Salvador
2019-04-03 17:32   ` Logan Gunthorpe
2019-04-03 17:32     ` Logan Gunthorpe
2019-04-03 17:57     ` Robin Murphy
2019-04-03 17:57       ` Robin Murphy
2019-04-04  8:23       ` Anshuman Khandual
2019-04-04  8:23         ` Anshuman Khandual
2019-04-04  7:07     ` Anshuman Khandual
2019-04-04  7:07       ` Anshuman Khandual
2019-04-04  9:16       ` Steven Price
2019-04-04  9:16         ` Steven Price
2019-04-03  4:30 ` [PATCH 3/6] arm64/mm: Enable struct page allocation from device memory Anshuman Khandual
2019-04-03  4:30   ` Anshuman Khandual
2019-04-03  4:30 ` [PATCH 4/6] mm/hotplug: Reorder arch_remove_memory() call in __remove_memory() Anshuman Khandual
2019-04-03  4:30   ` Anshuman Khandual
2019-04-03  8:45   ` Oscar Salvador
2019-04-03  8:45     ` Oscar Salvador
2019-04-03  9:17   ` Michal Hocko
2019-04-03  9:17     ` Michal Hocko
2019-04-04  8:32     ` Anshuman Khandual
2019-04-04  8:32       ` Anshuman Khandual
2019-04-03  9:30   ` David Hildenbrand
2019-04-03  9:30     ` David Hildenbrand
2019-04-03  4:30 ` [PATCH 5/6] mm/memremap: Rename and consolidate SECTION_SIZE Anshuman Khandual
2019-04-03  4:30   ` Anshuman Khandual
2019-04-03  9:26   ` Michal Hocko
2019-04-03  9:26     ` Michal Hocko
2019-04-03  9:30   ` David Hildenbrand
2019-04-03  9:30     ` David Hildenbrand
2019-04-03  4:30 ` [PATCH 6/6] arm64/mm: Enable ZONE_DEVICE Anshuman Khandual
2019-04-03  4:30   ` Anshuman Khandual
2019-04-03 13:58   ` Robin Murphy
2019-04-03 13:58     ` Robin Murphy
2019-04-03 16:07     ` Jerome Glisse
2019-04-03 16:07       ` Jerome Glisse
2019-04-04  5:03       ` Anshuman Khandual
2019-04-04  5:03         ` Anshuman Khandual
2019-04-04  4:42     ` Anshuman Khandual
2019-04-04  4:42       ` Anshuman Khandual
2019-04-04  5:04       ` Dan Williams
2019-04-04  5:04         ` Dan Williams
2019-04-04  9:46         ` Robin Murphy
2019-04-04  9:46           ` Robin Murphy
2019-04-07 22:11           ` Dan Williams [this message]
2019-04-07 22:11             ` Dan Williams
2019-04-08  4:03             ` Ira Weiny
2019-04-08  4:03               ` Ira Weiny
2019-04-08  6:03               ` Anshuman Khandual
2019-04-08  6:03                 ` Anshuman Khandual
2019-04-03 18:08 ` [PATCH 0/6] arm64/mm: Enable memory hot remove and ZONE_DEVICE Dan Williams
2019-04-03 18:08   ` Dan Williams
2019-04-03 18:08   ` Dan Williams
2019-04-04 13:11   ` Anshuman Khandual
2019-04-04 13:11     ` Anshuman Khandual
2019-04-04  9:46 ` [RFC 1/2] mm/vmemmap: Enable vmem_altmap based base page mapping for vmemmap Anshuman Khandual
2019-04-04  9:46   ` Anshuman Khandual
2019-04-04  9:46   ` [RFC 2/2] arm64/mm: Enable ZONE_DEVICE for all page configs Anshuman Khandual
2019-04-04  9:46     ` Anshuman Khandual

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=CAPcyv4j0Z2ASeJGgS18Bpgr_2F8XdZdCq4T9W5fgkG1oWKtNHg@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=arunks@codeaurora.org \
    --cc=cai@lca.pw \
    --cc=catalin.marinas@arm.com \
    --cc=cpandya@codeaurora.org \
    --cc=david@redhat.com \
    --cc=ira.weiny@intel.com \
    --cc=james.morse@arm.com \
    --cc=jglisse@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=logang@deltatee.com \
    --cc=mark.rutland@arm.com \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@suse.com \
    --cc=osalvador@suse.de \
    --cc=robin.murphy@arm.com \
    --cc=will.deacon@arm.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.