Re: BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30)

Avi Kivity
2009-07-01T09:39:53Z

On 06/29/2009 06:18 PM, Walther Maldonado wrote:
> Good day,
>
> Today when attempting to compile and install the KVM module (kernel 2.6.30), inserting the module would error with a number of unresolved symbols such as preempt_notifier_register() not found.
>
> Some code-browsing revealed that, even though the kvm KConfig setting "KVM" does select PREEMPT_NOTIFIERS, in include/linux/preempt.h, said define will not cause the expected functions to be defined unless CONFIG_PREEMPT is also selected.
>
>

Not in my copy of v2.6.30. preempt.h only guards the preempt notifier
symbols with CONFIG_PREEMPT_NOTIFIER.

I built sched.o with CONFIG_PREEMPT_NONE=y and see:

[avi@cleopatra linux-2.6 (v2.6.30)]$ nm kernel/sched.o | grep
preempt_notifier
00000000c559bf4c A __crc_preempt_notifier_register
000000008be61cbb A __crc_preempt_notifier_unregister
0000000000000028 r __kcrctab_preempt_notifier_register
0000000000000020 r __kcrctab_preempt_notifier_unregister
0000000000000232 r __kstrtab_preempt_notifier_register
0000000000000216 r __kstrtab_preempt_notifier_unregister
0000000000000050 r __ksymtab_preempt_notifier_register
0000000000000040 r __ksymtab_preempt_notifier_unregister
0000000000000c77 T preempt_notifier_register
0000000000000caf T preempt_notifier_unregister

Perhaps you have a stale kernel installed? Try reinstalling the kernel
and modules and rebooting.

--
error compiling committee.c: too many arguments to function