Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1618447
| From | Jerome Glisse <jglisse@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE |
| Date | 2017-04-07 04:10 +0200 |
| Message-ID | <ttrvA-NV-5@gated-at.bofh.it> (permalink) |
| References | <tt02l-7qU-3@gated-at.bofh.it> <tt02l-7qU-5@gated-at.bofh.it> <ttr2y-oT-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Fri, Apr 07, 2017 at 11:37:34AM +1000, Balbir Singh wrote: > On Wed, 2017-04-05 at 16:40 -0400, Jérôme Glisse wrote: > > This introduce a simple struct and associated helpers for device driver > > to use when hotpluging un-addressable device memory as ZONE_DEVICE. It > > will find a unuse physical address range and trigger memory hotplug for > > it which allocates and initialize struct page for the device memory. > > > > Signed-off-by: Jérôme Glisse <jglisse@redhat.com> > > Signed-off-by: Evgeny Baskakov <ebaskakov@nvidia.com> > > Signed-off-by: John Hubbard <jhubbard@nvidia.com> > > Signed-off-by: Mark Hairgrove <mhairgrove@nvidia.com> > > Signed-off-by: Sherry Cheung <SCheung@nvidia.com> > > Signed-off-by: Subhash Gutti <sgutti@nvidia.com> > > --- > > include/linux/hmm.h | 114 +++++++++++++++ > > mm/Kconfig | 9 ++ > > mm/hmm.c | 398 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 521 insertions(+) > > > > +/* > > + * To add (hotplug) device memory, HMM assumes that there is no real resource > > + * that reserves a range in the physical address space (this is intended to be > > + * use by unaddressable device memory). It will reserve a physical range big > > + * enough and allocate struct page for it. > > I've found that the implementation of this is quite non-portable, in that > starting from iomem_resource.end+1-size (which is effectively -size) on > my platform (powerpc) does not give expected results. It could be that > additional changes are needed to arch_add_memory() to support this > use case. The CDM version does not use that part, that being said isn't -size a valid value we care only about unsigned here ? What is the end value on powerpc ? In any case this sounds more like a unsigned/signed arithmetic issue, i will look into it. > > > + > > + size = ALIGN(size, SECTION_SIZE); > > + addr = (iomem_resource.end + 1ULL) - size; > > > Why don't we allocate_resource() with the right constraints and get a new > unused region? The issue with allocate_resource() is that it does scan the resource tree from lower address to higher ones. I was told that it was less likely to have hotplug issue conflict if i pick highest physicall address for the device memory hence why i do my own scan from the end toward the start. Again all this function does not apply to PPC, it can be hidden behind x86 config if you prefer it. Cheers, Jérôme
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE Jérôme Glisse <jglisse@redhat.com> - 2017-04-05 22:50 +0200
Re: [HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE Jerome Glisse <jglisse@redhat.com> - 2017-04-06 23:30 +0200
Re: [HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE Balbir Singh <bsingharora@gmail.com> - 2017-04-07 03:40 +0200
Re: [HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE Jerome Glisse <jglisse@redhat.com> - 2017-04-07 04:10 +0200
Re: [HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE Jerome Glisse <jglisse@redhat.com> - 2017-04-07 18:30 +0200
Re: [HMM 14/16] mm/hmm/devmem: device memory hotplug using ZONE_DEVICE Balbir Singh <bsingharora@gmail.com> - 2017-04-10 06:40 +0200
csiph-web