From: Ingo Molnar <mingo@elte.hu>
To: linux-kernel@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Wu Fengguang <fengguang.wu@intel.com>,
Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Andrew Morton <akpm@linux-foundation.org>,
Matt Mackall <mpm@selenic.com>, Nick Piggin <npiggin@suse.de>,
Christoph Lameter <cl@linux-foundation.org>,
Fr??d??ric Weisbecker <fweisbec@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: -tip: origin tree build failure
Date: Thu, 17 Dec 2009 10:40:41 +0100 [thread overview]
Message-ID: <20091217094041.GA24708@elte.hu> (raw)
Today's -tip fails to build due to upstream commit
1a9b5b7fe0c5dad8a635288882d36785dea742f9 ("mm: export stable page flags")
(authored and merged yesterday) causing the following build failure on x86
when CONFIG_PROC_PAGE_MONITOR is disabled:
mm/built-in.o: In function `hwpoison_filter':
(.text+0x39fbf): undefined reference to `stable_page_flags'
The bug is that the stable_page_flags() API is only available under
CONFIG_PROC_PAGE_MONITOR, but utilized in mm/memory-failure.c unconditionally.
I've applied the patch below to -tip for now, which expresses this dependency
in the Kconfig. (Eventually a cleaner solution would be to factor such ABI
details out of procfs, they dont belong there.)
A technical critique: as i pointed it out in the past on lkml, this whole
ad-hoc exporting of MM details via /proc is ill advised. It's a limiting
interface for instrumentation (we could do so much more and could integrate it
so much better with a similar amount of intrusion), and it also creates
needless ABI dependencies with user-space tooling.
This should be prototyped in debugfs and sufficiently integrated with other
instrumentation frameworks in the kernel. I made a few suggestions and we even
wrote patches in the past to help that out:
3383e37: tracing, page-allocator: Add a postprocessing script for page-allocator-related ftrace events
c33b359: tracing, page-allocator: Add trace event for page traffic related to the buddy lists
0d524fb: tracing, mm: Add trace events for anti-fragmentation falling back to other migratetypes
b9a2817: tracing, page-allocator: Add trace events for page allocation and page freeing
eb46710: tracing/mm: rename 'trigger' file to 'dump_range'
1487a7a: tracing/mm: fix mapcount trace record field
dcac8cd: tracing/mm: add page frame snapshot trace
Unfortunately nothing of that was pursued from the MM and hwpoison side and
now this inferior version goes upstream, and as two separate ABIs straight
away. (the /proc ABI and the memory-failure filter ABI) Not very well designed
and not very helpful IMO, and this will come back to haunt us in the future.
We know how to do this correctly, why not embrace, utilize and expand those
instrumentation facilities?
Also, a workflow observation - i tried to figure out the history of the bug
but the Git timestamps show this weirdness:
commit 1a9b5b7fe0c5dad8a635288882d36785dea742f9
Author: Wu Fengguang <fengguang.wu@intel.com>
AuthorDate: Wed Dec 16 12:19:59 2009 +0100
Commit: Andi Kleen <ak@linux.intel.com>
CommitDate: Wed Dec 16 12:19:59 2009 +0100
that's precisely the same author and commit date, but author and committer are
different - how is that possible? No combination of git-am, git-rebase and git
commit --amend can achieve this kind of timestamp.
I checked the other 'HWPOISON' commits as well that were merged yesterday -
they have a similarly damaged history.
Thanks,
Ingo
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/mm/Kconfig b/mm/Kconfig
index 43ea8c3..d7bd560 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -243,6 +243,7 @@ config ARCH_SUPPORTS_MEMORY_FAILURE
config MEMORY_FAILURE
depends on MMU
depends on ARCH_SUPPORTS_MEMORY_FAILURE
+ select PROC_PAGE_MONITOR
bool "Enable recovery from hardware memory errors"
help
Enables code to recover from some memory failures on systems
next reply other threads:[~2009-12-17 9:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-17 9:40 Ingo Molnar [this message]
2009-12-17 12:23 ` -tip: origin tree build failure Ingo Molnar
2009-12-17 12:55 ` Andi Kleen
2009-12-18 11:23 ` Ingo Molnar
2009-12-18 11:45 ` Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2010-10-28 4:52 [GIT PULL] ext4 update for 2.6.37 Theodore Ts'o
2010-10-28 7:56 ` -tip: origin tree build failure (was: [GIT PULL] ext4 update for 2.6.37) Ingo Molnar
2010-10-28 16:30 ` Linus Torvalds
2010-10-28 16:38 ` Ingo Molnar
2010-10-28 17:00 ` Linus Torvalds
2010-10-28 21:39 ` -tip: origin tree build failure Junio C Hamano
2010-10-28 21:50 ` Linus Torvalds
2009-12-17 7:50 Ingo Molnar
2009-12-17 21:53 ` Myron Stowe
2009-12-26 12:36 ` Geert Uytterhoeven
2009-12-26 19:50 ` Len Brown
2009-12-27 0:24 ` Henrique de Moraes Holschuh
2009-12-28 8:26 ` Ingo Molnar
2009-12-17 6:17 Ingo Molnar
2009-12-17 10:04 ` Henrique de Moraes Holschuh
2009-12-17 12:16 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091217094041.GA24708@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpm@selenic.com \
--cc=npiggin@suse.de \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox