git-slab plus git-tip breaks i386 allnoconfig
Subsystems (2)
Andrew Morton
maintainerIn file included from include/linux/rcupdate.h:39,
from include/linux/marker.h:16,
from include/linux/kmemtrace.h:13,
from include/linux/slub_def.h:13,
from include/linux/slab.h:184,
from include/asm/pgtable_32.h:21,
from include/asm/pgtable.h:394,
from include/linux/mm.h:40,
from arch/x86/mm/pgtable.c:1:include/linux/percpu.h: In function '__percpu_alloc_mask':include/linux/percpu.h:108: error: implicit declaration of function 'kzalloc' include/linux/percpu.h:108: warning: return makes pointer from integer without a cast In file included from include/asm/pgtable_32.h:21,
from include/asm/pgtable.h:394,
from include/linux/mm.h:40,
from arch/x86/mm/pgtable.c:1:include/linux/slab.h: At top level:include/linux/slab.h:336: error: conflicting types for 'kzalloc' include/linux/percpu.h:108: error: previous implicit declaration of 'kzalloc' was here In file included from include/linux/rcupdate.h:39,
but that file includes slab.h, so I suspect we have some recursive include snafu somewhere which caused the slab.h inclusion to get skipped.
Shudder. I'll locally use this notapatch:
include/linux/percpu.h renamed from include/linux/percpu.h~a +6 -9
@@ -103,15 +103,12 @@ extern void percpu_free(void *__pdata);#define percpu_ptr (ptr, cpu) ({ (void)(cpu); (ptr); }) -static __always_inline void *__percpu_alloc_mask(size_t size, gfp_t gfp, cpumask_t *mask) -{ -return kzalloc (size, gfp); -} - -static inline void percpu_free (void *__pdata) -{ -kfree (__pdata); -} +/* +* __percpu_alloc_mask() and percpu_free() are macros to simplify header +* dependencies +*/ +#define __percpu_alloc_mask (size, gfp, maskp) kzalloc(size, gfp) +#define percpu_free (pdata) kfree(pdata)#endif /* CONFIG_SMP */
Whoever merges second gets to fix this for real - have fun ;)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Andrew Morton
maintainerOK, i386 allmodconfig is suffering something similar.
In file included from include/linux/slub_def.h:13,
from include/linux/slab.h:184,
from include/linux/percpu.h:5,
from include/linux/rcupdate.h:39,
from include/linux/marker.h:16,
from include/linux/module.h:18,
from include/linux/crypto.h:21,
from arch/x86/kernel/asm-offsets_32.c:7,
from arch/x86/kernel/asm-offsets.c:2:include/linux/kmemtrace.h: In function 'kmemtrace_mark_alloc_node':include/linux/kmemtrace.h:33: error: implicit declaration of function 'trace_mark' include/linux/kmemtrace.h:33: error: 'kmemtrace_alloc' undeclared (first use in this function) include/linux/kmemtrace.h:33: error: (Each undeclared identifier is reported only once include/linux/kmemtrace.h:33: error: for each function it appears in.) include/linux/kmemtrace.h: In function 'kmemtrace_mark_free':include/linux/kmemtrace.h:44: error: 'kmemtrace_free' undeclared (first use in this function)
I'll drop the slab tree.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Hi,
Quoted 19 lines · Andrew Morton
OK, i386 allmodconfig is suffering something similar.
In file included from
include/linux/slub_def.h:13,from include/linux/slab.h:184, from include/linux/percpu.h:5, from include/linux/rcupdate.h:39, from include/linux/marker.h:16, from include/linux/module.h:18, from include/linux/crypto.h:21, from arch/x86/kernel/asm-offsets_32.c:7, from arch/x86/kernel/asm-offsets.c:2:
include/linux/kmemtrace.h: In function 'kmemtrace_mark_alloc_node':include/linux/kmemtrace.h:33: error: implicit declaration of function 'trace_mark'include/linux/kmemtrace.h:33: error: 'kmemtrace_alloc' undeclared (first use in this function)include/linux/kmemtrace.h:33: error: (Each undeclared identifier is reported only onceinclude/linux/kmemtrace.h:33: error: for each function it appears in.)include/linux/kmemtrace.h: In function 'kmemtrace_mark_free':include/linux/kmemtrace.h:44: error: 'kmemtrace_free' undeclared (first use in this function)
Quoted 1 line
I'll drop the slab tree.
Oh, marker.h includes kmemtrace.h through dependencies... I'd argue that's a marker.h bug; otherwise I don't see how we can use it in slab. Mathieu?
Pekka
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 22 lines · * Pekka Enberg ([email protected]) wrote:
Hi,
Quoted 19 lines · Andrew Morton
OK, i386 allmodconfig is suffering something similar.
In file included from
include/linux/slub_def.h:13,from include/linux/slab.h:184, from include/linux/percpu.h:5, from include/linux/rcupdate.h:39, from include/linux/marker.h:16, from include/linux/module.h:18, from include/linux/crypto.h:21, from arch/x86/kernel/asm-offsets_32.c:7, from arch/x86/kernel/asm-offsets.c:2:
include/linux/kmemtrace.h: In function 'kmemtrace_mark_alloc_node':include/linux/kmemtrace.h:33: error: implicit declaration of function 'trace_mark'include/linux/kmemtrace.h:33: error: 'kmemtrace_alloc' undeclared (first use in this function)include/linux/kmemtrace.h:33: error: (Each undeclared identifier is reported only onceinclude/linux/kmemtrace.h:33: error: for each function it appears in.)include/linux/kmemtrace.h: In function 'kmemtrace_mark_free':include/linux/kmemtrace.h:44: error: 'kmemtrace_free' undeclared (first use in this function)
Quoted 8 lines
Quoted 1 line
I'll drop the slab tree.
Oh,
marker.hincludeskmemtrace.hthrough dependencies... I'd argue that's amarker.hbug; otherwise I don't see how we can use it in slab. Mathieu?Pekka
(already sent privately to Ingo and Andrew)
Ingo, can you simply revert commits 44c2a8c1cdf0f3374ef2f4f91db551527a336fb2
"markers: turn marker_synchronize_unregister() into an inline" and
"Tracepoints synchronize unregister static inline"
(this last one does not seem to have hit -tip yet, but may be in -ftrace staging)
That should fix the issue.
Mathieu
Signature · 8 lines
Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 42 lines · Mathieu Desnoyers
Quoted 22 lines · * Pekka Enberg ([email protected]) wrote:
Hi,
Quoted 19 lines · Andrew Morton
OK, i386 allmodconfig is suffering something similar.
In file included from
include/linux/slub_def.h:13,from include/linux/slab.h:184, from include/linux/percpu.h:5, from include/linux/rcupdate.h:39, from include/linux/marker.h:16, from include/linux/module.h:18, from include/linux/crypto.h:21, from arch/x86/kernel/asm-offsets_32.c:7, from arch/x86/kernel/asm-offsets.c:2:
include/linux/kmemtrace.h: In function 'kmemtrace_mark_alloc_node':include/linux/kmemtrace.h:33: error: implicit declaration of function 'trace_mark'include/linux/kmemtrace.h:33: error: 'kmemtrace_alloc' undeclared (first use in this function)include/linux/kmemtrace.h:33: error: (Each undeclared identifier is reported only onceinclude/linux/kmemtrace.h:33: error: for each function it appears in.)include/linux/kmemtrace.h: In function 'kmemtrace_mark_free':include/linux/kmemtrace.h:44: error: 'kmemtrace_free' undeclared (first use in this function)Quoted 8 lines
Quoted 1 line
I'll drop the slab tree.
Oh,
marker.hincludeskmemtrace.hthrough dependencies... I'd argue that's amarker.hbug; otherwise I don't see how we can use it in slab. Mathieu?Pekka
(already sent privately to Ingo and Andrew)
Ingo, can you simply revert commits
44c2a8c1cdf0f3374ef2f4f91db551527a336fb2
"markers: turnmarker_synchronize_unregister()into an inline" and
"Tracepoints synchronize unregister static inline"
(this last one does not seem to have hit -tip yet, but may be in -ftrace staging)
Quoted 1 line
That should fix the issue.
hm, could you please send a fix instead? I can revert from integration branches temporarily but this needs a real fix.
Ingo
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
PATCH 1/1 Markers : revert synchronize marker unregister static inline
Use a #define for synchronize marker unregister to fix include dependencies.
--- include/linux/marker.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
include/linux/marker.h +1 -5
@@ -13,7 +13,6 @@*/ #include <linux/types.h> -#include <linux/rcupdate.h> struct module ;struct marker ;
@@ -166,9 +165,6 @@ extern void *marker_get_private_data(con* unregistration and the end of module exit to make sure there is no caller * executing a probe when it is freed. */ -static inline void marker_synchronize_unregister (void ) -{ -synchronize_sched (); -} +#define marker_synchronize_unregister () synchronize_sched()#endif
Signature · 8 lines
Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Re: [PATCH] Markers : revert synchronize marker unregister static inline
Quoted 2 lines · Mathieu Desnoyers
Use a #define for synchronize marker unregister to fix include dependencies.
Looks good to me. Maybe you want to explicitly mention the connection with slab in the changelog though? Otherwise someone else will go and break the thing giving Andrew yet another excuse to drop my tree. :-)
Quoted 22 lines
Signed-off-by Mathieu Desnoyers <[email protected]>CC Pekka Enberg <[email protected]>CC Andrew Morton <[email protected]>CC Eduard - Gabriel Munteanu <[email protected]>--- include/linux/marker.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)Index:
linux-2.6-lttng/include/linux/marker.h
===================================================================include/linux/marker.h +0
-1@@ -13,7 +13,6 @@*/ #include <linux/types.h> -#include <linux/rcupdate.h> struct module ;struct marker ;
include/linux/marker.h extern void *marker_get_private_data(con · line 170
Quoted 10 lines
include/linux/marker.h +1
-4@@ -166,9 +165,6 @@ extern void *marker_get_private_data(con* unregistration and the end of module exit to make sure there is no caller * executing a probe when it is freed. */ -static inline void marker_synchronize_unregister (void ) -{ -synchronize_sched (); -} +#define marker_synchronize_unregister () synchronize_sched()#endif
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Mathieu Desnoyers
Acked-by Pekka EnbergRe: [PATCH] Markers : revert synchronize marker unregister static inline (update)
Use a #define for synchronize marker unregister to fix include dependencies.
Fixes the slab circular inclusion, where rcupdate includes slab, which includes markers which includes rcupdate.
--- include/linux/marker.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
include/linux/marker.h +1 -5
@@ -13,7 +13,6 @@*/ #include <linux/types.h> -#include <linux/rcupdate.h> struct module ;struct marker ;
@@ -166,9 +165,6 @@ extern void *marker_get_private_data(con* unregistration and the end of module exit to make sure there is no caller * executing a probe when it is freed. */ -static inline void marker_synchronize_unregister (void ) -{ -synchronize_sched (); -} +#define marker_synchronize_unregister () synchronize_sched()#endif
Signature · 8 lines
Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Ingo Molnar
AppliedRe: [PATCH] Markers : revert synchronize marker unregister static inline (update)
Quoted 7 lines · Mathieu Desnoyers
Use a #define for synchronize marker unregister to fix include dependencies.
Fixes the slab circular inclusion, where rcupdate includes slab, which includes markers which includes rcupdate.
Signed-off-by Mathieu Desnoyers <[email protected]>Acked-by Pekka Enberg <[email protected]>
applied to tip/tracing/core, thanks Mathieu!
also fast-tracked it to tip/auto-ftrace-next and tip/auto-latest, to ease Andrew's integration efforts.
Ingo
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Re: [PATCH] Markers : revert synchronize marker unregister static inline
In reply to Pekka EnbergQuoted 7 lines · Pekka Enberg
Quoted 2 lines · Mathieu Desnoyers
Use a #define for synchronize marker unregister to fix include dependencies.
Looks good to me. Maybe you want to explicitly mention the connection with slab in the changelog though? Otherwise someone else will go and break the thing giving Andrew yet another excuse to drop my tree. :-)
i applied the commit below - and i added the info about this slab.git and tracing.git integration effect as well.
Ingo
-------------->
Quoted 45 lines · * Ingo Molnar ([email protected]) wrote:
Quoted 42 lines · Mathieu Desnoyers
Quoted 22 lines · * Pekka Enberg ([email protected]) wrote:
Hi,
Quoted 19 lines · Andrew Morton
OK, i386 allmodconfig is suffering something similar.
In file included from
include/linux/slub_def.h:13,from include/linux/slab.h:184, from include/linux/percpu.h:5, from include/linux/rcupdate.h:39, from include/linux/marker.h:16, from include/linux/module.h:18, from include/linux/crypto.h:21, from arch/x86/kernel/asm-offsets_32.c:7, from arch/x86/kernel/asm-offsets.c:2:
include/linux/kmemtrace.h: In function 'kmemtrace_mark_alloc_node':include/linux/kmemtrace.h:33: error: implicit declaration of function 'trace_mark'include/linux/kmemtrace.h:33: error: 'kmemtrace_alloc' undeclared (first use in this function)include/linux/kmemtrace.h:33: error: (Each undeclared identifier is reported only onceinclude/linux/kmemtrace.h:33: error: for each function it appears in.)include/linux/kmemtrace.h: In function 'kmemtrace_mark_free':include/linux/kmemtrace.h:44: error: 'kmemtrace_free' undeclared (first use in this function)Quoted 8 lines
Quoted 1 line
I'll drop the slab tree.
Oh,
marker.hincludeskmemtrace.hthrough dependencies... I'd argue that's amarker.hbug; otherwise I don't see how we can use it in slab. Mathieu?Pekka
(already sent privately to Ingo and Andrew)
Ingo, can you simply revert commits
44c2a8c1cdf0f3374ef2f4f91db551527a336fb2
"markers: turnmarker_synchronize_unregister()into an inline" and
"Tracepoints synchronize unregister static inline"
(this last one does not seem to have hit -tip yet, but may be in -ftrace staging)
Quoted 5 lines
Quoted 1 line
That should fix the issue.
hm, could you please send a fix instead? I can revert from integration branches temporarily but this needs a real fix.
Just sent a fix for the markers. The tracepoints however need to include rcupdate.h because it uses rcu_read_lock_sched_notrace and rcu_dereference in a macro, and this macro is expected to be expanded in header files. So people will have to be careful not to include tracepoint.h in such sensitive header files. Therefore I'll leave the static inline there.
Mathieu
Quoted 1 line
Ingo
Signature · 8 lines
Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>