* [PATCH] arm64: cmpxchg: Don't incldue linux/mmdebug.h
[not found] <E1a6wEp-0000hU-7o@optimist>
@ 2015-12-10 16:54 ` Mark Brown
2015-12-10 16:55 ` next-20151210 build: 4 failures 43 warnings (next-20151210) Mark Brown
1 sibling, 0 replies; 5+ messages in thread
From: Mark Brown @ 2015-12-10 16:54 UTC (permalink / raw)
To: linux-arm-kernel
The arm64 asm/cmpxchg.h includes linux/mmdebug.h but doesn't so far as I
can tell actually use anything from it. Removing the inclusion reduces
spurious header dependency rebuilds and also avoids issues with
recursive inclusions of headers causing build breaks due to attempts to
use things before they are defined if linux/mmdebug.h starts pulling in
more low level headers.
Such errors have happened in -next recently, for example:
In file included from include/linux/completion.h:11:0,
from include/linux/rcupdate.h:43,
from include/linux/tracepoint.h:19,
from include/linux/mmdebug.h:6,
from ./arch/arm64/include/asm/cmpxchg.h:22,
from ./arch/arm64/include/asm/atomic.h:41,
from include/linux/atomic.h:4,
from include/linux/spinlock.h:406,
from include/linux/seqlock.h:35,
from include/linux/time.h:5,
from include/uapi/linux/timex.h:56,
from include/linux/timex.h:56,
from include/linux/sched.h:19,
from arch/arm64/kernel/asm-offsets.c:21:
include/linux/wait.h: In function 'wait_on_atomic_t':
include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
if (atomic_read(val) == 0)
Signed-off-by: Mark Brown <broonie@kernel.org>
---
arch/arm64/include/asm/cmpxchg.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/include/asm/cmpxchg.h b/arch/arm64/include/asm/cmpxchg.h
index 9ea611ea69df..510c7b404454 100644
--- a/arch/arm64/include/asm/cmpxchg.h
+++ b/arch/arm64/include/asm/cmpxchg.h
@@ -19,7 +19,6 @@
#define __ASM_CMPXCHG_H
#include <linux/bug.h>
-#include <linux/mmdebug.h>
#include <asm/atomic.h>
#include <asm/barrier.h>
--
2.6.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* next-20151210 build: 4 failures 43 warnings (next-20151210)
[not found] <E1a6wEp-0000hU-7o@optimist>
2015-12-10 16:54 ` [PATCH] arm64: cmpxchg: Don't incldue linux/mmdebug.h Mark Brown
@ 2015-12-10 16:55 ` Mark Brown
2015-12-10 17:14 ` Will Deacon
2015-12-10 22:47 ` Andrew Morton
1 sibling, 2 replies; 5+ messages in thread
From: Mark Brown @ 2015-12-10 16:55 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 10, 2015 at 08:06:07AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build most arm64 configs with some rather
spectacular errors below introduced by 02598e94ed5a78 (mm, printk:
introduce new format string for flags) from Andrew's tree. These in
turn stem from the fact that we introduce an inclusion of
linux/tracepoint.h into linux/mmdebug.h which through a chain of nested
inclusions means that we end up attempting to use definitions from
headers before they have finished including. For example:
> arm64-allnoconfig
> ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
is a result of:
In file included from include/linux/completion.h:11:0,
from include/linux/rcupdate.h:43,
from include/linux/tracepoint.h:19,
from include/linux/mmdebug.h:6,
from ./arch/arm64/include/asm/cmpxchg.h:22,
from ./arch/arm64/include/asm/atomic.h:41,
from include/linux/atomic.h:4,
from include/linux/spinlock.h:406,
from include/linux/seqlock.h:35,
from include/linux/time.h:5,
from include/uapi/linux/timex.h:56,
from include/linux/timex.h:56,
from include/linux/sched.h:19,
from arch/arm64/kernel/asm-offsets.c:21:
include/linux/wait.h: In function 'wait_on_atomic_t':
include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
if (atomic_read(val) == 0)
where atomic_read() will be defined in atomic.h which is part of the
inclusion chain above but hasn't yet parsed far enough to actually
define anything. This is all a bit of a horrific mess the root cause of
which appears to be that arm64 is unusual in including linux/mmdebug.h
in asm/cmpxchg.h which triggers the mess. There doesn't seem to be any
reason for this inclusion, I've just sent a patch removing it. It'd be
good to get this into -next as a matter of urgency.
> ../include/linux/jiffies.h:61:39: error: division by zero in #if
> ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/jiffies.h:303:33: error: division by zero in #if
> ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function)
> ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function)
> ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type
> ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration]
> ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type
> ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known
> ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known
> ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type
> ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration]
> ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function)
> ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function)
> ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function)
> ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type
> ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes]
> ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type
> ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes]
> ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type
> ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes]
> ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function)
> ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function)
> ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type
> ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration]
> ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type
> ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration]
> ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type
> ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type
> ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64'
> ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known
> ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t'
> ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t'
> ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type
> ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64'
> ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type
> ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type
> ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type
> ../include/linux/jump_label.h:187:2: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration]
> ../include/linux/jump_label.h:193:2: error: implicit declaration of function 'atomic_dec' [-Werror=implicit-function-declaration]
> ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec'
> ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64'
> ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
>
> arm64-allmodconfig
> ../include/linux/wait.h:40:2: error: unknown type name 'spinlock_t'
> ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
> ../include/linux/wait.h:76:32: error: storage size of '__key' isn't known
> ../include/linux/jiffies.h:61:39: error: division by zero in #if
> ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/jiffies.h:303:33: error: division by zero in #if
> ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function)
> ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function)
> ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type
> ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration]
> ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type
> ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known
> ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known
> ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type
> ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration]
> ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function)
> ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function)
> ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function)
> ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type
> ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes]
> ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type
> ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes]
> ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type
> ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes]
> ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function)
> ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function)
> ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function)
> ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type
> ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration]
> ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type
> ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration]
> ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type
> ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type
> ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64'
> ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known
> ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t'
> ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t'
> ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type
> ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64'
> ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type
> ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type
> ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type
> ../include/linux/rcupdate.h:490:2: error: implicit declaration of function 'lock_acquire' [-Werror=implicit-function-declaration]
> ../include/linux/rcupdate.h:495:2: error: implicit declaration of function 'lock_release' [-Werror=implicit-function-declaration]
> ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lock_is_held' [-Werror=implicit-function-declaration]
> ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lockdep_rcu_suspicious' [-Werror=implicit-function-declaration]
> ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec'
> ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64'
> ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20151210/fb5a1e6e/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
* next-20151210 build: 4 failures 43 warnings (next-20151210)
2015-12-10 16:55 ` next-20151210 build: 4 failures 43 warnings (next-20151210) Mark Brown
@ 2015-12-10 17:14 ` Will Deacon
2015-12-10 22:47 ` Andrew Morton
1 sibling, 0 replies; 5+ messages in thread
From: Will Deacon @ 2015-12-10 17:14 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 10, 2015 at 04:55:13PM +0000, Mark Brown wrote:
> On Thu, Dec 10, 2015 at 08:06:07AM +0000, Build bot for Mark Brown wrote:
>
> Today's -next fails to build most arm64 configs with some rather
> spectacular errors below introduced by 02598e94ed5a78 (mm, printk:
> introduce new format string for flags) from Andrew's tree. These in
> turn stem from the fact that we introduce an inclusion of
> linux/tracepoint.h into linux/mmdebug.h which through a chain of nested
> inclusions means that we end up attempting to use definitions from
> headers before they have finished including. For example:
>
> > arm64-allnoconfig
> > ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
>
> is a result of:
>
> In file included from include/linux/completion.h:11:0,
> from include/linux/rcupdate.h:43,
> from include/linux/tracepoint.h:19,
> from include/linux/mmdebug.h:6,
> from ./arch/arm64/include/asm/cmpxchg.h:22,
> from ./arch/arm64/include/asm/atomic.h:41,
> from include/linux/atomic.h:4,
> from include/linux/spinlock.h:406,
> from include/linux/seqlock.h:35,
> from include/linux/time.h:5,
> from include/uapi/linux/timex.h:56,
> from include/linux/timex.h:56,
> from include/linux/sched.h:19,
> from arch/arm64/kernel/asm-offsets.c:21:
> include/linux/wait.h: In function 'wait_on_atomic_t':
> include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
> if (atomic_read(val) == 0)
>
> where atomic_read() will be defined in atomic.h which is part of the
> inclusion chain above but hasn't yet parsed far enough to actually
> define anything. This is all a bit of a horrific mess the root cause of
> which appears to be that arm64 is unusual in including linux/mmdebug.h
> in asm/cmpxchg.h which triggers the mess. There doesn't seem to be any
> reason for this inclusion, I've just sent a patch removing it. It'd be
> good to get this into -next as a matter of urgency.
I'll pick up your fix into the arm64 for-next/core branch.
Cheers,
Will
^ permalink raw reply [flat|nested] 5+ messages in thread
* next-20151210 build: 4 failures 43 warnings (next-20151210)
2015-12-10 16:55 ` next-20151210 build: 4 failures 43 warnings (next-20151210) Mark Brown
2015-12-10 17:14 ` Will Deacon
@ 2015-12-10 22:47 ` Andrew Morton
2015-12-11 7:12 ` Vlastimil Babka
1 sibling, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2015-12-10 22:47 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, 10 Dec 2015 16:55:13 +0000 Mark Brown <broonie@kernel.org> wrote:
> Today's -next fails to build most arm64 configs with some rather
> spectacular errors below introduced by 02598e94ed5a78 (mm, printk:
> introduce new format string for flags) from Andrew's tree. These in
> turn stem from the fact that we introduce an inclusion of
> linux/tracepoint.h into linux/mmdebug.h which through a chain of nested
> inclusions means that we end up attempting to use definitions from
> headers before they have finished including.
Thanks.
Further complexicating the include tree is something we don't need.
I'll try moving the offending declarations into mm/internal.h, see how
that goes.
Including ../mm/internal.h into lib/vsprintf.c is a bit grubby, but I
guess it makes sense - vsprintf is poking about in mm internals, so it
gets to include mm's internal.h.
Vlastimil, the patch is rather bloaty - it adds 1.2k for something
which few people will use. I wonder if it should be conditioned by
CONFIG_DEBUG_VM.
From: Andrew Morton <akpm@linux-foundation.org>
Subject: mm-printk-introduce-new-format-string-for-flags-fix-2
move declaration of trace_print_flags arrays into mm/internal.h
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/mmdebug.h | 6 ------
lib/vsprintf.c | 3 ++-
mm/debug.c | 2 ++
mm/internal.h | 7 +++++++
4 files changed, 11 insertions(+), 7 deletions(-)
diff -puN include/linux/mmdebug.h~mm-printk-introduce-new-format-string-for-flags-fix-2 include/linux/mmdebug.h
--- a/include/linux/mmdebug.h~mm-printk-introduce-new-format-string-for-flags-fix-2
+++ a/include/linux/mmdebug.h
@@ -2,17 +2,11 @@
#define LINUX_MM_DEBUG_H 1
#include <linux/stringify.h>
-#include <linux/types.h>
-#include <linux/tracepoint.h>
struct page;
struct vm_area_struct;
struct mm_struct;
-extern const struct trace_print_flags pageflag_names[];
-extern const struct trace_print_flags vmaflag_names[];
-extern const struct trace_print_flags gfpflag_names[];
-
extern void dump_page(struct page *page, const char *reason);
extern void dump_page_badflags(struct page *page, const char *reason,
unsigned long badflags);
diff -puN lib/vsprintf.c~mm-printk-introduce-new-format-string-for-flags-fix-2 lib/vsprintf.c
--- a/lib/vsprintf.c~mm-printk-introduce-new-format-string-for-flags-fix-2
+++ a/lib/vsprintf.c
@@ -31,7 +31,8 @@
#include <linux/dcache.h>
#include <linux/cred.h>
#include <net/addrconf.h>
-#include <linux/mmdebug.h>
+
+#include "../mm/internal.h" /* For the trace_print_flags arrays */
#include <asm/page.h> /* for PAGE_SIZE */
#include <asm/sections.h> /* for dereference_function_descriptor() */
diff -puN mm/debug.c~mm-printk-introduce-new-format-string-for-flags-fix-2 mm/debug.c
--- a/mm/debug.c~mm-printk-introduce-new-format-string-for-flags-fix-2
+++ a/mm/debug.c
@@ -13,6 +13,8 @@
#include <trace/events/gfpflags.h>
#include <linux/page_owner.h>
+#include "internal.h"
+
char *migrate_reason_names[MR_TYPES] = {
"compaction",
"memory_failure",
diff -puN mm/internal.h~mm-printk-introduce-new-format-string-for-flags-fix-2 mm/internal.h
--- a/mm/internal.h~mm-printk-introduce-new-format-string-for-flags-fix-2
+++ a/mm/internal.h
@@ -11,9 +11,11 @@
#ifndef __MM_INTERNAL_H
#define __MM_INTERNAL_H
+#include <linux/types.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
+#include <linux/tracepoint.h>
/*
* The set of flags that only affect watermark checking and reclaim
@@ -441,4 +443,9 @@ static inline void try_to_unmap_flush_di
}
#endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */
+
+extern const struct trace_print_flags pageflag_names[];
+extern const struct trace_print_flags vmaflag_names[];
+extern const struct trace_print_flags gfpflag_names[];
+
#endif /* __MM_INTERNAL_H */
_
^ permalink raw reply [flat|nested] 5+ messages in thread
* next-20151210 build: 4 failures 43 warnings (next-20151210)
2015-12-10 22:47 ` Andrew Morton
@ 2015-12-11 7:12 ` Vlastimil Babka
0 siblings, 0 replies; 5+ messages in thread
From: Vlastimil Babka @ 2015-12-11 7:12 UTC (permalink / raw)
To: linux-arm-kernel
On 10.12.2015 23:47, Andrew Morton wrote:
> On Thu, 10 Dec 2015 16:55:13 +0000 Mark Brown <broonie@kernel.org> wrote:
>
>> Today's -next fails to build most arm64 configs with some rather
>> spectacular errors below introduced by 02598e94ed5a78 (mm, printk:
>> introduce new format string for flags) from Andrew's tree. These in
>> turn stem from the fact that we introduce an inclusion of
>> linux/tracepoint.h into linux/mmdebug.h which through a chain of nested
>> inclusions means that we end up attempting to use definitions from
>> headers before they have finished including.
>
> Thanks.
>
> Further complexicating the include tree is something we don't need.
> I'll try moving the offending declarations into mm/internal.h, see how
> that goes.
Yeah that works too, thanks.
> Including ../mm/internal.h into lib/vsprintf.c is a bit grubby, but I
> guess it makes sense - vsprintf is poking about in mm internals, so it
> gets to include mm's internal.h.
OK.
> Vlastimil, the patch is rather bloaty - it adds 1.2k for something
> which few people will use. I wonder if it should be conditioned by
> CONFIG_DEBUG_VM.
Hmm, but one of the benefits is that we get e.g. the gfp flags translated
in oom and alloc failure reports that users submit, and CONFIG_DEBUG_VM
is not enabled by default. So the conditioning should be based on some
option that people explicitly enable to make their kernels smaller knowing
it's a tradeoff for functionality/convenience.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-12-11 7:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <E1a6wEp-0000hU-7o@optimist>
2015-12-10 16:54 ` [PATCH] arm64: cmpxchg: Don't incldue linux/mmdebug.h Mark Brown
2015-12-10 16:55 ` next-20151210 build: 4 failures 43 warnings (next-20151210) Mark Brown
2015-12-10 17:14 ` Will Deacon
2015-12-10 22:47 ` Andrew Morton
2015-12-11 7:12 ` Vlastimil Babka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).