Re: linux-next: build failure after merge of the mm tree
Andrew Morton writes: > On Fri, 01 Dec 2023 09:39:20 +1100 Michael Ellerman > wrote: > >> > I am still carrying this patch (it should probably go into the mm >> > tree). Is someone going to pick it up (assuming it is correct)? >> >> I applied it to my next a few days ago, but I must have forgotten to >> push. It's in there now. > > I'll keep a copy in mm.git, to keep the dependencies nice. I added > your acked-by. Sure thing. Thanks. cheers
Re: linux-next: build failure after merge of the mm tree
On Fri, 01 Dec 2023 09:39:20 +1100 Michael Ellerman wrote: > > I am still carrying this patch (it should probably go into the mm > > tree). Is someone going to pick it up (assuming it is correct)? > > I applied it to my next a few days ago, but I must have forgotten to > push. It's in there now. I'll keep a copy in mm.git, to keep the dependencies nice. I added your acked-by.
Re: linux-next: build failure after merge of the mm tree
Stephen Rothwell writes: > On Mon, 27 Nov 2023 14:48:52 +1100 Stephen Rothwell > wrote: >> >> Just cc'ing the PowerPC guys to see if my fix is sensible. >> >> On Mon, 27 Nov 2023 13:28:09 +1100 Stephen Rothwell >> wrote: >> > >> > After merging the mm tree, today's linux-next build (powerpc64 >> > allnoconfig) failed like this: >> > >> > arch/powerpc/mm/book3s64/pgtable.c:557:5: error: no previous prototype for >> > 'pmd_move_must_withdraw' [-Werror=missing-prototypes] >> > 557 | int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, >> > | ^~ >> > cc1: all warnings being treated as errors >> > >> > Caused by commit >> > >> > c6345dfa6e3e ("Makefile.extrawarn: turn on missing-prototypes globally") >> > >> > I have added the following patch for today (which could be applied to >> > the mm or powerpc trees): >> > >> > From 194805b44c11b4c0aa28bdcdc0bb0d82acef394c Mon Sep 17 00:00:00 2001 >> > From: Stephen Rothwell >> > Date: Mon, 27 Nov 2023 13:08:57 +1100 >> > Subject: [PATCH] powerpc: pmd_move_must_withdraw() is only needed for >> > CONFIG_TRANSPARENT_HUGEPAGE >> > >> > Signed-off-by: Stephen Rothwell >> > --- >> > arch/powerpc/mm/book3s64/pgtable.c | 2 ++ >> > 1 file changed, 2 insertions(+) >> > >> > diff --git a/arch/powerpc/mm/book3s64/pgtable.c >> > b/arch/powerpc/mm/book3s64/pgtable.c >> > index be229290a6a7..3438ab72c346 100644 >> > --- a/arch/powerpc/mm/book3s64/pgtable.c >> > +++ b/arch/powerpc/mm/book3s64/pgtable.c >> > @@ -542,6 +542,7 @@ void ptep_modify_prot_commit(struct vm_area_struct >> > *vma, unsigned long addr, >> >set_pte_at(vma->vm_mm, addr, ptep, pte); >> > } >> > >> > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE >> > /* >> > * For hash translation mode, we use the deposited table to store hash >> > slot >> > * information and they are stored at PTRS_PER_PMD offset from related pmd >> > @@ -563,6 +564,7 @@ int pmd_move_must_withdraw(struct spinlock >> > *new_pmd_ptl, >> > >> >return true; >> > } >> > +#endif >> > >> > /* >> > * Does the CPU support tlbie? >> > -- >> > 2.40.1 > > I am still carrying this patch (it should probably go into the mm > tree). Is someone going to pick it up (assuming it is correct)? I applied it to my next a few days ago, but I must have forgotten to push. It's in there now. cheers
Re: linux-next: build failure after merge of the mm tree
On Fri, 1 Dec 2023 09:04:39 +1100 Stephen Rothwell wrote: > Hi all, > > > > diff --git a/arch/powerpc/mm/book3s64/pgtable.c > > > b/arch/powerpc/mm/book3s64/pgtable.c > > > index be229290a6a7..3438ab72c346 100644 > > > --- a/arch/powerpc/mm/book3s64/pgtable.c > > > +++ b/arch/powerpc/mm/book3s64/pgtable.c > > > @@ -542,6 +542,7 @@ void ptep_modify_prot_commit(struct vm_area_struct > > > *vma, unsigned long addr, > > > set_pte_at(vma->vm_mm, addr, ptep, pte); > > > } > > > > > > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > > > /* > > > * For hash translation mode, we use the deposited table to store hash > > > slot > > > * information and they are stored at PTRS_PER_PMD offset from related > > > pmd > > > @@ -563,6 +564,7 @@ int pmd_move_must_withdraw(struct spinlock > > > *new_pmd_ptl, > > > > > > return true; > > > } > > > +#endif > > > > > > /* > > > * Does the CPU support tlbie? > > > -- > > > 2.40.1 > > I am still carrying this patch (it should probably go into the mm > tree). Is someone going to pick it up (assuming it is correct)? AFAIK we're still awaiting input from the ppc team. I'll grab it. If it breaks things then we-told-you-so!
Re: linux-next: build failure after merge of the mm tree
Hi all, On Mon, 27 Nov 2023 14:48:52 +1100 Stephen Rothwell wrote: > > Just cc'ing the PowerPC guys to see if my fix is sensible. > > On Mon, 27 Nov 2023 13:28:09 +1100 Stephen Rothwell > wrote: > > > > After merging the mm tree, today's linux-next build (powerpc64 > > allnoconfig) failed like this: > > > > arch/powerpc/mm/book3s64/pgtable.c:557:5: error: no previous prototype for > > 'pmd_move_must_withdraw' [-Werror=missing-prototypes] > > 557 | int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, > > | ^~ > > cc1: all warnings being treated as errors > > > > Caused by commit > > > > c6345dfa6e3e ("Makefile.extrawarn: turn on missing-prototypes globally") > > > > I have added the following patch for today (which could be applied to > > the mm or powerpc trees): > > > > From 194805b44c11b4c0aa28bdcdc0bb0d82acef394c Mon Sep 17 00:00:00 2001 > > From: Stephen Rothwell > > Date: Mon, 27 Nov 2023 13:08:57 +1100 > > Subject: [PATCH] powerpc: pmd_move_must_withdraw() is only needed for > > CONFIG_TRANSPARENT_HUGEPAGE > > > > Signed-off-by: Stephen Rothwell > > --- > > arch/powerpc/mm/book3s64/pgtable.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/arch/powerpc/mm/book3s64/pgtable.c > > b/arch/powerpc/mm/book3s64/pgtable.c > > index be229290a6a7..3438ab72c346 100644 > > --- a/arch/powerpc/mm/book3s64/pgtable.c > > +++ b/arch/powerpc/mm/book3s64/pgtable.c > > @@ -542,6 +542,7 @@ void ptep_modify_prot_commit(struct vm_area_struct > > *vma, unsigned long addr, > > set_pte_at(vma->vm_mm, addr, ptep, pte); > > } > > > > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > > /* > > * For hash translation mode, we use the deposited table to store hash slot > > * information and they are stored at PTRS_PER_PMD offset from related pmd > > @@ -563,6 +564,7 @@ int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, > > > > return true; > > } > > +#endif > > > > /* > > * Does the CPU support tlbie? > > -- > > 2.40.1 I am still carrying this patch (it should probably go into the mm tree). Is someone going to pick it up (assuming it is correct)? -- Cheers, Stephen Rothwell pgpKkhduvXRmu.pgp Description: OpenPGP digital signature
Re: linux-next: build failure after merge of the mm tree
Hi all, Just cc'ing the PowerPC guys to see if my fix is sensible. On Mon, 27 Nov 2023 13:28:09 +1100 Stephen Rothwell wrote: > > After merging the mm tree, today's linux-next build (powerpc64 > allnoconfig) failed like this: > > arch/powerpc/mm/book3s64/pgtable.c:557:5: error: no previous prototype for > 'pmd_move_must_withdraw' [-Werror=missing-prototypes] > 557 | int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, > | ^~ > cc1: all warnings being treated as errors > > Caused by commit > > c6345dfa6e3e ("Makefile.extrawarn: turn on missing-prototypes globally") > > I have added the following patch for today (which could be applied to > the mm or powerpc trees): > > From 194805b44c11b4c0aa28bdcdc0bb0d82acef394c Mon Sep 17 00:00:00 2001 > From: Stephen Rothwell > Date: Mon, 27 Nov 2023 13:08:57 +1100 > Subject: [PATCH] powerpc: pmd_move_must_withdraw() is only needed for > CONFIG_TRANSPARENT_HUGEPAGE > > Signed-off-by: Stephen Rothwell > --- > arch/powerpc/mm/book3s64/pgtable.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/powerpc/mm/book3s64/pgtable.c > b/arch/powerpc/mm/book3s64/pgtable.c > index be229290a6a7..3438ab72c346 100644 > --- a/arch/powerpc/mm/book3s64/pgtable.c > +++ b/arch/powerpc/mm/book3s64/pgtable.c > @@ -542,6 +542,7 @@ void ptep_modify_prot_commit(struct vm_area_struct *vma, > unsigned long addr, > set_pte_at(vma->vm_mm, addr, ptep, pte); > } > > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > /* > * For hash translation mode, we use the deposited table to store hash slot > * information and they are stored at PTRS_PER_PMD offset from related pmd > @@ -563,6 +564,7 @@ int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, > > return true; > } > +#endif > > /* > * Does the CPU support tlbie? > -- > 2.40.1 -- Cheers, Stephen Rothwell pgpJOpHFq0Tyu.pgp Description: OpenPGP digital signature
Re: linux-next: build failure after merge of the mm tree
On Mon, Aug 21, 2023 at 09:00:43PM -0700, Darrick J. Wong wrote: > Please leave this ^^^ comment, because the need for TRACE_DEFINE_ENUM to > make enums work in tracepoints is not at all obvious. > > "order %u" to match the (non dev_t) style of the rest of the xfs > tracepoints. ACK, thanks. Andrew, please add this -fix patch for "mm: Remove enum page_entry_size". diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index 1904eaf7a2e9..fd789e00dfd6 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -802,9 +802,6 @@ DEFINE_INODE_EVENT(xfs_inode_inactivating); * ring buffer. Somehow this was only worth mentioning in the ftrace sample * code. */ -TRACE_DEFINE_ENUM(PMD_ORDER); -TRACE_DEFINE_ENUM(PUD_ORDER); - TRACE_DEFINE_ENUM(XFS_REFC_DOMAIN_SHARED); TRACE_DEFINE_ENUM(XFS_REFC_DOMAIN_COW); @@ -823,13 +820,10 @@ TRACE_EVENT(xfs_filemap_fault, __entry->order = order; __entry->write_fault = write_fault; ), - TP_printk("dev %d:%d ino 0x%llx %s write_fault %d", + TP_printk("dev %d:%d ino 0x%llx order %u write_fault %d", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, - __print_symbolic(__entry->order, - { 0,"PTE" }, - { PMD_ORDER,"PMD" }, - { PUD_ORDER,"PUD" }), + __entry->order, __entry->write_fault) )
Re: linux-next: build failure after merge of the mm tree
Matthew Wilcox writes: > On Tue, Aug 22, 2023 at 09:55:37AM +1000, Stephen Rothwell wrote: >> In file included from include/trace/trace_events.h:27, >> from include/trace/define_trace.h:102, >> from fs/xfs/xfs_trace.h:4428, >> from fs/xfs/xfs_trace.c:45: >> include/linux/pgtable.h:8:25: error: initializer element is not constant >> 8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT) > > Ummm. PowerPC doesn't have a compile-time constant PMD size? Yeah. The joys of supporting two MMUs with different supported page sizes in a single kernel binary. > arch/powerpc/include/asm/book3s/64/pgtable.h:#define PMD_SHIFT (PAGE_SHIFT + > PTE_INDEX_SIZE) > arch/powerpc/include/asm/book3s/64/pgtable.h:#define PTE_INDEX_SIZE > __pte_index_size > > That's really annoying. I'll try to work around it. Sorry, thanks. cheers
Re: linux-next: build failure after merge of the mm tree
On Tue, Aug 22, 2023 at 02:34:06AM +0100, Matthew Wilcox wrote: > On Tue, Aug 22, 2023 at 11:22:17AM +1000, Stephen Rothwell wrote: > > Hi Matthew, > > > > On Tue, 22 Aug 2023 02:11:44 +0100 Matthew Wilcox > > wrote: > > > > > > On Tue, Aug 22, 2023 at 09:55:37AM +1000, Stephen Rothwell wrote: > > > > In file included from include/trace/trace_events.h:27, > > > > from include/trace/define_trace.h:102, > > > > from fs/xfs/xfs_trace.h:4428, > > > > from fs/xfs/xfs_trace.c:45: > > > > include/linux/pgtable.h:8:25: error: initializer element is not constant > > > > 8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT) > > > > > > Ummm. PowerPC doesn't have a compile-time constant PMD size? > > > > Yeah, you are not the first (or probably the last) to be caught by that. > > I think this will do the trick. Any comments? > > diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h > index 1904eaf7a2e9..d5a4e6c2dcd1 100644 > --- a/fs/xfs/xfs_trace.h > +++ b/fs/xfs/xfs_trace.h > @@ -796,15 +796,6 @@ DEFINE_INODE_EVENT(xfs_inode_reclaiming); > DEFINE_INODE_EVENT(xfs_inode_set_need_inactive); > DEFINE_INODE_EVENT(xfs_inode_inactivating); > > -/* > - * ftrace's __print_symbolic requires that all enum values be wrapped in the > - * TRACE_DEFINE_ENUM macro so that the enum value can be encoded in the > ftrace > - * ring buffer. Somehow this was only worth mentioning in the ftrace sample > - * code. > - */ Please leave this ^^^ comment, because the need for TRACE_DEFINE_ENUM to make enums work in tracepoints is not at all obvious. > -TRACE_DEFINE_ENUM(PMD_ORDER); > -TRACE_DEFINE_ENUM(PUD_ORDER); > - > TRACE_DEFINE_ENUM(XFS_REFC_DOMAIN_SHARED); > TRACE_DEFINE_ENUM(XFS_REFC_DOMAIN_COW); > > @@ -823,13 +814,10 @@ TRACE_EVENT(xfs_filemap_fault, > __entry->order = order; > __entry->write_fault = write_fault; > ), > - TP_printk("dev %d:%d ino 0x%llx %s write_fault %d", > + TP_printk("dev %d:%d ino 0x%llx order:%u write_fault %d", "order %u" to match the (non dev_t) style of the rest of the xfs tracepoints. --D > MAJOR(__entry->dev), MINOR(__entry->dev), > __entry->ino, > - __print_symbolic(__entry->order, > - { 0,"PTE" }, > - { PMD_ORDER,"PMD" }, > - { PUD_ORDER,"PUD" }), > + __entry->order, > __entry->write_fault) > ) > > >
Re: linux-next: build failure after merge of the mm tree
On Tue, Aug 22, 2023 at 11:22:17AM +1000, Stephen Rothwell wrote: > Hi Matthew, > > On Tue, 22 Aug 2023 02:11:44 +0100 Matthew Wilcox wrote: > > > > On Tue, Aug 22, 2023 at 09:55:37AM +1000, Stephen Rothwell wrote: > > > In file included from include/trace/trace_events.h:27, > > > from include/trace/define_trace.h:102, > > > from fs/xfs/xfs_trace.h:4428, > > > from fs/xfs/xfs_trace.c:45: > > > include/linux/pgtable.h:8:25: error: initializer element is not constant > > > 8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT) > > > > Ummm. PowerPC doesn't have a compile-time constant PMD size? > > Yeah, you are not the first (or probably the last) to be caught by that. I think this will do the trick. Any comments? diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index 1904eaf7a2e9..d5a4e6c2dcd1 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -796,15 +796,6 @@ DEFINE_INODE_EVENT(xfs_inode_reclaiming); DEFINE_INODE_EVENT(xfs_inode_set_need_inactive); DEFINE_INODE_EVENT(xfs_inode_inactivating); -/* - * ftrace's __print_symbolic requires that all enum values be wrapped in the - * TRACE_DEFINE_ENUM macro so that the enum value can be encoded in the ftrace - * ring buffer. Somehow this was only worth mentioning in the ftrace sample - * code. - */ -TRACE_DEFINE_ENUM(PMD_ORDER); -TRACE_DEFINE_ENUM(PUD_ORDER); - TRACE_DEFINE_ENUM(XFS_REFC_DOMAIN_SHARED); TRACE_DEFINE_ENUM(XFS_REFC_DOMAIN_COW); @@ -823,13 +814,10 @@ TRACE_EVENT(xfs_filemap_fault, __entry->order = order; __entry->write_fault = write_fault; ), - TP_printk("dev %d:%d ino 0x%llx %s write_fault %d", + TP_printk("dev %d:%d ino 0x%llx order:%u write_fault %d", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, - __print_symbolic(__entry->order, - { 0,"PTE" }, - { PMD_ORDER,"PMD" }, - { PUD_ORDER,"PUD" }), + __entry->order, __entry->write_fault) )
Re: linux-next: build failure after merge of the mm tree
Hi Matthew, On Tue, 22 Aug 2023 02:11:44 +0100 Matthew Wilcox wrote: > > On Tue, Aug 22, 2023 at 09:55:37AM +1000, Stephen Rothwell wrote: > > In file included from include/trace/trace_events.h:27, > > from include/trace/define_trace.h:102, > > from fs/xfs/xfs_trace.h:4428, > > from fs/xfs/xfs_trace.c:45: > > include/linux/pgtable.h:8:25: error: initializer element is not constant > > 8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT) > > Ummm. PowerPC doesn't have a compile-time constant PMD size? Yeah, you are not the first (or probably the last) to be caught by that. -- Cheers, Stephen Rothwell pgp3KpD7r5v3m.pgp Description: OpenPGP digital signature
Re: linux-next: build failure after merge of the mm tree
On Tue, Aug 22, 2023 at 09:55:37AM +1000, Stephen Rothwell wrote: > In file included from include/trace/trace_events.h:27, > from include/trace/define_trace.h:102, > from fs/xfs/xfs_trace.h:4428, > from fs/xfs/xfs_trace.c:45: > include/linux/pgtable.h:8:25: error: initializer element is not constant > 8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT) Ummm. PowerPC doesn't have a compile-time constant PMD size? arch/powerpc/include/asm/book3s/64/pgtable.h:#define PMD_SHIFT (PAGE_SHIFT + PTE_INDEX_SIZE) arch/powerpc/include/asm/book3s/64/pgtable.h:#define PTE_INDEX_SIZE __pte_index_size That's really annoying. I'll try to work around it.
Re: linux-next: build failure after merge of the mm tree
Hi Stephen, On Tue, Jun 13, 2023 at 04:21:19PM +1000, Stephen Rothwell wrote: > After merging the mm tree, today's linux-next build (powerpc > ppc44x_defconfig) failed like this: > > In file included from arch/powerpc/include/asm/page.h:247, > from arch/powerpc/include/asm/thread_info.h:13, > from include/linux/thread_info.h:60, > from include/asm-generic/preempt.h:5, > from ./arch/powerpc/include/generated/asm/preempt.h:1, > from include/linux/preempt.h:78, > from include/linux/spinlock.h:56, > from include/linux/ipc.h:5, > from include/uapi/linux/sem.h:5, > from include/linux/sem.h:5, > from include/linux/compat.h:14, > from arch/powerpc/kernel/asm-offsets.c:12: > arch/powerpc/include/asm/page_32.h:16: warning: "ARCH_DMA_MINALIGN" redefined >16 | #define ARCH_DMA_MINALIGN L1_CACHE_BYTES > | > In file included from include/linux/time.h:5, > from include/linux/compat.h:10: > include/linux/cache.h:104: note: this is the location of the previous > definition > 104 | #define ARCH_DMA_MINALIGN __alignof__(unsigned long long) > | > > (lots of theses) > > Caused by commit > > cc7335787e73 ("mm/slab: decouple ARCH_KMALLOC_MINALIGN from > ARCH_DMA_MINALIGN") > > I have applied the following hack for today - we need something better. I just posted this series fixing it for powerpc, microblaze and sh. I did not add the #ifndef __powerpc64__ line since CONFIG_NOT_COHERENT_CACHE should not be enabled for those builds. https://lore.kernel.org/r/20230613155245.1228274-1-catalin.mari...@arm.com > From: Stephen Rothwell > Date: Tue, 13 Jun 2023 16:07:16 +1000 > Subject: [PATCH] fix up for "mm/slab: decouple ARCH_KMALLOC_MINALIGN from > ARCH_DMA_MINALIGN" > > Signed-off-by: Stephen Rothwell > --- > arch/powerpc/include/asm/cache.h | 9 + > 1 file changed, 9 insertions(+) > > diff --git a/arch/powerpc/include/asm/cache.h > b/arch/powerpc/include/asm/cache.h > index ae0a68a838e8..e9be1396dfd1 100644 > --- a/arch/powerpc/include/asm/cache.h > +++ b/arch/powerpc/include/asm/cache.h > @@ -142,5 +142,14 @@ static inline void iccci(void *addr) > } > > #endif /* !__ASSEMBLY__ */ > + > +#ifndef __powerpc64__ > +#ifdef CONFIG_NOT_COHERENT_CACHE > +#ifndef ARCH_DMA_MINALIGN > +#define ARCH_DMA_MINALIGNL1_CACHE_BYTES > +#endif > +#endif > +#endif > + > #endif /* __KERNEL__ */ > #endif /* _ASM_POWERPC_CACHE_H */ I think it should also remove the ARCH_DMA_MINALIGN from asm/page.h (as I did in my series; sorry I did not cc you, only noticed now that you reported it as well). -- Catalin