Subject: Re: linux-next: build failure after merge of the final tree

From: Ingo Molnar <[email-masked]>
Date: Sat, 15 May 2010 09:37:32 +0200

* Don Zickus <[email-masked]> wrote:

> Sorry for the mess.  I think the following patch 
> cleans it up.  The last piece deals with the sparc 
> mess, the other two pieces should deal with the x86 
> fallout.

This patch breaks x86:

arch/x86/built-in.o: In function `show_stack_log_lvl':
(.text+0xc2c0): undefined reference to `touch_nmi_watchdog'
arch/x86/built-in.o: In function `print_trace_address':
dumpstack.c:(.text+0xd893): undefined reference to `touch_nmi_watchdog'
arch/x86/built-in.o: In function `mce_timed_out':
mce.c:(.text+0x20008): undefined reference to `touch_nmi_watchdog'
arch/x86/built-in.o: In function `enable_lapic_nmi_watchdog':
(.text+0x261f2): undefined reference to `touch_nmi_watchdog'

CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_PERF_EVENTS_NMI=y
CONFIG_IPMI_WATCHDOG=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y
# CONFIG_SOFT_WATCHDOG is not set
CONFIG_HP_WATCHDOG=y
CONFIG_SBC_EPX_C3_WATCHDOG=m
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_USBPCWATCHDOG is not set
CONFIG_HAVE_FTRACE_NMI_ENTER=y
CONFIG_FTRACE_NMI_ENTER=y

I'd _strongly_ suggest to simplify the code. There's 
a few things that could be done to that end:

- just have a single watchdog option and dont split 
  the soft-dog from the hard-dog.

- use config options to define default behavior: i.e.
  whether the soft-dog and hard-dog is enabled by default,
  but otherwise keep them both included.

- provide a smooth pathway for architectures that 
  have an NMI watchdog right now. Dont overlap their 
  symbols for example.

... and similar measures.

Thanks,

	Ingo