Re: [Nouveau] dev_pagemap related cleanups v4
On Tue, Jul 02, 2019 at 04:17:48PM -0700, Dan Williams wrote: > On Tue, Jul 2, 2019 at 11:42 AM Jason Gunthorpe wrote: > > > > On Mon, Jul 01, 2019 at 10:25:17AM +0200, Christoph Hellwig wrote: > > > And I've demonstrated that I can't send patch series.. While this > > > has all the right patches, it also has the extra patches already > > > in the hmm tree, and four extra patches I wanted to send once > > > this series is merged. I'll give up for now, please use the git > > > url for anything serious, as it contains the right thing. > > > > Okay, I sorted it all out and temporarily put it here: > > > > https://github.com/jgunthorpe/linux/commits/hmm > > > > Bit involved job: > > - Took Ira's v4 patch into hmm.git and confirmed it matches what > > Andrew has in linux-next after all the fixups > > - Checked your github v4 and the v3 that hit the mailing list were > > substantially similar (I never did get a clean v4) and largely > > went with the github version > > - Based CH's v4 series on -rc7 and put back the removal hunk in swap.c > > so it compiles > > - Merge'd CH's series to hmm.git and fixed all the conflicts with Ira > > and Ralph's patches (such that swap.c remains unchanged) > > - Added Dan's ack's and tested-by's > > Looks good. Test merge (with some collisions, see below) also passes > my test suite. Okay, published toward linux-next now > > > > I think this fairly closely follows what was posted to the mailing > > list. > > > > As it was more than a simple 'git am', I'll let it sit on github until > > I hear OK's then I'll move it to kernel.org's hmm.git and it will hit > > linux-next. 0-day should also run on this whole thing from my github. > > > > What I know is outstanding: > > - The conflicting ARM patches, I understand Andrew will handle these > >post-linux-next > > - The conflict with AMD GPU in -next, I am waiting to hear from AMD > > Just a heads up that this also collides with the "sub-section" patches > in Andrew's tree. The resolution is straightforward, mostly just > colliding updates to arch_{add,remove}_memory() call sites in > kernel/memremap.c and collisions with pgmap_altmap() usage. Okay, thanks Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v4
On Tue, Jul 2, 2019 at 11:42 AM Jason Gunthorpe wrote: > > On Mon, Jul 01, 2019 at 10:25:17AM +0200, Christoph Hellwig wrote: > > And I've demonstrated that I can't send patch series.. While this > > has all the right patches, it also has the extra patches already > > in the hmm tree, and four extra patches I wanted to send once > > this series is merged. I'll give up for now, please use the git > > url for anything serious, as it contains the right thing. > > Okay, I sorted it all out and temporarily put it here: > > https://github.com/jgunthorpe/linux/commits/hmm > > Bit involved job: > - Took Ira's v4 patch into hmm.git and confirmed it matches what > Andrew has in linux-next after all the fixups > - Checked your github v4 and the v3 that hit the mailing list were > substantially similar (I never did get a clean v4) and largely > went with the github version > - Based CH's v4 series on -rc7 and put back the removal hunk in swap.c > so it compiles > - Merge'd CH's series to hmm.git and fixed all the conflicts with Ira > and Ralph's patches (such that swap.c remains unchanged) > - Added Dan's ack's and tested-by's Looks good. Test merge (with some collisions, see below) also passes my test suite. > > I think this fairly closely follows what was posted to the mailing > list. > > As it was more than a simple 'git am', I'll let it sit on github until > I hear OK's then I'll move it to kernel.org's hmm.git and it will hit > linux-next. 0-day should also run on this whole thing from my github. > > What I know is outstanding: > - The conflicting ARM patches, I understand Andrew will handle these >post-linux-next > - The conflict with AMD GPU in -next, I am waiting to hear from AMD Just a heads up that this also collides with the "sub-section" patches in Andrew's tree. The resolution is straightforward, mostly just colliding updates to arch_{add,remove}_memory() call sites in kernel/memremap.c and collisions with pgmap_altmap() usage. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v4
On Tue, Jul 02, 2019 at 10:45:34PM +, Weiny, Ira wrote: > > > > On Mon, Jul 01, 2019 at 10:25:17AM +0200, Christoph Hellwig wrote: > > > And I've demonstrated that I can't send patch series.. While this has > > > all the right patches, it also has the extra patches already in the > > > hmm tree, and four extra patches I wanted to send once this series is > > > merged. I'll give up for now, please use the git url for anything > > > serious, as it contains the right thing. > > > > Okay, I sorted it all out and temporarily put it here: > > > > https://github.com/jgunthorpe/linux/commits/hmm > > > > Bit involved job: > > - Took Ira's v4 patch into hmm.git and confirmed it matches what > > Andrew has in linux-next after all the fixups > > Looking at the final branch seems good. Looks good to me as well. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v4
> > On Mon, Jul 01, 2019 at 10:25:17AM +0200, Christoph Hellwig wrote: > > And I've demonstrated that I can't send patch series.. While this has > > all the right patches, it also has the extra patches already in the > > hmm tree, and four extra patches I wanted to send once this series is > > merged. I'll give up for now, please use the git url for anything > > serious, as it contains the right thing. > > Okay, I sorted it all out and temporarily put it here: > > https://github.com/jgunthorpe/linux/commits/hmm > > Bit involved job: > - Took Ira's v4 patch into hmm.git and confirmed it matches what > Andrew has in linux-next after all the fixups Looking at the final branch seems good. Ira > - Checked your github v4 and the v3 that hit the mailing list were > substantially similar (I never did get a clean v4) and largely > went with the github version > - Based CH's v4 series on -rc7 and put back the removal hunk in swap.c > so it compiles > - Merge'd CH's series to hmm.git and fixed all the conflicts with Ira > and Ralph's patches (such that swap.c remains unchanged) > - Added Dan's ack's and tested-by's > > I think this fairly closely follows what was posted to the mailing list. > > As it was more than a simple 'git am', I'll let it sit on github until I hear > OK's > then I'll move it to kernel.org's hmm.git and it will hit linux-next. 0-day > should also run on this whole thing from my github. > > What I know is outstanding: > - The conflicting ARM patches, I understand Andrew will handle these >post-linux-next > - The conflict with AMD GPU in -next, I am waiting to hear from AMD > > Otherwise I think we are done with hmm.git for this cycle. > > Unfortunately this is still not enough to progress rdma's ODP, so we will need > to do this again next cycle :( I'll be working on patches once I get all the > merge window prep I have to do done. > > Regards, > Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v4
On Mon, Jul 01, 2019 at 10:25:17AM +0200, Christoph Hellwig wrote: > And I've demonstrated that I can't send patch series.. While this > has all the right patches, it also has the extra patches already > in the hmm tree, and four extra patches I wanted to send once > this series is merged. I'll give up for now, please use the git > url for anything serious, as it contains the right thing. Okay, I sorted it all out and temporarily put it here: https://github.com/jgunthorpe/linux/commits/hmm Bit involved job: - Took Ira's v4 patch into hmm.git and confirmed it matches what Andrew has in linux-next after all the fixups - Checked your github v4 and the v3 that hit the mailing list were substantially similar (I never did get a clean v4) and largely went with the github version - Based CH's v4 series on -rc7 and put back the removal hunk in swap.c so it compiles - Merge'd CH's series to hmm.git and fixed all the conflicts with Ira and Ralph's patches (such that swap.c remains unchanged) - Added Dan's ack's and tested-by's I think this fairly closely follows what was posted to the mailing list. As it was more than a simple 'git am', I'll let it sit on github until I hear OK's then I'll move it to kernel.org's hmm.git and it will hit linux-next. 0-day should also run on this whole thing from my github. What I know is outstanding: - The conflicting ARM patches, I understand Andrew will handle these post-linux-next - The conflict with AMD GPU in -next, I am waiting to hear from AMD Otherwise I think we are done with hmm.git for this cycle. Unfortunately this is still not enough to progress rdma's ODP, so we will need to do this again next cycle :( I'll be working on patches once I get all the merge window prep I have to do done. Regards, Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
[Nouveau] dev_pagemap related cleanups v3
Hi Dan, Jérôme and Jason, below is a series that cleans up the dev_pagemap interface so that it is more easily usable, which removes the need to wrap it in hmm and thus allowing to kill a lot of code Note: this series is on top of Linux 5.2-rc5 and has some minor conflicts with the hmm tree that are easy to resolve. Diffstat summary: 32 files changed, 361 insertions(+), 1012 deletions(-) Git tree: git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup.3 Gitweb: http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/hmm-devmem-cleanup.3 Changes since v2: - fix nvdimm kunit build - add a new memory type for device dax - fix a few issues in intermediate patches that didn't show up in the end result - incorporate feedback from Michal Hocko, including killing of the DEVICE_PUBLIC memory type entirely Changes since v1: - rebase - also switch p2pdma to the internal refcount - add type checking for pgmap->type - rename the migrate method to migrate_to_ram - cleanup the altmap_valid flag - various tidbits from the reviews ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v2
On Wed, Jun 19, 2019 at 09:46:23AM -0700, Dan Williams wrote: > On Wed, Jun 19, 2019 at 9:37 AM Jason Gunthorpe wrote: > > > > On Wed, Jun 19, 2019 at 11:40:32AM +0200, Christoph Hellwig wrote: > > > On Tue, Jun 18, 2019 at 12:47:10PM -0700, Dan Williams wrote: > > > > > Git tree: > > > > > > > > > > git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup.2 > > > > > > > > > > Gitweb: > > > > > > > > > > > > > > > http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/hmm-devmem-cleanup.2 > > > > > > > > > > > Attached is my incremental fixups on top of this series, with those > > > > integrated you can add: > > > > > > I've folded your incremental bits in and pushed out a new > > > hmm-devmem-cleanup.3 to the repo above. Let me know if I didn't mess > > > up anything else. I'll wait for a few more comments and Jason's > > > planned rebase of the hmm branch before reposting. > > > > I said I wouldn't rebase the hmm.git (as it needs to go to DRM, AMD > > and RDMA git trees).. > > > > Instead I will merge v5.2-rc5 to the tree before applying this series. > > > > I've understood this to be Linus's prefered workflow. > > > > So, please send the next iteration of this against either > > plainv5.2-rc5 or v5.2-rc5 merged with hmm.git and I'll sort it out. > > Just make sure that when you backmerge v5.2-rc5 you have a clear > reason in the merge commit message about why you needed to do it. > While needless rebasing is top of the pet peeve list, second place, as > I found out, is mystery merges without explanations. Yes, I always describe the merge commits. Linus also particular about having *good reasons* for merges. This is why I can't fix the hmm.git to have rc5 until I have patches to apply.. Probbaly I will just put CH's series on rc5 and merge it with the cover letter as the merge message. This avoid both rebasing and gives purposeful merges. Thanks, Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v2
On Wed, Jun 19, 2019 at 03:19:23PM -0300, Jason Gunthorpe wrote: > > Just make sure that when you backmerge v5.2-rc5 you have a clear > > reason in the merge commit message about why you needed to do it. > > While needless rebasing is top of the pet peeve list, second place, as > > I found out, is mystery merges without explanations. > > Yes, I always describe the merge commits. Linus also particular about > having *good reasons* for merges. > > This is why I can't fix the hmm.git to have rc5 until I have patches > to apply.. > > Probbaly I will just put CH's series on rc5 and merge it with the > cover letter as the merge message. This avoid both rebasing and gives > purposeful merges. Fine with me. My series right now is on top of the rdma/hmm branch. There is a trivial conflict that is solved by doing so, as my series removes documentation that is fixed up there a bit. There is another trivial conflict with your pending series as they remove code next to each other in hmm.git. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v2
On Wed, Jun 19, 2019 at 9:37 AM Jason Gunthorpe wrote: > > On Wed, Jun 19, 2019 at 11:40:32AM +0200, Christoph Hellwig wrote: > > On Tue, Jun 18, 2019 at 12:47:10PM -0700, Dan Williams wrote: > > > > Git tree: > > > > > > > > git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup.2 > > > > > > > > Gitweb: > > > > > > > > > > > > http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/hmm-devmem-cleanup.2 > > > > > > > > Attached is my incremental fixups on top of this series, with those > > > integrated you can add: > > > > I've folded your incremental bits in and pushed out a new > > hmm-devmem-cleanup.3 to the repo above. Let me know if I didn't mess > > up anything else. I'll wait for a few more comments and Jason's > > planned rebase of the hmm branch before reposting. > > I said I wouldn't rebase the hmm.git (as it needs to go to DRM, AMD > and RDMA git trees).. > > Instead I will merge v5.2-rc5 to the tree before applying this series. > > I've understood this to be Linus's prefered workflow. > > So, please send the next iteration of this against either > plainv5.2-rc5 or v5.2-rc5 merged with hmm.git and I'll sort it out. Just make sure that when you backmerge v5.2-rc5 you have a clear reason in the merge commit message about why you needed to do it. While needless rebasing is top of the pet peeve list, second place, as I found out, is mystery merges without explanations. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups v2
On Mon, Jun 17, 2019 at 5:27 AM Christoph Hellwig wrote: > > Hi Dan, Jérôme and Jason, > > below is a series that cleans up the dev_pagemap interface so that > it is more easily usable, which removes the need to wrap it in hmm > and thus allowing to kill a lot of code > > Note: this series is on top of the rdma/hmm branch + the dev_pagemap > releas fix series from Dan that went into 5.2-rc5. > > Git tree: > > git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup.2 > > Gitweb: > > > http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/hmm-devmem-cleanup.2 > > Changes since v1: > - rebase > - also switch p2pdma to the internal refcount > - add type checking for pgmap->type > - rename the migrate method to migrate_to_ram > - cleanup the altmap_valid flag > - various tidbits from the reviews Attached is my incremental fixups on top of this series, with those integrated you can add: Tested-by: Dan Williams ...to the patches that touch kernel/memremap.c, drivers/dax, and drivers/nvdimm. You can also add: Reviewed-by: Dan Williams ...for the series. diff --git a/drivers/dax/device.c b/drivers/dax/device.c index a9d7c90ecf1e..1af823b2fe6b 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -428,6 +428,7 @@ int dev_dax_probe(struct device *dev) return -EBUSY; } + dev_dax->pgmap.type = MEMORY_DEVICE_DEVDAX; addr = devm_memremap_pages(dev, _dax->pgmap); if (IS_ERR(addr)) return PTR_ERR(addr); diff --git a/drivers/nvdimm/Kconfig b/drivers/nvdimm/Kconfig index 54500798f23a..57d3a6c3ac70 100644 --- a/drivers/nvdimm/Kconfig +++ b/drivers/nvdimm/Kconfig @@ -118,4 +118,15 @@ config NVDIMM_KEYS depends on ENCRYPTED_KEYS depends on (LIBNVDIMM=ENCRYPTED_KEYS) || LIBNVDIMM=m +config NVDIMM_TEST_BUILD + bool "Build the unit test core" + depends on COMPILE_TEST + default COMPILE_TEST + help + Build the core of the unit test infrastructure. The result of + this build is non-functional for unit test execution, but it + otherwise helps catch build errors induced by changes to the + core devm_memremap_pages() implementation and other + infrastructure. + endif diff --git a/drivers/nvdimm/Makefile b/drivers/nvdimm/Makefile index 6f2a088afad6..40080c120363 100644 --- a/drivers/nvdimm/Makefile +++ b/drivers/nvdimm/Makefile @@ -28,3 +28,7 @@ libnvdimm-$(CONFIG_BTT) += btt_devs.o libnvdimm-$(CONFIG_NVDIMM_PFN) += pfn_devs.o libnvdimm-$(CONFIG_NVDIMM_DAX) += dax_devs.o libnvdimm-$(CONFIG_NVDIMM_KEYS) += security.o + +TOOLS := ../../tools +TEST_SRC := $(TOOLS)/testing/nvdimm/test +obj-$(CONFIG_NVDIMM_TEST_BUILD) := $(TEST_SRC)/iomap.o diff --git a/include/linux/memremap.h b/include/linux/memremap.h index 7e0f072ddce7..470de68dabd6 100644 --- a/include/linux/memremap.h +++ b/include/linux/memremap.h @@ -55,12 +55,19 @@ struct vmem_altmap { * MEMORY_DEVICE_PCI_P2PDMA: * Device memory residing in a PCI BAR intended for use with Peer-to-Peer * transactions. + * + * MEMORY_DEVICE_DEVDAX: + * Host memory that has similar access semantics as System RAM i.e. DMA + * coherent and supports page pinning. In contrast to + * MEMORY_DEVICE_FS_DAX, this memory is access via a device-dax + * character device. */ enum memory_type { MEMORY_DEVICE_PRIVATE = 1, MEMORY_DEVICE_PUBLIC, MEMORY_DEVICE_FS_DAX, MEMORY_DEVICE_PCI_P2PDMA, + MEMORY_DEVICE_DEVDAX, }; struct dev_pagemap_ops { diff --git a/kernel/memremap.c b/kernel/memremap.c index 60693a1e8e92..52b4968e62cd 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -173,6 +173,7 @@ void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) }; pgprot_t pgprot = PAGE_KERNEL; int error, nid, is_ram; + bool get_ops = true; switch (pgmap->type) { case MEMORY_DEVICE_PRIVATE: @@ -199,6 +200,8 @@ void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) } break; case MEMORY_DEVICE_PCI_P2PDMA: + case MEMORY_DEVICE_DEVDAX: + get_ops = false; break; default: WARN(1, "Invalid pgmap type %d\n", pgmap->type); @@ -222,7 +225,7 @@ void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) } } - if (pgmap->type != MEMORY_DEVICE_PCI_P2PDMA) { + if (get_ops) { error = dev_pagemap_get_ops(dev, pgmap); if (error) return ERR_PTR(error); diff --git a/tools/testing/nvdimm/test/iomap.c b/tools/testing/nvdimm/test/iomap.c index 8cd9b9873a7f..9019dd8afbc1 100644 --- a/tools/testing/nvdimm/test/iomap.c +++ b/tools/testing/nvdimm/test/iomap.c @@ -106,7 +106,7 @@ EXPORT_SYMBOL(__wrap_devm_memremap); static void nfit_test_kill(void *_pgmap) { - WARN_ON(!pgmap || !pgmap->ref) + struct dev_pagemap *pgmap = _pgmap; if (pgmap->ops && pgmap->ops->kill) pgmap->ops->kill(pgmap); @@ -121,20 +121,45 @@ static void nfit_test_kill(void *_pgmap) } } +static void dev_pagemap_percpu_release(struct percpu_ref *ref) +{ + struct dev_pagemap *pgmap = + container_of(ref, struct dev_pagemap, internal_ref); + + complete(>done); +} + void
Re: [Nouveau] dev_pagemap related cleanups
On Sat, Jun 15, 2019 at 1:34 AM Christoph Hellwig wrote: > > On Fri, Jun 14, 2019 at 06:14:45PM -0700, Dan Williams wrote: > > On Thu, Jun 13, 2019 at 11:14 PM Christoph Hellwig wrote: > > > > > > On Thu, Jun 13, 2019 at 11:27:39AM -0700, Dan Williams wrote: > > > > It also turns out the nvdimm unit tests crash with this signature on > > > > that branch where base v5.2-rc3 passes: > > > > > > How do you run that test? > > > > This is the unit test suite that gets kicked off by running "make > > check" from the ndctl source repository. In this case it requires the > > nfit_test set of modules to create a fake nvdimm environment. > > > > The setup instructions are in the README, but feel free to send me > > branches and I can kick off a test. One of these we'll get around to > > making it automated for patch submissions to the linux-nvdimm mailing > > list. > > Oh, now I remember, and that was the bummer as anything requiring modules > just does not fit at all into my normal test flows that just inject > kernel images and use otherwise static images. Yeah... although we do have some changes being proposed from non-x86 devs to allow a subset of the tests to run without the nfit_test modules: https://patchwork.kernel.org/patch/10980779/ ...so this prompts me to go review that patch. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 11:14 PM Christoph Hellwig wrote: > > On Thu, Jun 13, 2019 at 11:27:39AM -0700, Dan Williams wrote: > > It also turns out the nvdimm unit tests crash with this signature on > > that branch where base v5.2-rc3 passes: > > How do you run that test? This is the unit test suite that gets kicked off by running "make check" from the ndctl source repository. In this case it requires the nfit_test set of modules to create a fake nvdimm environment. The setup instructions are in the README, but feel free to send me branches and I can kick off a test. One of these we'll get around to making it automated for patch submissions to the linux-nvdimm mailing list. https://github.com/pmem/ndctl/blob/master/README.md ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 11:10:45PM +, Jason Gunthorpe wrote: > Okay, NP then, trivial ones are OK to send to Linus.. > > If Andrew gets them into -rc5 then I will get rc5 into hmm.git next > week. If I interpret Andrews mails from last night correctly he just sent them to Linus. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 11:27:39AM -0700, Dan Williams wrote: > It also turns out the nvdimm unit tests crash with this signature on > that branch where base v5.2-rc3 passes: How do you run that test? ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 02:16:27PM +, Jason Gunthorpe wrote: > On Thu, Jun 13, 2019 at 11:43:03AM +0200, Christoph Hellwig wrote: > > Hi Dan, Jérôme and Jason, > > > > below is a series that cleans up the dev_pagemap interface so that > > it is more easily usable, which removes the need to wrap it in hmm > > and thus allowing to kill a lot of code > > Do you want some of this to run through hmm.git? I see many patches > that don't seem to have inter-dependencies.. I think running it through hmm.git makes sense. While there are not actual functional dependency and just a few cosmetic conflicts keeping the hmm stuff together makes a lot of sense. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 11:21:01PM +0200, Christoph Hellwig wrote: > On Thu, Jun 13, 2019 at 08:40:46PM +, Jason Gunthorpe wrote: > > > Perhaps we should pull those out and resend them through hmm.git? > > > > It could be done - but how bad is the conflict resolution? > > Trivial. All but one patch just apply using git-am, and the other one > just has a few lines of offsets. Okay, NP then, trivial ones are OK to send to Linus.. If Andrew gets them into -rc5 then I will get rc5 into hmm.git next week. Thanks, Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, 13 Jun 2019 14:24:20 -0600 Logan Gunthorpe wrote: > > > On 2019-06-13 2:21 p.m., Dan Williams wrote: > > On Thu, Jun 13, 2019 at 1:18 PM Logan Gunthorpe wrote: > >> > >> > >> > >> On 2019-06-13 12:27 p.m., Dan Williams wrote: > >>> On Thu, Jun 13, 2019 at 2:43 AM Christoph Hellwig wrote: > > Hi Dan, Jérôme and Jason, > > below is a series that cleans up the dev_pagemap interface so that > it is more easily usable, which removes the need to wrap it in hmm > and thus allowing to kill a lot of code > > Diffstat: > > 22 files changed, 245 insertions(+), 802 deletions(-) > >>> > >>> Hooray! > >>> > Git tree: > > git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup > >>> > >>> I just realized this collides with the dev_pagemap release rework in > >>> Andrew's tree (commit ids below are from next.git and are not stable) > >>> > >>> 4422ee8476f0 mm/devm_memremap_pages: fix final page put race > >>> 771f0714d0dc PCI/P2PDMA: track pgmap references per resource, not globally > >>> af37085de906 lib/genalloc: introduce chunk owners > >>> e0047ff8aa77 PCI/P2PDMA: fix the gen_pool_add_virt() failure path > >>> 0315d47d6ae9 mm/devm_memremap_pages: introduce devm_memunmap_pages > >>> 216475c7eaa8 drivers/base/devres: introduce devm_release_action() > >>> > >>> CONFLICT (content): Merge conflict in tools/testing/nvdimm/test/iomap.c > >>> CONFLICT (content): Merge conflict in mm/hmm.c > >>> CONFLICT (content): Merge conflict in kernel/memremap.c > >>> CONFLICT (content): Merge conflict in include/linux/memremap.h > >>> CONFLICT (content): Merge conflict in drivers/pci/p2pdma.c > >>> CONFLICT (content): Merge conflict in drivers/nvdimm/pmem.c > >>> CONFLICT (content): Merge conflict in drivers/dax/device.c > >>> CONFLICT (content): Merge conflict in drivers/dax/dax-private.h > >>> > >>> Perhaps we should pull those out and resend them through hmm.git? > >> > >> Hmm, I've been waiting for those patches to get in for a little while now > >> ;( > > > > Unless Andrew was going to submit as v5.2-rc fixes I think I should > > rebase / submit them on current hmm.git and then throw these cleanups > > from Christoph on top? > > Whatever you feel is best. I'm just hoping they get in sooner rather > than later. They do fix a bug after all. Let me know if you want me to > retest the P2PDMA stuff after the rebase. I had them down for 5.3-rc1. I'll send them along for 5.2-rc5 instead. ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 11:27:39AM -0700, Dan Williams wrote: > On Thu, Jun 13, 2019 at 2:43 AM Christoph Hellwig wrote: > > > > Hi Dan, Jérôme and Jason, > > > > below is a series that cleans up the dev_pagemap interface so that > > it is more easily usable, which removes the need to wrap it in hmm > > and thus allowing to kill a lot of code > > > > Diffstat: > > > > 22 files changed, 245 insertions(+), 802 deletions(-) > > Hooray! > > > Git tree: > > > > git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup > > I just realized this collides with the dev_pagemap release rework in > Andrew's tree (commit ids below are from next.git and are not stable) > > 4422ee8476f0 mm/devm_memremap_pages: fix final page put race > 771f0714d0dc PCI/P2PDMA: track pgmap references per resource, not globally > af37085de906 lib/genalloc: introduce chunk owners > e0047ff8aa77 PCI/P2PDMA: fix the gen_pool_add_virt() failure path > 0315d47d6ae9 mm/devm_memremap_pages: introduce devm_memunmap_pages > 216475c7eaa8 drivers/base/devres: introduce devm_release_action() > > CONFLICT (content): Merge conflict in tools/testing/nvdimm/test/iomap.c > CONFLICT (content): Merge conflict in mm/hmm.c > CONFLICT (content): Merge conflict in kernel/memremap.c > CONFLICT (content): Merge conflict in include/linux/memremap.h > CONFLICT (content): Merge conflict in drivers/pci/p2pdma.c > CONFLICT (content): Merge conflict in drivers/nvdimm/pmem.c > CONFLICT (content): Merge conflict in drivers/dax/device.c > CONFLICT (content): Merge conflict in drivers/dax/dax-private.h > > Perhaps we should pull those out and resend them through hmm.git? It could be done - but how bad is the conflict resolution? I'd be more comfortable to take a PR from you to merge into hmm.git, rather than raw patches, then apply CH's series on top. I think. That way if something goes wrong you can send your PR to Linus directly. > It also turns out the nvdimm unit tests crash with this signature on > that branch where base v5.2-rc3 passes: > > BUG: kernel NULL pointer dereference, address: 0008 > [..] > CPU: 15 PID: 1414 Comm: lt-libndctl Tainted: G OE > 5.2.0-rc3+ #3399 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 > 02/06/2015 > RIP: 0010:percpu_ref_kill_and_confirm+0x1e/0x180 > [..] > Call Trace: > release_nodes+0x234/0x280 > device_release_driver_internal+0xe8/0x1b0 > bus_remove_device+0xf2/0x160 > device_del+0x166/0x370 > unregister_dev_dax+0x23/0x50 > release_nodes+0x234/0x280 > device_release_driver_internal+0xe8/0x1b0 > unbind_store+0x94/0x120 > kernfs_fop_write+0xf0/0x1a0 > vfs_write+0xb7/0x1b0 > ksys_write+0x5c/0xd0 > do_syscall_64+0x60/0x240 Too bad the trace didn't say which devm cleanup triggered it.. Did dev_pagemap_percpu_exit get called with a NULL pgmap->ref ? Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 2:43 AM Christoph Hellwig wrote: > > Hi Dan, Jérôme and Jason, > > below is a series that cleans up the dev_pagemap interface so that > it is more easily usable, which removes the need to wrap it in hmm > and thus allowing to kill a lot of code > > Diffstat: > > 22 files changed, 245 insertions(+), 802 deletions(-) Hooray! > Git tree: > > git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup I just realized this collides with the dev_pagemap release rework in Andrew's tree (commit ids below are from next.git and are not stable) 4422ee8476f0 mm/devm_memremap_pages: fix final page put race 771f0714d0dc PCI/P2PDMA: track pgmap references per resource, not globally af37085de906 lib/genalloc: introduce chunk owners e0047ff8aa77 PCI/P2PDMA: fix the gen_pool_add_virt() failure path 0315d47d6ae9 mm/devm_memremap_pages: introduce devm_memunmap_pages 216475c7eaa8 drivers/base/devres: introduce devm_release_action() CONFLICT (content): Merge conflict in tools/testing/nvdimm/test/iomap.c CONFLICT (content): Merge conflict in mm/hmm.c CONFLICT (content): Merge conflict in kernel/memremap.c CONFLICT (content): Merge conflict in include/linux/memremap.h CONFLICT (content): Merge conflict in drivers/pci/p2pdma.c CONFLICT (content): Merge conflict in drivers/nvdimm/pmem.c CONFLICT (content): Merge conflict in drivers/dax/device.c CONFLICT (content): Merge conflict in drivers/dax/dax-private.h Perhaps we should pull those out and resend them through hmm.git? It also turns out the nvdimm unit tests crash with this signature on that branch where base v5.2-rc3 passes: BUG: kernel NULL pointer dereference, address: 0008 [..] CPU: 15 PID: 1414 Comm: lt-libndctl Tainted: G OE 5.2.0-rc3+ #3399 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015 RIP: 0010:percpu_ref_kill_and_confirm+0x1e/0x180 [..] Call Trace: release_nodes+0x234/0x280 device_release_driver_internal+0xe8/0x1b0 bus_remove_device+0xf2/0x160 device_del+0x166/0x370 unregister_dev_dax+0x23/0x50 release_nodes+0x234/0x280 device_release_driver_internal+0xe8/0x1b0 unbind_store+0x94/0x120 kernfs_fop_write+0xf0/0x1a0 vfs_write+0xb7/0x1b0 ksys_write+0x5c/0xd0 do_syscall_64+0x60/0x240 The crash bisects to: d8cc8bbe108c device-dax: use the dev_pagemap internal refcount ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] dev_pagemap related cleanups
On Thu, Jun 13, 2019 at 11:43:03AM +0200, Christoph Hellwig wrote: > Hi Dan, Jérôme and Jason, > > below is a series that cleans up the dev_pagemap interface so that > it is more easily usable, which removes the need to wrap it in hmm > and thus allowing to kill a lot of code Do you want some of this to run through hmm.git? I see many patches that don't seem to have inter-dependencies.. Thanks, Jason ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
[Nouveau] dev_pagemap related cleanups
Hi Dan, Jérôme and Jason, below is a series that cleans up the dev_pagemap interface so that it is more easily usable, which removes the need to wrap it in hmm and thus allowing to kill a lot of code Diffstat: 22 files changed, 245 insertions(+), 802 deletions(-) Git tree: git://git.infradead.org/users/hch/misc.git hmm-devmem-cleanup Gitweb: http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/hmm-devmem-cleanup ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau