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

Walther Maldonado
2009-07-01T13:29:36Z

Good day,

Alright, my bad. After closer studying I realized I had misread where the defines were delimiting each function. :/ Sorry for the invalid report (and yes, I had other issues setting up and running the modules, but I was pretty sure the missing symbols were caused because of the define, which turned out to be false).

Cheers~
Walther.

On Wed, 1 Jul 2009 11:41:38 +0200
Avi Kivity <avi@redhat.com> wrote:

> 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
>